drm/bridge: lt9611: fix sync polarity for DVI output
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Wed, 18 Jan 2023 08:16:54 +0000 (10:16 +0200)
committerNeil Armstrong <neil.armstrong@linaro.org>
Wed, 18 Jan 2023 14:27:08 +0000 (15:27 +0100)
Attaching DVI sink to the lt9611 requires different setup. Fix the
register write to make the DVI displays sync onto the correct sync
pulse.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230118081658.2198520-10-dmitry.baryshkov@linaro.org
drivers/gpu/drm/bridge/lontium-lt9611.c

index ab411e4..1ea6436 100644 (file)
@@ -353,13 +353,16 @@ end:
        return temp;
 }
 
-static void lt9611_hdmi_tx_digital(struct lt9611 *lt9611)
+static void lt9611_hdmi_tx_digital(struct lt9611 *lt9611, bool is_hdmi)
 {
        regmap_write(lt9611->regmap, 0x8443, 0x46 - lt9611->vic);
        regmap_write(lt9611->regmap, 0x8447, lt9611->vic);
        regmap_write(lt9611->regmap, 0x843d, 0x0a); /* UD1 infoframe */
 
-       regmap_write(lt9611->regmap, 0x82d6, 0x8c);
+       if (is_hdmi)
+               regmap_write(lt9611->regmap, 0x82d6, 0x8c);
+       else
+               regmap_write(lt9611->regmap, 0x82d6, 0x0c);
        regmap_write(lt9611->regmap, 0x82d7, 0x04);
 }
 
@@ -720,7 +723,7 @@ lt9611_bridge_atomic_enable(struct drm_bridge *bridge,
        }
 
        lt9611_mipi_input_analog(lt9611);
-       lt9611_hdmi_tx_digital(lt9611);
+       lt9611_hdmi_tx_digital(lt9611, connector->display_info.is_hdmi);
        lt9611_hdmi_tx_phy(lt9611);
 
        msleep(500);