]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm/i915: Read the Base of Stolen Memory for 915gm
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 10 Feb 2013 19:38:13 +0000 (19:38 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 15 Feb 2013 09:30:40 +0000 (10:30 +0100)
Reading the cspec pays dividends once again, as I found the 'Base of
Stolen Memory' config register so that we can skip the fragile
computation from Top of Usable Draw and use the real value provided by
the BIOS.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_stolen.c

index 69d97cbac13c5754344355e602c64ad75b768a24..9f01332198de26f4f7276cb3bd29031123dc586b 100644 (file)
@@ -72,13 +72,10 @@ static unsigned long i915_stolen_to_physical(struct drm_device *dev)
        } else if (INTEL_INFO(dev)->gen > 3 || IS_G33(dev)) {
                /* Read Graphics Base of Stolen Memory directly */
                pci_read_config_dword(pdev, 0xA4, &base);
-#if 0
        } else if (IS_GEN3(dev)) {
-               u8 val;
-               /* Stolen is immediately below Top of Low Usable DRAM */
-               pci_read_config_byte(pdev, 0x9c, &val);
-               base = val >> 3 << 27;
-               base -= dev_priv->mm.gtt->stolen_size;
+               /* Read D2:F0 Base of Stolen Memory directly */
+               pci_read_config_dword(dev->pdev, 0x5c, &base);
+#if 0
        } else {
                /* Stolen is immediately above Top of Memory */
                base = max_low_pfn_mapped << PAGE_SHIFT;