Re: [PATCH] drm/i915: DP link training optimization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 26, 2015 at 02:19:51PM +0000, Kahola, Mika wrote:
> > -----Original Message-----
> > From: Chris Wilson [mailto:chris@xxxxxxxxxxxxxxxxxx]
> > Sent: Thursday, February 26, 2015 12:51 PM
> > To: Kahola, Mika
> > Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> > Subject: Re:  [PATCH] drm/i915: DP link training optimization
> > 
> > On Thu, Feb 26, 2015 at 11:26:10AM +0200, Mika Kahola wrote:
> > > In a case when DP link has been once trained we can reuse the existing
> > > link training parameters i.e. voltage swing and pre-emphasis levels
> > > from cache when there is a need to restart link training. In a case of
> > > eDP we initially try to train the link by using the parameter set that
> > > we can find from VBT. The fallback on both cases is to reset the link
> > > training parameters and restart.
> > 
> > I don't think the fallback from bad VBT values works as on failure they just
> > get reset. Care to enlighten me?
> > -Chris
> > 
> > --
> > Chris Wilson, Intel Open Source Technology Centre
> 
> Thank you for the comment! This was my first patch to gfx development so all comments are welcomed.
> 
> The idea that I had in mind was to initially start DP link training with the parameters that are stored in VBT. If we are unlucky and the link cannot be established at once by applying those initial parameters the parameters are reset to zero and link training is restarted. I do agree that the fallback in this case is unnecessary if VBT values are reset to zero in case of a failure.

The VBT values themselves are not reset to zero. What I meant was the
sequence for VBT recovery is:

first time link training
-> intel_dp_reset_link_train()
   -> use VBT values
-> reuse_train_set = true
clock recovery !ok
-> reuse_train_set == true
  -> intel_dp_reset_link_train
     -> use VBT values again
  -> reuse_train_set = false

i.e. every time we call reset_link_train we restore the VBT values and
not zero. What you want is something like a
intel_dp->edp_use_vbt_train_set flag that is initially set to
is_edp(intel_edp) and then cleared if clock recovery ever fails.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux