Commit e7b96f28 authored by Tim Gardner's avatar Tim Gardner Committed by Eric Anholt

agp/intel: Use the correct mask to detect i830 aperture size.

BugLink: https://bugs.launchpad.net/bugs/597075

commit f1befe71 introduced a
regression when detecting aperture size of some i915 adapters, e.g.,
those on the Intel Q35 chipset.

The original report: https://bugzilla.kernel.org/show_bug.cgi?id=15733
The regression report: https://bugzilla.kernel.org/show_bug.cgi?id=16294

According to the specification found at
http://intellinuxgraphics.org/VOL_1_graphics_core.pdf, the PCI config
space register I830_GMCH_CTRL is a mirror of GMCH Graphics
Control. The correct macro for isolating the aperture size bits is
therefore I830_GMCH_GMS_MASK along with the attendant changes to the
case statement.
Signed-off-by: default avatarTim Gardner <tim.gardner@canonical.com>
Tested-by: default avatarKees Cook <kees.cook@canonical.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Eric Anholt <eric@anholt.net>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent 9c928d16
...@@ -1216,17 +1216,20 @@ static int intel_i915_get_gtt_size(void) ...@@ -1216,17 +1216,20 @@ static int intel_i915_get_gtt_size(void)
/* G33's GTT size defined in gmch_ctrl */ /* G33's GTT size defined in gmch_ctrl */
pci_read_config_word(agp_bridge->dev, I830_GMCH_CTRL, &gmch_ctrl); pci_read_config_word(agp_bridge->dev, I830_GMCH_CTRL, &gmch_ctrl);
switch (gmch_ctrl & G33_PGETBL_SIZE_MASK) { switch (gmch_ctrl & I830_GMCH_GMS_MASK) {
case G33_PGETBL_SIZE_1M: case I830_GMCH_GMS_STOLEN_512:
size = 512;
break;
case I830_GMCH_GMS_STOLEN_1024:
size = 1024; size = 1024;
break; break;
case G33_PGETBL_SIZE_2M: case I830_GMCH_GMS_STOLEN_8192:
size = 2048; size = 8*1024;
break; break;
default: default:
dev_info(&agp_bridge->dev->dev, dev_info(&agp_bridge->dev->dev,
"unknown page table size 0x%x, assuming 512KB\n", "unknown page table size 0x%x, assuming 512KB\n",
(gmch_ctrl & G33_PGETBL_SIZE_MASK)); (gmch_ctrl & I830_GMCH_GMS_MASK));
size = 512; size = 512;
} }
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment