intel_agp: fix GTT map size on G33
authorZhenyu Wang <zhenyu.z.wang@intel.com>
Tue, 11 Sep 2007 22:23:58 +0000 (15:23 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 12 Sep 2007 00:21:20 +0000 (17:21 -0700)
G33 has 1MB GTT table range.  Fix GTT mapping in case like 512MB aperture
size.

Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
Acked-by: Dave Airlie <airlied@linux.ie>
Cc: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/char/agp/intel-agp.c

index 581f9222a9d11cc43dfef9482f4fee65acb804f7..7c69bf259caa7ca3258dfd5d0441dc71d1f6bf21 100644 (file)
@@ -919,6 +919,7 @@ static int intel_i915_create_gatt_table(struct agp_bridge_data *bridge)
        struct aper_size_info_fixed *size;
        int num_entries;
        u32 temp, temp2;
+       int gtt_map_size = 256 * 1024;
 
        size = agp_bridge->current_size;
        page_order = size->page_order;
@@ -928,7 +929,9 @@ static int intel_i915_create_gatt_table(struct agp_bridge_data *bridge)
        pci_read_config_dword(intel_private.pcidev, I915_MMADDR, &temp);
        pci_read_config_dword(intel_private.pcidev, I915_PTEADDR,&temp2);
 
-       intel_private.gtt = ioremap(temp2, 256 * 1024);
+       if (IS_G33)
+           gtt_map_size = 1024 * 1024; /* 1M on G33 */
+       intel_private.gtt = ioremap(temp2, gtt_map_size);
        if (!intel_private.gtt)
                return -ENOMEM;