]> Pileus Git - ~andy/linux/blobdiff - drivers/char/agp/intel-agp.c
agp: Support 64-bit APBASE
[~andy/linux] / drivers / char / agp / intel-agp.c
index a426ee1f57a6fd71b30fbd80429cac7c97aa1b4c..a7c276585a9f4f38b8dc510ea0c2fc6742f5b296 100644 (file)
@@ -118,7 +118,6 @@ static void intel_8xx_cleanup(void)
 
 static int intel_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_16 *current_size;
 
@@ -128,8 +127,8 @@ static int intel_configure(void)
        pci_write_config_word(agp_bridge->dev, INTEL_APSIZE, current_size->size_value);
 
        /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* attbase - aperture base */
        pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr);
@@ -148,7 +147,7 @@ static int intel_configure(void)
 
 static int intel_815_configure(void)
 {
-       u32 temp, addr;
+       u32 addr;
        u8 temp2;
        struct aper_size_info_8 *current_size;
 
@@ -167,8 +166,8 @@ static int intel_815_configure(void)
                        current_size->size_value);
 
        /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        pci_read_config_dword(agp_bridge->dev, INTEL_ATTBASE, &addr);
        addr &= INTEL_815_ATTBASE_MASK;
@@ -208,7 +207,6 @@ static void intel_820_cleanup(void)
 
 static int intel_820_configure(void)
 {
-       u32 temp;
        u8 temp2;
        struct aper_size_info_8 *current_size;
 
@@ -218,8 +216,8 @@ static int intel_820_configure(void)
        pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value);
 
        /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* attbase - aperture base */
        pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr);
@@ -239,7 +237,6 @@ static int intel_820_configure(void)
 
 static int intel_840_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
@@ -249,8 +246,8 @@ static int intel_840_configure(void)
        pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value);
 
        /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* attbase - aperture base */
        pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr);
@@ -268,7 +265,6 @@ static int intel_840_configure(void)
 
 static int intel_845_configure(void)
 {
-       u32 temp;
        u8 temp2;
        struct aper_size_info_8 *current_size;
 
@@ -282,9 +278,9 @@ static int intel_845_configure(void)
                                       agp_bridge->apbase_config);
        } else {
                /* address to map to */
-               pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-               agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
-               agp_bridge->apbase_config = temp;
+               agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                           AGP_APERTURE_BAR);
+               agp_bridge->apbase_config = agp_bridge->gart_bus_addr;
        }
 
        /* attbase - aperture base */
@@ -303,7 +299,6 @@ static int intel_845_configure(void)
 
 static int intel_850_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
@@ -313,8 +308,8 @@ static int intel_850_configure(void)
        pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value);
 
        /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* attbase - aperture base */
        pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr);
@@ -332,7 +327,6 @@ static int intel_850_configure(void)
 
 static int intel_860_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
@@ -342,8 +336,8 @@ static int intel_860_configure(void)
        pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value);
 
        /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* attbase - aperture base */
        pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr);
@@ -361,7 +355,6 @@ static int intel_860_configure(void)
 
 static int intel_830mp_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
@@ -371,8 +364,8 @@ static int intel_830mp_configure(void)
        pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value);
 
        /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* attbase - aperture base */
        pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr);
@@ -390,7 +383,6 @@ static int intel_830mp_configure(void)
 
 static int intel_7505_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
@@ -400,8 +392,8 @@ static int intel_7505_configure(void)
        pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value);
 
        /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* attbase - aperture base */
        pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr);