[Intel-gfx] [PATCH 23/49] drm/i915/bxt: Increase DDI buf idle timeout

Daniel Vetter daniel at ffwll.ch
Tue Mar 17 03:39:20 PDT 2015


On Tue, Mar 17, 2015 at 11:39:49AM +0200, Imre Deak wrote:
> From: Vandana Kannan <vandana.kannan at intel.com>
> 
> For BXT, DDI buf idle timeout delay needs to be increased to 16us.
> 
> Since this is a timeout value and we return as soon as the condition is
> realized, no penalty incurred for other platforms.
> 
> Suggested-by: Satheeshakrishna M <satheeshakrishna.m at intel.com>
> Cc: Satheeshakrishna M <satheeshakrishna.m at intel.com>
> Cc: Damien Lespiau <damien.lespiau at intel.com>
> Signed-off-by: Vandana Kannan <vandana.kannan at intel.com>
> Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
> ---
>  drivers/gpu/drm/i915/i915_reg.h  | 1 +
>  drivers/gpu/drm/i915/intel_ddi.c | 2 +-
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index d69d7b9..60ff760 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -6576,6 +6576,7 @@ enum skl_disp_power_wells {
>  #define  DDI_BUF_EMP_MASK			(0xf<<24)
>  #define  DDI_BUF_PORT_REVERSAL			(1<<16)
>  #define  DDI_BUF_IS_IDLE			(1<<7)
> +#define  DDI_BUF_IDLE_TIMEOUT			16	  /* 16us */

Putting this sw value in the middle of all the hw register definitions is
really confusing. Imo just drop it, just adds indirection.
>  #define  DDI_A_4_LANES				(1<<4)
>  #define  DDI_PORT_WIDTH(width)			(((width) - 1) << 1)
>  #define  DDI_INIT_DISPLAY_DETECTED		(1<<0)
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index 8aee7d7..a203d9d 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -322,7 +322,7 @@ static void intel_wait_ddi_buf_idle(struct drm_i915_private *dev_priv,
>  	uint32_t reg = DDI_BUF_CTL(port);
>  	int i;
>  

Instead please add a wa notice or comment here that bxt needs more timeout
delay. Otherwise someone might frob this again by accident.
-Daniel

> -	for (i = 0; i < 8; i++) {
> +	for (i = 0; i < DDI_BUF_IDLE_TIMEOUT; i++) {
>  		udelay(1);
>  		if (I915_READ(reg) & DDI_BUF_IS_IDLE)
>  			return;
> -- 
> 2.1.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list