video: dw_hdmi: fix HSYNC and VSYNC polarity settings
authorVasily Khoruzhick <anarsoul@gmail.com>
Mon, 14 May 2018 20:49:53 +0000 (13:49 -0700)
committerAnatolij Gustschin <agust@denx.de>
Tue, 15 May 2018 06:03:42 +0000 (08:03 +0200)
Currently dw_hdmi configures HSYNC polarity using VSYNC setting from
EDID and vice versa. Fix it, since it breaks displays where HSYNC
and VSYNC polarity differs

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@siol.net>
drivers/video/dw_hdmi.c

index dbad0e2b24031cfbae0df25db50f7c7b84c3907f..229bd63c97c8222b3ddbfbbb1985ddca47140a0b 100644 (file)
@@ -401,11 +401,11 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
        /* set up hdmi_fc_invidconf */
        inv_val = HDMI_FC_INVIDCONF_HDCP_KEEPOUT_INACTIVE;
 
-       inv_val |= (edid->flags & DISPLAY_FLAGS_HSYNC_HIGH ?
+       inv_val |= (edid->flags & DISPLAY_FLAGS_VSYNC_HIGH ?
                   HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_HIGH :
                   HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_LOW);
 
-       inv_val |= (edid->flags & DISPLAY_FLAGS_VSYNC_HIGH ?
+       inv_val |= (edid->flags & DISPLAY_FLAGS_HSYNC_HIGH ?
                   HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_HIGH :
                   HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_LOW);