Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
[sfrench/cifs-2.6.git] / arch / arm / mach-footbridge / dc21285.c
index 823e25d4547e8b0b7a0ad26b51844c93df290492..1463330ed8ee6b441991f9ca801194f644499edf 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
+#include <linux/irq.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
@@ -69,16 +70,16 @@ dc21285_read_config(struct pci_bus *bus, unsigned int devfn, int where,
        if (addr)
                switch (size) {
                case 1:
-                       asm("ldr%?b     %0, [%1, %2]"
-                               : "=r" (v) : "r" (addr), "r" (where));
+                       asm("ldrb       %0, [%1, %2]"
+                               : "=r" (v) : "r" (addr), "r" (where) : "cc");
                        break;
                case 2:
-                       asm("ldr%?h     %0, [%1, %2]"
-                               : "=r" (v) : "r" (addr), "r" (where));
+                       asm("ldrh       %0, [%1, %2]"
+                               : "=r" (v) : "r" (addr), "r" (where) : "cc");
                        break;
                case 4:
-                       asm("ldr%?      %0, [%1, %2]"
-                               : "=r" (v) : "r" (addr), "r" (where));
+                       asm("ldr        %0, [%1, %2]"
+                               : "=r" (v) : "r" (addr), "r" (where) : "cc");
                        break;
                }
 
@@ -103,16 +104,19 @@ dc21285_write_config(struct pci_bus *bus, unsigned int devfn, int where,
        if (addr)
                switch (size) {
                case 1:
-                       asm("str%?b     %0, [%1, %2]"
-                               : : "r" (value), "r" (addr), "r" (where));
+                       asm("strb       %0, [%1, %2]"
+                               : : "r" (value), "r" (addr), "r" (where)
+                               : "cc");
                        break;
                case 2:
-                       asm("str%?h     %0, [%1, %2]"
-                               : : "r" (value), "r" (addr), "r" (where));
+                       asm("strh       %0, [%1, %2]"
+                               : : "r" (value), "r" (addr), "r" (where)
+                               : "cc");
                        break;
                case 4:
-                       asm("str%?      %0, [%1, %2]"
-                               : : "r" (value), "r" (addr), "r" (where));
+                       asm("str        %0, [%1, %2]"
+                               : : "r" (value), "r" (addr), "r" (where)
+                               : "cc");
                        break;
                }
 
@@ -151,7 +155,7 @@ static void dc21285_enable_error(unsigned long __data)
 /*
  * Warn on PCI errors.
  */
-static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_abort_irq(int irq, void *dev_id)
 {
        unsigned int cmd;
        unsigned int status;
@@ -162,7 +166,7 @@ static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs
 
        if (status & PCI_STATUS_REC_MASTER_ABORT) {
                printk(KERN_DEBUG "PCI: master abort, pc=0x%08lx\n",
-                       instruction_pointer(regs));
+                       instruction_pointer(get_irq_regs()));
                cmd |= PCI_STATUS_REC_MASTER_ABORT << 16;
        }
 
@@ -181,7 +185,7 @@ static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dc21285_serr_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_serr_irq(int irq, void *dev_id)
 {
        struct timer_list *timer = dev_id;
        unsigned int cntl;
@@ -203,7 +207,7 @@ static irqreturn_t dc21285_serr_irq(int irq, void *dev_id, struct pt_regs *regs)
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dc21285_discard_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_discard_irq(int irq, void *dev_id)
 {
        printk(KERN_DEBUG "PCI: discard timer expired\n");
        *CSR_SA110_CNTL &= 0xffffde07;
@@ -211,7 +215,7 @@ static irqreturn_t dc21285_discard_irq(int irq, void *dev_id, struct pt_regs *re
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id)
 {
        unsigned int cmd;
 
@@ -225,7 +229,7 @@ static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id, struct pt_regs *re
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dc21285_parity_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_parity_irq(int irq, void *dev_id)
 {
        struct timer_list *timer = dev_id;
        unsigned int cmd;