[Intel-gfx] [PATCH v2] drm/i915/dp: Fix the t11_t12 panel power cycle delay from VBT read

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Jun 22 16:54:10 UTC 2017


On Thu, Jun 22, 2017 at 09:43:00AM -0700, Manasi Navare wrote:
> When we read the VBT t11_t12 value for panel power cycle delay,
> it is a zero based value so we need to 100ms to that. And then it
> needs to be multiplied by 10 to store it in 100usecs unit same as
> SW VBT.
> 
> v2:
> * Change the VBT value instead of HW readout and pp div (Ville Syrjala)
> Signed-off-by: Manasi Navare <manasi.d.navare at intel.com>
> Cc: Ville Syrjala <ville.syrjala at linux.intel.com>
> Cc: Clint Taylor <clinton.a.taylor at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_dp.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index bca4ac1..be9e17a 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5234,6 +5234,11 @@ intel_dp_init_panel_power_sequencer(struct drm_device *dev,
>  	intel_pps_dump_state("cur", &cur);
>  
>  	vbt = dev_priv->vbt.edp.pps;
> +	/* T11_T12 delay is special and actually in units of 100ms, but zero
> +	 * based in the hw (so we need to add 100 ms). But the sw vbt
> +	 * table multiplies it with 1000 to make it in units of 100usec,
> +	 * too. */
> +	vbt.t11_t12 += 100 * 10;

If we ever encounter a two eDP panel system this would end up bumping
the delay twice for one of the panels. But if those panels wouldn't have
identical timings we'd anyway make a mess of things. Not sure how the
VBT would even present two different panels to us. So doing this here
seems OK to me.

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

>  
>  	/* Upper limits from eDP 1.3 spec. Note that we use the clunky units of
>  	 * our hw here, which are all in 100usec. */
> -- 
> 2.1.4

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list