Quoting Kuogee Hsieh (2021-07-13 08:54:02)
diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c index 27fb0f0..92cf331 100644 --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c @@ -1634,6 +1617,24 @@ void dp_ctrl_handle_sink_request(struct dp_ctrl *dp_ctrl) } }
+static bool dp_ctrl_clock_recovery_any_ok(
const u8 link_status[DP_LINK_STATUS_SIZE],
int lane_count)
+{
int lane_cnt;
/*
* only interested in the lane number after reduced
* lane_cnt = 4, then only interested in 2 lanes
* lane_cnt = 2, then only interested in 1 lane
*/
lane_cnt = lane_count >> 1;
if (lane_cnt == 0)
return false;
return drm_dp_clock_recovery_ok(link_status, lane_count);
This doesn't work? Because drm_dp_clock_recovery_ok() requires every lane to be OK whereas this function wants any lane to be OK? It may make sense to have drm_dp_clock_recovery_ok() return false if lane_count == 0 too.
+}
int dp_ctrl_on_link(struct dp_ctrl *dp_ctrl) { int rc = 0;