mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
drm/bridge: synopsys: dw-hdmi: fix kernel logo flash when output YCbCr422 mode
On rockchip platform, hdmi input format is YCbCr444 when output mode is YCbCr422. Then the value of HDMI_TX_INVID0 on YCbCr422 is same as the value of YCbCr444, both is 0x09/0x0b. This make enc_out_bus_format stroed in struct hdmi_data is wrong, which is MEDIA_BUS_FMT_YUV8_1X24 or MEDIA_BUS_FMT_YUV10_1X30. When android set enc_out_bus_format to YCbCr422, dw_hdmi_setup will be called and logo will flash. This patch use colorspace restored in HDMI_FC_AVICONF0 to distinguish them. Change-Id: I6b913951b58fb47628617c11d6059bc1be4e370a Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
This commit is contained in:
@@ -2859,12 +2859,16 @@ static void dw_hdmi_attach_properties(struct dw_hdmi *hdmi)
|
||||
case 0x09:
|
||||
if (colorspace == HDMI_COLORSPACE_YUV420)
|
||||
color = MEDIA_BUS_FMT_UYYVYY8_0_5X24;
|
||||
else if (colorspace == HDMI_COLORSPACE_YUV422)
|
||||
color = MEDIA_BUS_FMT_UYVY8_1X16;
|
||||
else
|
||||
color = MEDIA_BUS_FMT_YUV8_1X24;
|
||||
break;
|
||||
case 0x0b:
|
||||
if (colorspace == HDMI_COLORSPACE_YUV420)
|
||||
color = MEDIA_BUS_FMT_UYYVYY10_0_5X30;
|
||||
else if (colorspace == HDMI_COLORSPACE_YUV422)
|
||||
color = MEDIA_BUS_FMT_UYVY10_1X20;
|
||||
else
|
||||
color = MEDIA_BUS_FMT_YUV10_1X30;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user