* [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training
@ 2017-08-18 3:03 Manasi Navare
2017-08-18 3:14 ` ✓ Fi.CI.BAT: success for " Patchwork
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Manasi Navare @ 2017-08-18 3:03 UTC (permalink / raw)
To: intel-gfx
In the channel EQ retry loop, we break from the loop in case
of failure to get link status or failure in clock recovery or
failure to update link training. In these cases channel_eq_status
is still false even though the retry loop has not reached max retries.
So we need to consider this as a failure condition.
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_dp_link_training.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c
index 05907fa..3fef219 100644
--- a/drivers/gpu/drm/i915/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
@@ -294,9 +294,9 @@ intel_dp_link_training_channel_equalization(struct intel_dp *intel_dp)
}
/* Try 5 times, else fail and try at lower BW */
- if (tries == 5) {
+ if (tries == 5 || !intel_dp->channel_eq_status) {
intel_dp_dump_link_status(link_status);
- DRM_DEBUG_KMS("Channel equalization failed 5 times\n");
+ DRM_DEBUG_KMS("Channel equalization failed\n");
}
intel_dp_set_idle_link_train(intel_dp);
--
2.1.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/dp: Fix the channel equalization failure condition during Link Training
2017-08-18 3:03 [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training Manasi Navare
@ 2017-08-18 3:14 ` Patchwork
2017-08-18 16:36 ` [PATCH] " Jim Bride
2017-08-24 12:33 ` Ville Syrjälä
2 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2017-08-18 3:14 UTC (permalink / raw)
To: Manasi Navare; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/dp: Fix the channel equalization failure condition during Link Training
URL : https://patchwork.freedesktop.org/series/28960/
State : success
== Summary ==
Series 28960v1 drm/i915/dp: Fix the channel equalization failure condition during Link Training
https://patchwork.freedesktop.org/api/1.0/series/28960/revisions/1/mbox/
fi-bdw-5557u total:279 pass:268 dwarn:0 dfail:0 fail:0 skip:11 time:453s
fi-bdw-gvtdvm total:279 pass:265 dwarn:0 dfail:0 fail:0 skip:14 time:435s
fi-blb-e6850 total:279 pass:224 dwarn:1 dfail:0 fail:0 skip:54 time:361s
fi-bsw-n3050 total:279 pass:243 dwarn:0 dfail:0 fail:0 skip:36 time:557s
fi-bxt-j4205 total:279 pass:260 dwarn:0 dfail:0 fail:0 skip:19 time:520s
fi-byt-j1900 total:279 pass:254 dwarn:1 dfail:0 fail:0 skip:24 time:519s
fi-glk-2a total:279 pass:260 dwarn:0 dfail:0 fail:0 skip:19 time:611s
fi-hsw-4770 total:279 pass:263 dwarn:0 dfail:0 fail:0 skip:16 time:447s
fi-hsw-4770r total:279 pass:263 dwarn:0 dfail:0 fail:0 skip:16 time:421s
fi-ilk-650 total:279 pass:229 dwarn:0 dfail:0 fail:0 skip:50 time:424s
fi-ivb-3520m total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:503s
fi-ivb-3770 total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:480s
fi-kbl-7500u total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:478s
fi-kbl-7560u total:279 pass:269 dwarn:0 dfail:0 fail:0 skip:10 time:602s
fi-kbl-r total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:599s
fi-pnv-d510 total:279 pass:223 dwarn:1 dfail:0 fail:0 skip:55 time:523s
fi-skl-6260u total:279 pass:269 dwarn:0 dfail:0 fail:0 skip:10 time:477s
fi-skl-6700k total:279 pass:261 dwarn:0 dfail:0 fail:0 skip:18 time:479s
fi-skl-6770hq total:279 pass:269 dwarn:0 dfail:0 fail:0 skip:10 time:485s
fi-skl-gvtdvm total:279 pass:266 dwarn:0 dfail:0 fail:0 skip:13 time:439s
fi-skl-x1585l total:279 pass:268 dwarn:0 dfail:0 fail:0 skip:11 time:477s
fi-snb-2520m total:279 pass:251 dwarn:0 dfail:0 fail:0 skip:28 time:540s
fi-snb-2600 total:279 pass:250 dwarn:0 dfail:0 fail:0 skip:29 time:405s
cdafe36f7b6f8fa0ae1a90babce68cbd8ccc98cb drm-tip: 2017y-08m-17d-21h-02m-32s UTC integration manifest
48c01fe55f07 drm/i915/dp: Fix the channel equalization failure condition during Link Training
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5432/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training
2017-08-18 3:03 [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training Manasi Navare
2017-08-18 3:14 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-08-18 16:36 ` Jim Bride
2017-08-24 12:33 ` Ville Syrjälä
2 siblings, 0 replies; 6+ messages in thread
From: Jim Bride @ 2017-08-18 16:36 UTC (permalink / raw)
To: Manasi Navare; +Cc: intel-gfx
On Thu, Aug 17, 2017 at 08:03:04PM -0700, Manasi Navare wrote:
> In the channel EQ retry loop, we break from the loop in case
> of failure to get link status or failure in clock recovery or
> failure to update link training. In these cases channel_eq_status
> is still false even though the retry loop has not reached max retries.
> So we need to consider this as a failure condition.
>
Reviewed-by: Jim Bride <jim.bride@linux.intel.com>
> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
> Cc: Jim Bride <jim.bride@linux.intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_dp_link_training.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c
> index 05907fa..3fef219 100644
> --- a/drivers/gpu/drm/i915/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
> @@ -294,9 +294,9 @@ intel_dp_link_training_channel_equalization(struct intel_dp *intel_dp)
> }
>
> /* Try 5 times, else fail and try at lower BW */
> - if (tries == 5) {
> + if (tries == 5 || !intel_dp->channel_eq_status) {
> intel_dp_dump_link_status(link_status);
> - DRM_DEBUG_KMS("Channel equalization failed 5 times\n");
> + DRM_DEBUG_KMS("Channel equalization failed\n");
> }
>
> intel_dp_set_idle_link_train(intel_dp);
> --
> 2.1.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training
2017-08-18 3:03 [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training Manasi Navare
2017-08-18 3:14 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-08-18 16:36 ` [PATCH] " Jim Bride
@ 2017-08-24 12:33 ` Ville Syrjälä
2017-08-24 17:15 ` Manasi Navare
2 siblings, 1 reply; 6+ messages in thread
From: Ville Syrjälä @ 2017-08-24 12:33 UTC (permalink / raw)
To: Manasi Navare; +Cc: intel-gfx
On Thu, Aug 17, 2017 at 08:03:04PM -0700, Manasi Navare wrote:
> In the channel EQ retry loop, we break from the loop in case
> of failure to get link status or failure in clock recovery or
> failure to update link training. In these cases channel_eq_status
> is still false even though the retry loop has not reached max retries.
> So we need to consider this as a failure condition.
This just prints a debug message, and each break in the loop also
prints some kind of debug/error message. So to me this just seems to
make it harder to see why things failed because we now point the finger
at channel EQ even when the actual error was something else.
>
> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
> Cc: Jim Bride <jim.bride@linux.intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_dp_link_training.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c
> index 05907fa..3fef219 100644
> --- a/drivers/gpu/drm/i915/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
> @@ -294,9 +294,9 @@ intel_dp_link_training_channel_equalization(struct intel_dp *intel_dp)
> }
>
> /* Try 5 times, else fail and try at lower BW */
> - if (tries == 5) {
> + if (tries == 5 || !intel_dp->channel_eq_status) {
> intel_dp_dump_link_status(link_status);
> - DRM_DEBUG_KMS("Channel equalization failed 5 times\n");
> + DRM_DEBUG_KMS("Channel equalization failed\n");
> }
>
> intel_dp_set_idle_link_train(intel_dp);
> --
> 2.1.4
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training
2017-08-24 12:33 ` Ville Syrjälä
@ 2017-08-24 17:15 ` Manasi Navare
2017-09-15 18:48 ` Manasi Navare
0 siblings, 1 reply; 6+ messages in thread
From: Manasi Navare @ 2017-08-24 17:15 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
On Thu, Aug 24, 2017 at 03:33:27PM +0300, Ville Syrjälä wrote:
> On Thu, Aug 17, 2017 at 08:03:04PM -0700, Manasi Navare wrote:
> > In the channel EQ retry loop, we break from the loop in case
> > of failure to get link status or failure in clock recovery or
> > failure to update link training. In these cases channel_eq_status
> > is still false even though the retry loop has not reached max retries.
> > So we need to consider this as a failure condition.
>
> This just prints a debug message, and each break in the loop also
> prints some kind of debug/error message. So to me this just seems to
> make it harder to see why things failed because we now point the finger
> at channel EQ even when the actual error was something else.
>
Thanks for your feedback.
The idea is to have one common place for failure so that
failure handling like in case of PSR can be done only
in that one place.
The debug prints for each failure case would still give the
exact reason for failure followed by the end result debug print
saying that "Channel EQ failed" since any of those failures will
result in Ch EQ fail.
Manasi
> >
> > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
> > Cc: Jim Bride <jim.bride@linux.intel.com>
> > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> > Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_dp_link_training.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c
> > index 05907fa..3fef219 100644
> > --- a/drivers/gpu/drm/i915/intel_dp_link_training.c
> > +++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
> > @@ -294,9 +294,9 @@ intel_dp_link_training_channel_equalization(struct intel_dp *intel_dp)
> > }
> >
> > /* Try 5 times, else fail and try at lower BW */
> > - if (tries == 5) {
> > + if (tries == 5 || !intel_dp->channel_eq_status) {
> > intel_dp_dump_link_status(link_status);
> > - DRM_DEBUG_KMS("Channel equalization failed 5 times\n");
> > + DRM_DEBUG_KMS("Channel equalization failed\n");
> > }
> >
> > intel_dp_set_idle_link_train(intel_dp);
> > --
> > 2.1.4
>
> --
> Ville Syrjälä
> Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training
2017-08-24 17:15 ` Manasi Navare
@ 2017-09-15 18:48 ` Manasi Navare
0 siblings, 0 replies; 6+ messages in thread
From: Manasi Navare @ 2017-09-15 18:48 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
On Thu, Aug 24, 2017 at 10:15:42AM -0700, Manasi Navare wrote:
> On Thu, Aug 24, 2017 at 03:33:27PM +0300, Ville Syrjälä wrote:
> > On Thu, Aug 17, 2017 at 08:03:04PM -0700, Manasi Navare wrote:
> > > In the channel EQ retry loop, we break from the loop in case
> > > of failure to get link status or failure in clock recovery or
> > > failure to update link training. In these cases channel_eq_status
> > > is still false even though the retry loop has not reached max retries.
> > > So we need to consider this as a failure condition.
> >
> > This just prints a debug message, and each break in the loop also
> > prints some kind of debug/error message. So to me this just seems to
> > make it harder to see why things failed because we now point the finger
> > at channel EQ even when the actual error was something else.
> >
>
> Thanks for your feedback.
> The idea is to have one common place for failure so that
> failure handling like in case of PSR can be done only
> in that one place.
> The debug prints for each failure case would still give the
> exact reason for failure followed by the end result debug print
> saying that "Channel EQ failed" since any of those failures will
> result in Ch EQ fail.
>
> Manasi
>
Ville, we would need this common exit point for the Channel EQ failures
especially in case where we set the train_set_valid to false in case of
any Channel EQ failures like in the patch:
"drm/i915/edp: Be less aggressive about changing link config on eDP"
So we need to move all the failure handling to the common place like I do
here in this patch if (tries == 5 || !intel_dp->channel_eq_status)
So I am not just adding the DEBUG print but also adding this condition
that if tries ==5 or if channel_eq_status is still false.
This is the place where, train_set_valid gets set to false.
Manasi
> > >
> > > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
> > > Cc: Jim Bride <jim.bride@linux.intel.com>
> > > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> > > Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> > > ---
> > > drivers/gpu/drm/i915/intel_dp_link_training.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c
> > > index 05907fa..3fef219 100644
> > > --- a/drivers/gpu/drm/i915/intel_dp_link_training.c
> > > +++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
> > > @@ -294,9 +294,9 @@ intel_dp_link_training_channel_equalization(struct intel_dp *intel_dp)
> > > }
> > >
> > > /* Try 5 times, else fail and try at lower BW */
> > > - if (tries == 5) {
> > > + if (tries == 5 || !intel_dp->channel_eq_status) {
> > > intel_dp_dump_link_status(link_status);
> > > - DRM_DEBUG_KMS("Channel equalization failed 5 times\n");
> > > + DRM_DEBUG_KMS("Channel equalization failed\n");
> > > }
> > >
> > > intel_dp_set_idle_link_train(intel_dp);
> > > --
> > > 2.1.4
> >
> > --
> > Ville Syrjälä
> > Intel OTC
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-09-15 18:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-18 3:03 [PATCH] drm/i915/dp: Fix the channel equalization failure condition during Link Training Manasi Navare
2017-08-18 3:14 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-08-18 16:36 ` [PATCH] " Jim Bride
2017-08-24 12:33 ` Ville Syrjälä
2017-08-24 17:15 ` Manasi Navare
2017-09-15 18:48 ` Manasi Navare
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.