]> err.no Git - linux-2.6/blobdiff - arch/mips/pci/ops-au1000.c
[ARM] 4652/1: pxa: fix a typo of pxa27x usb host clk definition
[linux-2.6] / arch / mips / pci / ops-au1000.c
index 0c0c1e6519f9e4a35cb6a98b04b669ad4384c82a..6b29904acf451936093ccbaa8d2af9b759502325 100644 (file)
@@ -110,9 +110,9 @@ static int config_access(unsigned char access_type, struct pci_bus *bus,
        if (first_cfg) {
                /* reserve a wired entry for pci config accesses */
                first_cfg = 0;
-               pci_cfg_vm = get_vm_area(0x2000, 0);
+               pci_cfg_vm = get_vm_area(0x2000, VM_IOREMAP);
                if (!pci_cfg_vm)
-                       panic (KERN_ERR "PCI unable to get vm area\n");
+                       panic(KERN_ERR "PCI unable to get vm area\n");
                pci_cfg_wired_entry = read_c0_wired();
                add_wired_entry(0, 0, (unsigned long)pci_cfg_vm->addr, PM_4K);
                last_entryLo0  = last_entryLo1 = 0xffffffff;
@@ -172,7 +172,11 @@ static int config_access(unsigned char access_type, struct pci_bus *bus,
                error = -1;
                DBG("Au1x Master Abort\n");
        } else if ((status >> 28) & 0xf) {
-               DBG("PCI ERR detected: status %x\n", status);
+               DBG("PCI ERR detected: device %d, status %x\n", device, ((status >> 28) & 0xf));
+
+               /* clear errors */
+               au_writel(status & 0xf000ffff, Au1500_PCI_STATCMD);
+
                *data = 0xffffffff;
                error = -1;
        }