From: Zheng Yang Date: Sat, 14 Feb 2015 08:22:35 +0000 (+0800) Subject: HDMI: X-Git-Tag: firefly_0821_release~4158^2~436 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bdb1122f09554a3eeb6ee60a7e2248e26b1f4c9b;p=firefly-linux-kernel-4.4.55.git HDMI: 1. In DVI mode, input color and output color should be RGB[0-255]; In HDMI mode, input color should be YCbCr; 2. For MID, HDMI is default disabled. Signed-off-by: Zheng Yang --- diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c b/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c index c066797d6968..3ddcc307d3d8 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c @@ -80,6 +80,8 @@ static void hdmi_wq_set_video(struct hdmi *hdmi) video.vic = hdmi->vic & HDMI_VIC_MASK; if (hdmi->vic & HDMI_VIDEO_YUV420) video.color_input = HDMI_COLOR_YCBCR420; + else if (hdmi->edid.sink_hdmi == 0) + video.color_input = HDMI_COLOR_RGB_0_255; else video.color_input = HDMI_COLOR_YCBCR444; video.sink_hdmi = hdmi->edid.sink_hdmi; diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmi-lcdc.c b/drivers/video/rockchip/hdmi/rockchip-hdmi-lcdc.c index 56dd6aa0705f..966e0e2ff8ae 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmi-lcdc.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmi-lcdc.c @@ -54,7 +54,10 @@ static int hdmi_set_info(struct rk_screen *screen, struct hdmi *hdmi) /* screen type & face */ screen->type = SCREEN_HDMI; - screen->color_mode = COLOR_YCBCR; + if (hdmi->edid.sink_hdmi) + screen->color_mode = COLOR_YCBCR; + else + screen->color_mode = COLOR_RGB; if (hdmi->vic & HDMI_VIDEO_YUV420) screen->face = OUT_YUV_420; else diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1.c b/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1.c index 9c780587c50f..aa4166823eee 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1.c @@ -327,8 +327,9 @@ static int rockchip_hdmiv1_probe(struct platform_device *pdev) fb_register_client(&rockchip_hdmiv1_fb_notifier); rockchip_hdmiv1_initial(hdmi_dev->hdmi); - rk_display_device_enable(hdmi_dev->hdmi->ddev); + if (rk_fb_get_display_policy() == DISPLAY_POLICY_BOX) { + rk_display_device_enable(hdmi_dev->hdmi->ddev); delay_work = hdmi_submit_work(hdmi_dev->hdmi, HDMI_HPD_CHANGE, 0, NULL); if (delay_work) diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c index fdfeead8d431..9200dc9d11dd 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2.c @@ -442,7 +442,8 @@ static int rockchip_hdmiv2_probe(struct platform_device *pdev) hdmi_dev->debugfs_dir, hdmi_dev, &rockchip_hdmiv2_reg_fops); #endif - rk_display_device_enable(hdmi_dev->hdmi->ddev); + if (rk_fb_get_display_policy() == DISPLAY_POLICY_BOX) + rk_display_device_enable(hdmi_dev->hdmi->ddev); #ifndef HDMI_INT_USE_POLL /* get and request the IRQ */