]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/bridge: anx78xx: Switch to common helpers to power up/down dp link
authorAndy Yan <andy.yan@rock-chips.com>
Tue, 18 Mar 2025 06:34:38 +0000 (14:34 +0800)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Wed, 2 Apr 2025 14:41:27 +0000 (17:41 +0300)
Use the common dp link power up/down helpers to avoid duplicating code.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250318063452.4983-4-andyshrk@163.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c

index 8b4597885614d6278f5782fdce5065044d5c2966..a83020d6576f78372056069947783a626acf64b1 100644 (file)
@@ -656,35 +656,7 @@ static int anx78xx_dp_link_training(struct anx78xx *anx78xx)
        if (err)
                return err;
 
-       /*
-        * Power up the sink (DP_SET_POWER register is only available on DPCD
-        * v1.1 and later).
-        */
-       if (anx78xx->dpcd[DP_DPCD_REV] >= 0x11) {
-               err = drm_dp_dpcd_readb(&anx78xx->aux, DP_SET_POWER, &dpcd[0]);
-               if (err < 0) {
-                       DRM_ERROR("Failed to read DP_SET_POWER register: %d\n",
-                                 err);
-                       return err;
-               }
-
-               dpcd[0] &= ~DP_SET_POWER_MASK;
-               dpcd[0] |= DP_SET_POWER_D0;
-
-               err = drm_dp_dpcd_writeb(&anx78xx->aux, DP_SET_POWER, dpcd[0]);
-               if (err < 0) {
-                       DRM_ERROR("Failed to power up DisplayPort link: %d\n",
-                                 err);
-                       return err;
-               }
-
-               /*
-                * According to the DP 1.1 specification, a "Sink Device must
-                * exit the power saving state within 1 ms" (Section 2.5.3.1,
-                * Table 5-52, "Sink Control Field" (register 0x600).
-                */
-               usleep_range(1000, 2000);
-       }
+       drm_dp_link_power_up(&anx78xx->aux, anx78xx->dpcd[DP_DPCD_REV]);
 
        /* Possibly enable downspread on the sink */
        err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],