/* Chipset independent registers (from AGP Spec) */
 #define AGP_APBASE     0x10
+#define AGP_APERTURE_BAR       0
 
 #define AGPSTAT                0x4
 #define AGPCMD         0x8
 
        pci_write_config_dword(agp_bridge->dev, ALI_TLBCTRL, ((temp & 0xffffff00) | 0x00000010));
 
        /* 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);
 
 #if 0
        if (agp_bridge->type == ALI_M1541) {
 
        unsigned long __iomem *cur_gatt;
        unsigned long addr;
        int retval;
-       u32 temp;
        int i;
 
        value = A_SIZE_LVL2(agp_bridge->current_size);
         * used to program the agp master not the cpu
         */
 
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       addr = pci_bus_address(agp_bridge->dev, AGP_APERTURE_BAR);
        agp_bridge->gart_bus_addr = addr;
 
        /* Calculate the agp offset */
 
  */
 static int fix_northbridge(struct pci_dev *nb, struct pci_dev *agp, u16 cap)
 {
-       u32 aper_low, aper_hi;
        u64 aper, nb_aper;
        int order = 0;
        u32 nb_order, nb_base;
                apsize |= 0xf00;
        order = 7 - hweight16(apsize);
 
-       pci_read_config_dword(agp, 0x10, &aper_low);
-       pci_read_config_dword(agp, 0x14, &aper_hi);
-       aper = (aper_low & ~((1<<22)-1)) | ((u64)aper_hi << 32);
+       aper = pci_bus_address(agp, AGP_APERTURE_BAR);
 
        /*
         * On some sick chips APSIZE is 0. This means it wants 4G
 
        else
                pci_write_config_dword(agp_bridge->dev, ATI_RS300_IG_AGPMODE, 0x20000);
 
-       /* address to map too */
+       /* 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);
        printk(KERN_INFO PFX "IGP320 gart_bus_addr: %x\n", agp_bridge.gart_bus_addr);
        */
        writel(0x60000, ati_generic_private.registers+ATI_GART_FEATURE_ID);
         * This is a bus address even on the alpha, b/c its
         * used to program the agp master not the cpu
         */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       addr = pci_bus_address(agp_bridge->dev, AGP_APERTURE_BAR);
        agp_bridge->gart_bus_addr = addr;
 
        /* Calculate the agp offset */
 
 
 static int efficeon_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_lvl2 *current_size;
 
                              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);
 
        /* agpctrl */
        pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x2280);
 
 
        current_size = A_SIZE_16(agp_bridge->current_size);
 
-       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);
 
        /* set aperture size */
        pci_write_config_word(agp_bridge->dev, agp_bridge->capndx+AGPAPSIZE, current_size->size_value);
 
 
 static int intel_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_16 *current_size;
 
        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);
 
 static int intel_815_configure(void)
 {
-       u32 temp, addr;
+       u32 addr;
        u8 temp2;
        struct aper_size_info_8 *current_size;
 
                        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;
 
 static int intel_820_configure(void)
 {
-       u32 temp;
        u8 temp2;
        struct aper_size_info_8 *current_size;
 
        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);
 
 static int intel_840_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
        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);
 
 static int intel_845_configure(void)
 {
-       u32 temp;
        u8 temp2;
        struct aper_size_info_8 *current_size;
 
                                       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 */
 
 static int intel_850_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
        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);
 
 static int intel_860_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
        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);
 
 static int intel_830mp_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
        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);
 
 static int intel_7505_configure(void)
 {
-       u32 temp;
        u16 temp2;
        struct aper_size_info_8 *current_size;
 
        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);
 
        pci_write_config_byte(agp_bridge->dev, NVIDIA_0_APSIZE,
                current_size->size_value);
 
-    /* address to map to */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &apbase);
-       apbase &= PCI_BASE_ADDRESS_MEM_MASK;
+       /* address to map to */
+       apbase = pci_bus_address(agp_bridge->dev, AGP_APERTURE_BAR);
        agp_bridge->gart_bus_addr = apbase;
        aplimit = apbase + (current_size->size * 1024 * 1024) - 1;
        pci_write_config_dword(nvidia_private.dev_2, NVIDIA_2_APBASE, apbase);
 
 
 static int sis_configure(void)
 {
-       u32 temp;
        struct aper_size_info_8 *current_size;
 
        current_size = A_SIZE_8(agp_bridge->current_size);
        pci_write_config_byte(agp_bridge->dev, SIS_TLBCNTRL, 0x05);
-       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_write_config_dword(agp_bridge->dev, SIS_ATTBASE,
                               agp_bridge->gatt_bus_addr);
        pci_write_config_byte(agp_bridge->dev, SIS_APSIZE,
 
 
 static int via_configure(void)
 {
-       u32 temp;
        struct aper_size_info_8 *current_size;
 
        current_size = A_SIZE_8(agp_bridge->current_size);
        /* aperture size */
        pci_write_config_byte(agp_bridge->dev, VIA_APSIZE,
                              current_size->size_value);
-       /* address to map too */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       /* address to map to */
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* GART control register */
        pci_write_config_dword(agp_bridge->dev, VIA_GARTCTRL, 0x0000000f);
 
        current_size = A_SIZE_16(agp_bridge->current_size);
 
-       /* address to map too */
-       pci_read_config_dword(agp_bridge->dev, AGP_APBASE, &temp);
-       agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK);
+       /* address to map to */
+       agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev,
+                                                   AGP_APERTURE_BAR);
 
        /* attbase - aperture GATT base */
        pci_write_config_dword(agp_bridge->dev, VIA_AGP3_ATTBASE,