mirror of
https://github.com/adulau/aha.git
synced 2025-01-01 13:46:24 +00:00
drm/i915: fix off by one in VGA save/restore of AR & CR regs.
turns out it's important to save/restore AR14 in particular. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
f116cc561e
commit
a59e122a67
2 changed files with 6 additions and 6 deletions
|
@ -147,7 +147,7 @@ static void i915_save_vga(struct drm_device *dev)
|
|||
i915_write_indexed(cr_index, cr_data, 0x11,
|
||||
i915_read_indexed(cr_index, cr_data, 0x11) &
|
||||
(~0x80));
|
||||
for (i = 0; i < 0x24; i++)
|
||||
for (i = 0; i <= 0x24; i++)
|
||||
dev_priv->saveCR[i] =
|
||||
i915_read_indexed(cr_index, cr_data, i);
|
||||
/* Make sure we don't turn off CR group 0 writes */
|
||||
|
@ -156,7 +156,7 @@ static void i915_save_vga(struct drm_device *dev)
|
|||
/* Attribute controller registers */
|
||||
inb(st01);
|
||||
dev_priv->saveAR_INDEX = inb(VGA_AR_INDEX);
|
||||
for (i = 0; i < 20; i++)
|
||||
for (i = 0; i <= 0x14; i++)
|
||||
dev_priv->saveAR[i] = i915_read_ar(st01, i, 0);
|
||||
inb(st01);
|
||||
outb(dev_priv->saveAR_INDEX, VGA_AR_INDEX);
|
||||
|
@ -206,7 +206,7 @@ static void i915_restore_vga(struct drm_device *dev)
|
|||
/* CRT controller regs */
|
||||
/* Enable CR group 0 writes */
|
||||
i915_write_indexed(cr_index, cr_data, 0x11, dev_priv->saveCR[0x11]);
|
||||
for (i = 0; i < 0x24; i++)
|
||||
for (i = 0; i <= 0x24; i++)
|
||||
i915_write_indexed(cr_index, cr_data, i, dev_priv->saveCR[i]);
|
||||
|
||||
/* Graphics controller regs */
|
||||
|
@ -223,7 +223,7 @@ static void i915_restore_vga(struct drm_device *dev)
|
|||
|
||||
/* Attribute controller registers */
|
||||
inb(st01);
|
||||
for (i = 0; i < 20; i++)
|
||||
for (i = 0; i <= 0x14; i++)
|
||||
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);
|
||||
|
|
|
@ -197,10 +197,10 @@ typedef struct drm_i915_private {
|
|||
u8 saveSR[8];
|
||||
u8 saveGR[25];
|
||||
u8 saveAR_INDEX;
|
||||
u8 saveAR[20];
|
||||
u8 saveAR[21];
|
||||
u8 saveDACMASK;
|
||||
u8 saveDACDATA[256*3]; /* 256 3-byte colors */
|
||||
u8 saveCR[36];
|
||||
u8 saveCR[37];
|
||||
} drm_i915_private_t;
|
||||
|
||||
extern struct drm_ioctl_desc i915_ioctls[];
|
||||
|
|
Loading…
Reference in a new issue