mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
rockchip:hdmi: modify hdmi input color mode according to the vop output domain(RGB/YUV)
This commit is contained in:
@@ -287,8 +287,13 @@ static int rk3036_hdmi_config_video(struct hdmi *hdmi_drv,
|
||||
if (hdmi_drv->data->soc_type == HDMI_SOC_RK3036) {
|
||||
vpara->input_color = VIDEO_INPUT_COLOR_RGB;
|
||||
vpara->output_color = VIDEO_OUTPUT_RGB444;/*rk3036 vop only can output rgb fmt*/
|
||||
} else if (hdmi_drv->data->soc_type == HDMI_SOC_RK312X)
|
||||
vpara->input_color = VIDEO_INPUT_COLOR_YCBCR444;/*rk3128 vop can output yuv444 fmt*/
|
||||
} else if (hdmi_drv->data->soc_type == HDMI_SOC_RK312X) {
|
||||
/* rk3128 vop can output yuv444 fmt */
|
||||
if (vpara->input_color == VIDEO_INPUT_COLOR_YCBCR444)
|
||||
vpara->output_color = VIDEO_OUTPUT_YCBCR444;
|
||||
else
|
||||
vpara->output_color = VIDEO_OUTPUT_RGB444;
|
||||
}
|
||||
|
||||
if (hdmi_drv->pwr_mode == LOWER_PWR)
|
||||
rk3036_hdmi_set_pwr_mode(hdmi_drv, NORMAL);
|
||||
|
||||
@@ -569,10 +569,24 @@ int hdmi_switch_fb(struct hdmi *hdmi, int vic)
|
||||
*/
|
||||
int hdmi_init_video_para(struct hdmi *hdmi_drv, struct hdmi_video_para *video)
|
||||
{
|
||||
struct rk_lcdc_driver *lcdc_drv = NULL;
|
||||
|
||||
if (unlikely(hdmi_drv == NULL))
|
||||
return -1;
|
||||
|
||||
lcdc_drv = hdmi_drv->lcdc;
|
||||
if (unlikely(lcdc_drv == NULL))
|
||||
return -1;
|
||||
|
||||
memset(video, 0, sizeof(struct hdmi_video_para));
|
||||
|
||||
video->vic = hdmi_drv->vic;
|
||||
video->input_mode = VIDEO_INPUT_RGB_YCBCR_444;
|
||||
video->input_color = VIDEO_INPUT_COLOR_RGB;
|
||||
if (lcdc_drv->output_domain == OUTPUT_RGB_DOMAIN)
|
||||
video->input_color = VIDEO_INPUT_COLOR_RGB;
|
||||
else
|
||||
video->input_color = VIDEO_INPUT_COLOR_YCBCR444;
|
||||
|
||||
video->output_mode = hdmi_drv->edid.sink_hdmi;
|
||||
video->format_3d = 0; /* TODO modify according to EDID if need */
|
||||
video->pixel_repet = 0;
|
||||
|
||||
Reference in New Issue
Block a user