Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
[firefly-linux-kernel-4.4.55.git] / arch / alpha / kernel / sys_noritake.c
index de6ba3432e8ad191a0c7d13cf4b8dc6435489930..538876b62449a215034d053036f3e0e114e51dd4 100644 (file)
@@ -66,6 +66,13 @@ noritake_startup_irq(unsigned int irq)
        return 0;
 }
 
+static void
+noritake_end_irq(unsigned int irq)
+{
+        if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+                noritake_enable_irq(irq);
+}
+
 static struct hw_interrupt_type noritake_irq_type = {
        .typename       = "NORITAKE",
        .startup        = noritake_startup_irq,
@@ -73,7 +80,7 @@ static struct hw_interrupt_type noritake_irq_type = {
        .enable         = noritake_enable_irq,
        .disable        = noritake_disable_irq,
        .ack            = noritake_disable_irq,
-       .end            = noritake_enable_irq,
+       .end            = noritake_end_irq,
 };
 
 static void 
@@ -250,7 +257,7 @@ noritake_swizzle(struct pci_dev *dev, u8 *pinp)
                                slot = PCI_SLOT(dev->devfn) + 15;
                                break;
                        }
-                       pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)) ;
+                       pin = pci_swizzle_interrupt_pin(dev, pin);
 
                        /* Move up the chain of bridges.  */
                        dev = dev->bus->self;