[Intel-gfx] [PATCH 1/6] drm/i915: disable VGA plane reliably
Zhenyu Wang
zhenyuw at linux.intel.com
Thu Jul 23 15:35:00 CEST 2009
On 2009.07.24 01:00:28 +0800, Zhenyu Wang wrote:
> This does VGA disable like DDX driver. SR01 bit 5 should be set
> before VGA plane disable through control register, otherwise we
> might get random crash and lockups.
>
> Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 28 +++++++++++++++++++++++++---
> 1 files changed, 25 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index a58bfad..b06364e 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -998,6 +998,29 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
> return 0;
> }
>
> +/* Disable the VGA plane that we never use */
> +static void i915_disable_vga (struct drm_device *dev)
> +{
> + struct drm_i915_private *dev_priv = dev->dev_private;
> + u8 sr1;
> + u32 vga_reg;
> +
> + if (IS_IGDNG(dev))
> + vga_reg = CPU_VGACNTRL;
> + else
> + vga_reg = VGACNTRL;
> +
> + if (I915_READ(vga_reg) & VGA_DISP_DISABLE)
> + return;
> +
> + I915_WRITE8(VGA_SR_INDEX, 1);
> + sr1 = I915_READ8(VGA_SR_DATA);
> + I915_WRITE8(VGA_SR_DATA, sr1 | (1 << 5));
> + udelay(100);
> +
> + I915_WRITE(vga_reg, VGA_DISP_DISABLE);
> +}
> +
> static void igdng_crtc_dpms(struct drm_crtc *crtc, int mode)
> {
> struct drm_device *dev = crtc->dev;
> @@ -1200,8 +1223,7 @@ static void igdng_crtc_dpms(struct drm_crtc *crtc, int mode)
> case DRM_MODE_DPMS_OFF:
> DRM_DEBUG("crtc %d dpms off\n", pipe);
>
> - /* Disable the VGA plane that we never use */
> - I915_WRITE(CPU_VGACNTRL, VGA_DISP_DISABLE);
> + i915_disable_vga(dev);
>
> /* Disable display plane */
> temp = I915_READ(dspcntr_reg);
> @@ -1342,7 +1364,7 @@ static void i9xx_crtc_dpms(struct drm_crtc *crtc, int mode)
> //intel_crtc_dpms_video(crtc, FALSE); TODO
>
> /* Disable the VGA plane that we never use */
> - I915_WRITE(VGACNTRL, VGA_DISP_DISABLE);
> + i915_disable_vga(dev);
>
> /* Disable display plane */
> temp = I915_READ(dspcntr_reg);
> --
> 1.6.3.3
ah, sorry, this one is also in my tree, seems dup with Ma ling's but
does care VGA mode disable on IGDNG.
--
Open Source Technology Center, Intel ltd.
$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20090723/6d85b1ce/attachment.sig>
More information about the Intel-gfx
mailing list