[Intel-gfx] [PATCH] drm/i915: Fix black screen bug on Dell e6510

Jesse Barnes jbarnes at virtuousgeek.org
Thu Sep 23 21:14:34 CEST 2010


On Thu, 23 Sep 2010 20:36:47 +0200
Hette Visser <hettevisser at gmail.com> wrote:

> This patch fixes the black screen bug on Dell e6510:
> https://bugs.freedesktop.org/show_bug.cgi?id=29278
> 
> It adds two delays to give the eDP panel time to turn on before we
> continue with the next write.
> 
> 
> --- drivers/gpu/drm/i915/intel_dp.c.orig	2010-09-23 20:13:36.046856913 +0200
> +++ drivers/gpu/drm/i915/intel_dp.c	2010-09-23 19:27:00.682282002 +0200
> @@ -27,6 +27,7 @@
> 
>  #include <linux/i2c.h>
>  #include <linux/slab.h>
> +#include <linux/delay.h>
>  #include "drmP.h"
>  #include "drm.h"
>  #include "drm_crtc.h"
> @@ -772,6 +773,7 @@ static void ironlake_edp_panel_on (struc
>  	pp |= PANEL_UNLOCK_REGS | POWER_TARGET_ON;
>  	I915_WRITE(PCH_PP_CONTROL, pp);
> 
> +	msleep(300);
>  	if (wait_for(I915_READ(PCH_PP_STATUS) & PP_ON, 5000, 10))
>  		DRM_ERROR("panel on wait timed out: 0x%08x\n",
>  			  I915_READ(PCH_PP_STATUS));
> @@ -805,6 +807,7 @@ static void ironlake_edp_panel_off (stru
>  	pp |= EDP_FORCE_VDD | PANEL_POWER_RESET; /* restore panel reset bit */
>  	I915_WRITE(PCH_PP_CONTROL, pp);
>  	POSTING_READ(PCH_PP_CONTROL);
> +	msleep(300);
>  }

Power sequencing is pretty ugly with eDP, so it's likely other panels
will need the additional delays here as well.  So:

Acked-by: Jesse Barnes <jbarnes at virtuousgeek.org>

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list