]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/bridge: analogix_dp: Apply DP helper API drm_dp_clock_recovery_ok()
authorDamon Ding <damon.ding@rock-chips.com>
Mon, 10 Nov 2025 08:58:21 +0000 (16:58 +0800)
committerLuca Ceresoli <luca.ceresoli@bootlin.com>
Wed, 25 Mar 2026 13:05:09 +0000 (14:05 +0100)
Use existing DP helper API instead of analogix_dp_clock_recovery_ok()
with the same function.

Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20251110085823.1197472-3-damon.ding@rock-chips.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c

index 1fcdadc2803a9f09474004272ad3f624d13f40ab..db2f4a0f9a5dc7faa98b03cd24edd22361cee994 100644 (file)
@@ -297,19 +297,6 @@ static unsigned char analogix_dp_get_lane_status(u8 link_status[2], int lane)
        return (link_value >> shift) & 0xf;
 }
 
-static int analogix_dp_clock_recovery_ok(u8 link_status[2], int lane_count)
-{
-       int lane;
-       u8 lane_status;
-
-       for (lane = 0; lane < lane_count; lane++) {
-               lane_status = analogix_dp_get_lane_status(link_status, lane);
-               if ((lane_status & DP_LANE_CR_DONE) == 0)
-                       return -EINVAL;
-       }
-       return 0;
-}
-
 static int analogix_dp_channel_eq_ok(u8 link_status[2], u8 link_align,
                                     int lane_count)
 {
@@ -394,7 +381,7 @@ static int analogix_dp_process_clock_recovery(struct analogix_dp_device *dp)
        if (retval < 0)
                return retval;
 
-       if (analogix_dp_clock_recovery_ok(link_status, lane_count) == 0) {
+       if (drm_dp_clock_recovery_ok(link_status, lane_count)) {
                /* set training pattern 2 for EQ */
                analogix_dp_set_training_pattern(dp, TRAINING_PTN2);
 
@@ -460,7 +447,7 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp)
        if (retval < 0)
                return retval;
 
-       if (analogix_dp_clock_recovery_ok(link_status, lane_count)) {
+       if (!drm_dp_clock_recovery_ok(link_status, lane_count)) {
                analogix_dp_reduce_link_rate(dp);
                return -EIO;
        }
@@ -664,8 +651,7 @@ static int analogix_dp_fast_link_train(struct analogix_dp_device *dp)
                        return ret;
                }
 
-               if (analogix_dp_clock_recovery_ok(link_status,
-                                                 dp->link_train.lane_count)) {
+               if (!drm_dp_clock_recovery_ok(link_status, dp->link_train.lane_count)) {
                        DRM_DEV_ERROR(dp->dev, "Clock recovery failed\n");
                        analogix_dp_reduce_link_rate(dp);
                        return -EIO;