Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6

* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/i915: fix memory corruption with GM965 and >4GB RAM

+11
+11
drivers/gpu/drm/i915/i915_dma.c
··· 1895 if (IS_GEN2(dev)) 1896 dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(30)); 1897 1898 mmio_bar = IS_GEN2(dev) ? 1 : 0; 1899 dev_priv->regs = pci_iomap(dev->pdev, mmio_bar, 0); 1900 if (!dev_priv->regs) {
··· 1895 if (IS_GEN2(dev)) 1896 dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(30)); 1897 1898 + /* 965GM sometimes incorrectly writes to hardware status page (HWS) 1899 + * using 32bit addressing, overwriting memory if HWS is located 1900 + * above 4GB. 1901 + * 1902 + * The documentation also mentions an issue with undefined 1903 + * behaviour if any general state is accessed within a page above 4GB, 1904 + * which also needs to be handled carefully. 1905 + */ 1906 + if (IS_BROADWATER(dev) || IS_CRESTLINE(dev)) 1907 + dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(32)); 1908 + 1909 mmio_bar = IS_GEN2(dev) ? 1 : 0; 1910 dev_priv->regs = pci_iomap(dev->pdev, mmio_bar, 0); 1911 if (!dev_priv->regs) {