Re: [PATCH 23/49] drm/i915/bxt: Increase DDI buf idle timeout

Daniel Vetter
2015-03-17T10:37:38Z

On Tue, Mar 17, 2015 at 11:39:49AM +0200, Imre Deak wrote:
> From: Vandana Kannan <vandana.kannan@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@intel.com>
> Cc: Satheeshakrishna M <satheeshakrishna.m@intel.com>
> Cc: Damien Lespiau <damien.lespiau@intel.com>
> Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
> Signed-off-by: Damien Lespiau <damien.lespiau@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@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

--
Daniel Vetter
Software Engineer, Intel Corporation