Skip to content

Commit

Permalink
drm/i915: Fix hibernate save/restore of VGA attribute regs
Browse files Browse the repository at this point in the history
In hibernate, we may end up calling the VGA save regs function twice, so we need to make sure it's idempotent.  That means leaving ARX in index mode after the first save operation.  Fixes hibernate on 965.

Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Jesse Barnes authored and Dave Airlie committed Feb 19, 2008
1 parent 1f84e55 commit da636ad
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/char/drm/i915_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ static void i915_save_vga(struct drm_device *dev)
dev_priv->saveAR[i] = i915_read_ar(st01, i, 0);
inb(st01);
outb(dev_priv->saveAR_INDEX, VGA_AR_INDEX);
inb(st01);

/* Graphics controller registers */
for (i = 0; i < 9; i++)
Expand Down Expand Up @@ -225,6 +226,7 @@ static void i915_restore_vga(struct drm_device *dev)
i915_write_ar(st01, i, dev_priv->saveAR[i], 0);
inb(st01); /* switch back to index mode */
outb(dev_priv->saveAR_INDEX | 0x20, VGA_AR_INDEX);
inb(st01);

/* VGA color palette registers */
outb(dev_priv->saveDACMASK, VGA_DACMASK);
Expand Down

0 comments on commit da636ad

Please sign in to comment.