forked from Minki/linux
drm/bridge: dw-hdmi: set mtmdsclock for deep color
Configure the correct mtmdsclock for deep colors to prepare support for 10, 12 & 16bit output. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Jernej Škrabec <jernej.skrabec@siol.net> Link: https://patchwork.freedesktop.org/patch/msgid/20200304104052.17196-2-narmstrong@baylibre.com
This commit is contained in:
parent
bc1a4130fc
commit
c6cae70234
@ -1814,13 +1814,32 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
|
|||||||
int hblank, vblank, h_de_hs, v_de_vs, hsync_len, vsync_len;
|
int hblank, vblank, h_de_hs, v_de_vs, hsync_len, vsync_len;
|
||||||
unsigned int vdisplay, hdisplay;
|
unsigned int vdisplay, hdisplay;
|
||||||
|
|
||||||
vmode->mtmdsclock = vmode->mpixelclock = mode->clock * 1000;
|
vmode->mpixelclock = mode->clock * 1000;
|
||||||
|
|
||||||
dev_dbg(hdmi->dev, "final pixclk = %d\n", vmode->mpixelclock);
|
dev_dbg(hdmi->dev, "final pixclk = %d\n", vmode->mpixelclock);
|
||||||
|
|
||||||
|
vmode->mtmdsclock = vmode->mpixelclock;
|
||||||
|
|
||||||
|
if (!hdmi_bus_fmt_is_yuv422(hdmi->hdmi_data.enc_out_bus_format)) {
|
||||||
|
switch (hdmi_bus_fmt_color_depth(
|
||||||
|
hdmi->hdmi_data.enc_out_bus_format)) {
|
||||||
|
case 16:
|
||||||
|
vmode->mtmdsclock = vmode->mpixelclock * 2;
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
vmode->mtmdsclock = vmode->mpixelclock * 3 / 2;
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
vmode->mtmdsclock = vmode->mpixelclock * 5 / 4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format))
|
if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format))
|
||||||
vmode->mtmdsclock /= 2;
|
vmode->mtmdsclock /= 2;
|
||||||
|
|
||||||
|
dev_dbg(hdmi->dev, "final tmdsclock = %d\n", vmode->mtmdsclock);
|
||||||
|
|
||||||
/* Set up HDMI_FC_INVIDCONF */
|
/* Set up HDMI_FC_INVIDCONF */
|
||||||
inv_val = (hdmi->hdmi_data.hdcp_enable ||
|
inv_val = (hdmi->hdmi_data.hdcp_enable ||
|
||||||
(dw_hdmi_support_scdc(hdmi) &&
|
(dw_hdmi_support_scdc(hdmi) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user