[Intel-gfx] [PATCH] drm/i915/bdw: Add 42ms delay for IPS disable

Chris Wilson chris at chris-wilson.co.uk
Thu Apr 10 20:12:46 CEST 2014


On Thu, Apr 10, 2014 at 11:04:17AM -0700, Ben Widawsky wrote:
> From: Ben Widawsky <benjamin.widawsky at linux.intel.com>
> 
> This is a requirement added to the spec. This patch will present
> persistent corruption on the display.

Prevent? I don't think we want to start showing corruption to the user.
 
> Cc: Art Runyan <arthur.j.runyan at intel.com>
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 7f02444..ebc84ee 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -3583,7 +3583,7 @@ void hsw_disable_ips(struct intel_crtc *crtc)
>  		return;
>  
>  	assert_plane_enabled(dev_priv, crtc->plane);
> -	if (IS_BROADWELL(crtc->base.dev)) {
> +	if (IS_BROADWELL(dev)) {
>  		mutex_lock(&dev_priv->rps.hw_lock);
>  		WARN_ON(sandybridge_pcode_write(dev_priv, DISPLAY_IPS_CONTROL, 0));
>  		mutex_unlock(&dev_priv->rps.hw_lock);
> @@ -3594,6 +3594,10 @@ void hsw_disable_ips(struct intel_crtc *crtc)
>  
>  	/* We need to wait for a vblank before we can disable the plane. */
>  	intel_wait_for_vblank(dev, crtc->pipe);
> +
> +	/* wait for pcode to finish disabling IPS, which may take up to 42ms */
> +	if (IS_BROADWELL(dev))
> +		msleep(42);

Reading too much Douglas Adams?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list