[Intel-gfx] [PATCH] drm/i915: make DP training try a little harder
Jesse Barnes
jbarnes at virtuousgeek.org
Wed Jan 5 17:40:08 CET 2011
On Wed, 05 Jan 2011 10:43:41 +0000
Chris Wilson <chris at chris-wilson.co.uk> wrote:
> On Tue, 4 Jan 2011 11:53:14 -0800, Jesse Barnes <jbarnes at virtuousgeek.org> wrote:
> > When trying to do channel equalization, we need to make sure we still
> > have clock recovery on all lanes while training. We also need to try
> > clock recovery again if we lose the clock or if channel eq fails 5
> > times. We'll try clock recovery up to 5 more times before giving up
> > entirely.
> >
> > Gets suspend/resume working on my Vaio again and brings us back into
> > compliance with the DP training sequence spec.
>
> There are still ways link training can silently fail. The next task for
> the foolhardy is return error codes from modesetting (and accept that any
> failure can leave the system in a partially defined state, with a forced
> mode reset in the drm_kms_helper?).
>
> > - /* Try 5 times */
> > - if (tries > 5)
> > + /* Try 5 times, then try clock recovery if that fails */
> > + if (tries > 5) {
> > + intel_dp_link_down(intel_dp);
> > + intel_dp_start_link_train(intel_dp);
> > + tries = 0;
> > + cr_tries++;
> > break;
>
> This should be a continue, right?.
Oops, yeah the loop is wrong; the cr_tries check needs to be above the
first continue as well. Will fix, but it sounds like it won't help
with Yuanhan's problem...
--
Jesse Barnes, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list