diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_dma.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 51150692af2d..8924b4bc7369 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -1900,6 +1900,17 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | |||
1900 | if (IS_GEN2(dev)) | 1900 | if (IS_GEN2(dev)) |
1901 | dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(30)); | 1901 | dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(30)); |
1902 | 1902 | ||
1903 | /* 965GM sometimes incorrectly writes to hardware status page (HWS) | ||
1904 | * using 32bit addressing, overwriting memory if HWS is located | ||
1905 | * above 4GB. | ||
1906 | * | ||
1907 | * The documentation also mentions an issue with undefined | ||
1908 | * behaviour if any general state is accessed within a page above 4GB, | ||
1909 | * which also needs to be handled carefully. | ||
1910 | */ | ||
1911 | if (IS_BROADWATER(dev) || IS_CRESTLINE(dev)) | ||
1912 | dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(32)); | ||
1913 | |||
1903 | mmio_bar = IS_GEN2(dev) ? 1 : 0; | 1914 | mmio_bar = IS_GEN2(dev) ? 1 : 0; |
1904 | dev_priv->regs = pci_iomap(dev->pdev, mmio_bar, 0); | 1915 | dev_priv->regs = pci_iomap(dev->pdev, mmio_bar, 0); |
1905 | if (!dev_priv->regs) { | 1916 | if (!dev_priv->regs) { |