[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