drm/i915: More stolen quirking
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 19 Jul 2017 10:00:43 +0000 (12:00 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 19 Jul 2017 12:04:03 +0000 (14:04 +0200)
I've found a bios with an off-by-one at the other end. There's a pnp
reservation for 0xc5400000-0xc7fffffe and we want stolen in 0xc6000000
through 0xc8000000.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99872
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98683
Cc: Martin Peres <martin.peres@linux.intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170719100043.30851-1-daniel.vetter@ffwll.ch
drivers/gpu/drm/i915/i915_gem_stolen.c

index a817b3e0b17ebd9f0b4c4f6022a2f1f82602cc3e..c11c915382e70c87b8b5710d0dba8ce405bdf3c1 100644 (file)
@@ -254,9 +254,10 @@ static dma_addr_t i915_stolen_to_dma(struct drm_i915_private *dev_priv)
                 * This is a BIOS w/a: Some BIOS wrap stolen in the root
                 * PCI bus, but have an off-by-one error. Hence retry the
                 * reservation starting from 1 instead of 0.
+                * There's also BIOS with off-by-one on the other end.
                 */
                r = devm_request_mem_region(dev_priv->drm.dev, base + 1,
-                                           ggtt->stolen_size - 1,
+                                           ggtt->stolen_size - 2,
                                            "Graphics Stolen Memory");
                /*
                 * GEN3 firmware likes to smash pci bridges into the stolen