drm/bridge: tc358767: disable main link PHYs on main link disable
authorLucas Stach <l.stach@pengutronix.de>
Wed, 6 Jul 2022 13:28:12 +0000 (15:28 +0200)
committerMarek Vasut <marex@denx.de>
Wed, 10 Aug 2022 23:45:33 +0000 (01:45 +0200)
Disable the main link PHYs and put them into reset when the main link
is disabled. When the PHYs stay enabled while the rest of the DP link
circuits are disabled there is some noise on the data lanes, which some
displays try to lock onto, waking them up from their low power state.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Robert Foss <robert.foss@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Marek Vasut <marex@denx.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220706132812.2171250-3-l.stach@pengutronix.de
drivers/gpu/drm/bridge/tc358767.c

index 2f6cb0c..baaed4d 100644 (file)
@@ -1250,7 +1250,13 @@ static int tc_main_link_disable(struct tc_data *tc)
        if (ret)
                return ret;
 
-       return regmap_write(tc->regmap, DP0CTL, 0);
+       ret = regmap_write(tc->regmap, DP0CTL, 0);
+       if (ret)
+               return ret;
+
+       return regmap_update_bits(tc->regmap, DP_PHY_CTRL,
+                                 PHY_M0_RST | PHY_M1_RST | PHY_M0_EN,
+                                 PHY_M0_RST | PHY_M1_RST);
 }
 
 static int tc_dsi_rx_enable(struct tc_data *tc)