Message ID | 20241211-drm-dp-msm-add-lttpr-transparent-mode-set-v2-2-d5906ed38b28@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/dp: Rework LTTPR transparent mode handling and add support to msm driver | expand |
Reviewed-by: Lyude Paul <lyude@redhat.com> On Wed, 2024-12-11 at 15:04 +0200, Abel Vesa wrote: > LTTPRs operating modes are defined by the DisplayPort standard and the > generic framework now provides a helper to switch between them, which > is handling the explicit disabling of non-transparent mode and its > disable->enable sequence mentioned in the DP Standard v2.0 section > 3.6.6.1. > > So use the new drm generic helper instead as it makes the code a bit > cleaner. > > Signed-off-by: Abel Vesa <abel.vesa@linaro.org> > --- > drivers/gpu/drm/nouveau/nouveau_dp.c | 17 ++--------------- > 1 file changed, 2 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c > index bcda0105160f1450df855281e0d932606a5095dd..55691ec44abaa53c84e73358e33df1949bb1e35c 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_dp.c > +++ b/drivers/gpu/drm/nouveau/nouveau_dp.c > @@ -79,21 +79,8 @@ nouveau_dp_probe_dpcd(struct nouveau_connector *nv_connector, > !drm_dp_read_lttpr_common_caps(aux, dpcd, outp->dp.lttpr.caps)) { > int nr = drm_dp_lttpr_count(outp->dp.lttpr.caps); > > - if (nr) { > - drm_dp_dpcd_writeb(aux, DP_PHY_REPEATER_MODE, > - DP_PHY_REPEATER_MODE_TRANSPARENT); > - > - if (nr > 0) { > - ret = drm_dp_dpcd_writeb(aux, DP_PHY_REPEATER_MODE, > - DP_PHY_REPEATER_MODE_NON_TRANSPARENT); > - if (ret != 1) { > - drm_dp_dpcd_writeb(aux, DP_PHY_REPEATER_MODE, > - DP_PHY_REPEATER_MODE_TRANSPARENT); > - } else { > - outp->dp.lttpr.nr = nr; > - } > - } > - } > + if (!drm_dp_lttpr_init(aux, nr)) > + outp->dp.lttpr.nr = nr; > } > > ret = drm_dp_read_dpcd_caps(aux, dpcd); >
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c index bcda0105160f1450df855281e0d932606a5095dd..55691ec44abaa53c84e73358e33df1949bb1e35c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dp.c +++ b/drivers/gpu/drm/nouveau/nouveau_dp.c @@ -79,21 +79,8 @@ nouveau_dp_probe_dpcd(struct nouveau_connector *nv_connector, !drm_dp_read_lttpr_common_caps(aux, dpcd, outp->dp.lttpr.caps)) { int nr = drm_dp_lttpr_count(outp->dp.lttpr.caps); - if (nr) { - drm_dp_dpcd_writeb(aux, DP_PHY_REPEATER_MODE, - DP_PHY_REPEATER_MODE_TRANSPARENT); - - if (nr > 0) { - ret = drm_dp_dpcd_writeb(aux, DP_PHY_REPEATER_MODE, - DP_PHY_REPEATER_MODE_NON_TRANSPARENT); - if (ret != 1) { - drm_dp_dpcd_writeb(aux, DP_PHY_REPEATER_MODE, - DP_PHY_REPEATER_MODE_TRANSPARENT); - } else { - outp->dp.lttpr.nr = nr; - } - } - } + if (!drm_dp_lttpr_init(aux, nr)) + outp->dp.lttpr.nr = nr; } ret = drm_dp_read_dpcd_caps(aux, dpcd);
LTTPRs operating modes are defined by the DisplayPort standard and the generic framework now provides a helper to switch between them, which is handling the explicit disabling of non-transparent mode and its disable->enable sequence mentioned in the DP Standard v2.0 section 3.6.6.1. So use the new drm generic helper instead as it makes the code a bit cleaner. Signed-off-by: Abel Vesa <abel.vesa@linaro.org> --- drivers/gpu/drm/nouveau/nouveau_dp.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-)