]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/char/drm/i915_drv.c
drm/i915: fix off by one in VGA save/restore of AR & CR regs.
[linux-2.6-omap-h63xx.git] / drivers / char / drm / i915_drv.c
index b2b451dc44608870a48cbfea56b7de522044aa40..96db72542e7d5a5a0fec46232e588b7d1b68d29f 100644 (file)
@@ -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);