drm_dp_lttpr_count() returns 0 when no LTTPRs are detected and a negative value on error. The previous code passed the result directly to drm_dp_lttpr_init() without checking, which would call into the LTTPR transparency-mode setup with a zero or negative repeater count.
Add an early return for lttpr_count <= 0 to skip the init entirely when there are no repeaters in the link, matching the expected usage of drm_dp_lttpr_init(). Signed-off-by: Saurabh Anand <[email protected]> --- drivers/gpu/drm/msm/dp/dp_display.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index 40e19d506a45..1f60c78a463d 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -253,6 +253,10 @@ static int msm_dp_display_lttpr_init(struct msm_dp_display_private *dp, u8 *dpcd return 0; lttpr_count = drm_dp_lttpr_count(dp->link->lttpr_common_caps); + + if (lttpr_count <= 0) + return 0; + rc = drm_dp_lttpr_init(dp->aux, lttpr_count); if (rc) { DRM_ERROR("failed to set LTTPRs transparency mode, rc=%d\n", rc); -- 2.34.1
