Message ID | 20210820075301.693099-1-kai.heng.feng@canonical.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] drm/i915/dp: Use max params for panels < eDP 1.4 | expand |
On Fri, Aug 20, 2021 at 03:52:59PM +0800, Kai-Heng Feng wrote: > Users reported that after commit 2bbd6dba84d4 ("drm/i915: Try to use > fast+narrow link on eDP again and fall back to the old max strategy on > failure"), the screen starts to have wobbly effect. > > Commit a5c936add6a2 ("drm/i915/dp: Use slow and wide link training for > everything") doesn't help either, that means the affected eDP 1.2 panels > only work with max params. > > So use max params for panels < eDP 1.4 as Windows does to solve the > issue. > > v3: > - Do the eDP rev check in intel_edp_init_dpcd() > > v2: > - Check eDP 1.4 instead of DPCD 1.1 to apply max params > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3714 > Fixes: 2bbd6dba84d4 ("drm/i915: Try to use fast+narrow link on eDP again and fall back to the old max strategy on failure") > Fixes: a5c936add6a2 ("drm/i915/dp: Use slow and wide link training for everything") > Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Slapped a cc:stable on it and pushed to drm-intel-next. Thanks. > --- > drivers/gpu/drm/i915/display/intel_dp.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index 75d4ebc669411..e0dbd35ae7bc0 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -2445,11 +2445,14 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp) > */ > if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_DPCD_REV, > intel_dp->edp_dpcd, sizeof(intel_dp->edp_dpcd)) == > - sizeof(intel_dp->edp_dpcd)) > + sizeof(intel_dp->edp_dpcd)) { > drm_dbg_kms(&dev_priv->drm, "eDP DPCD: %*ph\n", > (int)sizeof(intel_dp->edp_dpcd), > intel_dp->edp_dpcd); > > + intel_dp->use_max_params = intel_dp->edp_dpcd[0] < DP_EDP_14; > + } > + > /* > * This has to be called after intel_dp->edp_dpcd is filled, PSR checks > * for SET_POWER_CAPABLE bit in intel_dp->edp_dpcd[1] > -- > 2.32.0
On Fri, Aug 20, 2021 at 08:26:14PM +0300, Ville Syrjälä wrote: > On Fri, Aug 20, 2021 at 03:52:59PM +0800, Kai-Heng Feng wrote: > > Users reported that after commit 2bbd6dba84d4 ("drm/i915: Try to use > > fast+narrow link on eDP again and fall back to the old max strategy on > > failure"), the screen starts to have wobbly effect. > > > > Commit a5c936add6a2 ("drm/i915/dp: Use slow and wide link training for > > everything") doesn't help either, that means the affected eDP 1.2 panels > > only work with max params. > > > > So use max params for panels < eDP 1.4 as Windows does to solve the > > issue. > > > > v3: > > - Do the eDP rev check in intel_edp_init_dpcd() > > > > v2: > > - Check eDP 1.4 instead of DPCD 1.1 to apply max params > > > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3714 > > Fixes: 2bbd6dba84d4 ("drm/i915: Try to use fast+narrow link on eDP again and fall back to the old max strategy on failure") > > Fixes: a5c936add6a2 ("drm/i915/dp: Use slow and wide link training for everything") > > Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > > Slapped a cc:stable on it and pushed to drm-intel-next. Thanks. Since I got a strange failure on CI_DIF_604 that I don't see on CI_DIF_603, I'm avoiding the display patches. This one and also dab1b47e57e0 ("drm/i915/dp: return proper DPRX link training result") I know, it is probably the other one, but I had to remove both patches for now and I'm not confident the CI will allow me to test with this one alone. If we have -rc8 I will check again later. Otherwise we will have to send to the stable mailing list later. > > > --- > > drivers/gpu/drm/i915/display/intel_dp.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > > index 75d4ebc669411..e0dbd35ae7bc0 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dp.c > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > > @@ -2445,11 +2445,14 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp) > > */ > > if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_DPCD_REV, > > intel_dp->edp_dpcd, sizeof(intel_dp->edp_dpcd)) == > > - sizeof(intel_dp->edp_dpcd)) > > + sizeof(intel_dp->edp_dpcd)) { > > drm_dbg_kms(&dev_priv->drm, "eDP DPCD: %*ph\n", > > (int)sizeof(intel_dp->edp_dpcd), > > intel_dp->edp_dpcd); > > > > + intel_dp->use_max_params = intel_dp->edp_dpcd[0] < DP_EDP_14; > > + } > > + > > /* > > * This has to be called after intel_dp->edp_dpcd is filled, PSR checks > > * for SET_POWER_CAPABLE bit in intel_dp->edp_dpcd[1] > > -- > > 2.32.0 > > -- > Ville Syrjälä > Intel
On Thu, Aug 26, 2021 at 01:37:34PM -0400, Rodrigo Vivi wrote: > On Fri, Aug 20, 2021 at 08:26:14PM +0300, Ville Syrjälä wrote: > > On Fri, Aug 20, 2021 at 03:52:59PM +0800, Kai-Heng Feng wrote: > > > Users reported that after commit 2bbd6dba84d4 ("drm/i915: Try to use > > > fast+narrow link on eDP again and fall back to the old max strategy on > > > failure"), the screen starts to have wobbly effect. > > > > > > Commit a5c936add6a2 ("drm/i915/dp: Use slow and wide link training for > > > everything") doesn't help either, that means the affected eDP 1.2 panels > > > only work with max params. > > > > > > So use max params for panels < eDP 1.4 as Windows does to solve the > > > issue. > > > > > > v3: > > > - Do the eDP rev check in intel_edp_init_dpcd() > > > > > > v2: > > > - Check eDP 1.4 instead of DPCD 1.1 to apply max params > > > > > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3714 > > > Fixes: 2bbd6dba84d4 ("drm/i915: Try to use fast+narrow link on eDP again and fall back to the old max strategy on failure") > > > Fixes: a5c936add6a2 ("drm/i915/dp: Use slow and wide link training for everything") > > > Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > > > > Slapped a cc:stable on it and pushed to drm-intel-next. Thanks. > > Since I got a strange failure on CI_DIF_604 that I don't see on CI_DIF_603, > I'm avoiding the display patches. This one and also > dab1b47e57e0 ("drm/i915/dp: return proper DPRX link training result") > > I know, it is probably the other one, but I had to remove both patches for > now and I'm not confident the CI will allow me to test with this one alone. > > If we have -rc8 I will check again later. Otherwise we will have to send > to the stable mailing list later. CI didn't run on TGL again, so I couldn't send this patch last week. And 5.14 got released. If this is important for 5.14 or any other stable release, please confirm this is not the one breaking linking training on TGL and then please send it to the stable mailing list. https://www.kernel.org/doc/Documentation/process/stable-kernel-rules.rst Sorry, Rodrigo. > > > > > > --- > > > drivers/gpu/drm/i915/display/intel_dp.c | 5 ++++- > > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > > > index 75d4ebc669411..e0dbd35ae7bc0 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_dp.c > > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > > > @@ -2445,11 +2445,14 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp) > > > */ > > > if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_DPCD_REV, > > > intel_dp->edp_dpcd, sizeof(intel_dp->edp_dpcd)) == > > > - sizeof(intel_dp->edp_dpcd)) > > > + sizeof(intel_dp->edp_dpcd)) { > > > drm_dbg_kms(&dev_priv->drm, "eDP DPCD: %*ph\n", > > > (int)sizeof(intel_dp->edp_dpcd), > > > intel_dp->edp_dpcd); > > > > > > + intel_dp->use_max_params = intel_dp->edp_dpcd[0] < DP_EDP_14; > > > + } > > > + > > > /* > > > * This has to be called after intel_dp->edp_dpcd is filled, PSR checks > > > * for SET_POWER_CAPABLE bit in intel_dp->edp_dpcd[1] > > > -- > > > 2.32.0 > > > > -- > > Ville Syrjälä > > Intel
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 75d4ebc669411..e0dbd35ae7bc0 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -2445,11 +2445,14 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp) */ if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_DPCD_REV, intel_dp->edp_dpcd, sizeof(intel_dp->edp_dpcd)) == - sizeof(intel_dp->edp_dpcd)) + sizeof(intel_dp->edp_dpcd)) { drm_dbg_kms(&dev_priv->drm, "eDP DPCD: %*ph\n", (int)sizeof(intel_dp->edp_dpcd), intel_dp->edp_dpcd); + intel_dp->use_max_params = intel_dp->edp_dpcd[0] < DP_EDP_14; + } + /* * This has to be called after intel_dp->edp_dpcd is filled, PSR checks * for SET_POWER_CAPABLE bit in intel_dp->edp_dpcd[1]
Users reported that after commit 2bbd6dba84d4 ("drm/i915: Try to use fast+narrow link on eDP again and fall back to the old max strategy on failure"), the screen starts to have wobbly effect. Commit a5c936add6a2 ("drm/i915/dp: Use slow and wide link training for everything") doesn't help either, that means the affected eDP 1.2 panels only work with max params. So use max params for panels < eDP 1.4 as Windows does to solve the issue. v3: - Do the eDP rev check in intel_edp_init_dpcd() v2: - Check eDP 1.4 instead of DPCD 1.1 to apply max params Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3714 Fixes: 2bbd6dba84d4 ("drm/i915: Try to use fast+narrow link on eDP again and fall back to the old max strategy on failure") Fixes: a5c936add6a2 ("drm/i915/dp: Use slow and wide link training for everything") Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> --- drivers/gpu/drm/i915/display/intel_dp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)