Merge tag 'linux-kselftest-kunit-5.15-rc1' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / arch / powerpc / platforms / 512x / mpc5121_ads_cpld.c
index b298163..ea46870 100644 (file)
@@ -81,11 +81,10 @@ static struct irq_chip cpld_pic = {
        .irq_unmask = cpld_unmask_irq,
 };
 
-static int
+static unsigned int
 cpld_pic_get_irq(int offset, u8 ignore, u8 __iomem *statusp,
                            u8 __iomem *maskp)
 {
-       int cpld_irq;
        u8 status = in_8(statusp);
        u8 mask = in_8(maskp);
 
@@ -93,28 +92,26 @@ cpld_pic_get_irq(int offset, u8 ignore, u8 __iomem *statusp,
        status |= (ignore | mask);
 
        if (status == 0xff)
-               return 0;
-
-       cpld_irq = ffz(status) + offset;
+               return ~0;
 
-       return irq_linear_revmap(cpld_pic_host, cpld_irq);
+       return ffz(status) + offset;
 }
 
 static void cpld_pic_cascade(struct irq_desc *desc)
 {
-       unsigned int irq;
+       unsigned int hwirq;
 
-       irq = cpld_pic_get_irq(0, PCI_IGNORE, &cpld_regs->pci_status,
+       hwirq = cpld_pic_get_irq(0, PCI_IGNORE, &cpld_regs->pci_status,
                &cpld_regs->pci_mask);
-       if (irq) {
-               generic_handle_irq(irq);
+       if (hwirq != ~0) {
+               generic_handle_domain_irq(cpld_pic_host, hwirq);
                return;
        }
 
-       irq = cpld_pic_get_irq(8, MISC_IGNORE, &cpld_regs->misc_status,
+       hwirq = cpld_pic_get_irq(8, MISC_IGNORE, &cpld_regs->misc_status,
                &cpld_regs->misc_mask);
-       if (irq) {
-               generic_handle_irq(irq);
+       if (hwirq != ~0) {
+               generic_handle_domain_irq(cpld_pic_host, hwirq);
                return;
        }
 }