]> git.baikalelectronics.ru Git - kernel.git/commitdiff
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 2f6cb0c6902f51331bb38a3ca187188b5e9f33c7..baaed4d37911979b8d4d00197c36c4ff995f7309 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)