IPIC controller doesn't support ack operations.  The pending registers
are read-only.  The patch removes ack operations which are not needed.

Signed-off-by: Li Yang <[EMAIL PROTECTED]>
---
 arch/powerpc/sysdev/ipic.c |   40 ++--------------------------------------
 1 files changed, 2 insertions(+), 38 deletions(-)

diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index cd8590d..6835c15 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -533,42 +533,7 @@ static void ipic_mask_irq(unsigned int virq)
        temp = ipic_read(ipic->regs, ipic_info[src].mask);
        temp &= ~(1 << (31 - ipic_info[src].bit));
        ipic_write(ipic->regs, ipic_info[src].mask, temp);
-
-       spin_unlock_irqrestore(&ipic_lock, flags);
-}
-
-static void ipic_ack_irq(unsigned int virq)
-{
-       struct ipic *ipic = ipic_from_irq(virq);
-       unsigned int src = ipic_irq_to_hw(virq);
-       unsigned long flags;
-       u32 temp;
-
-       spin_lock_irqsave(&ipic_lock, flags);
-
-       temp = ipic_read(ipic->regs, ipic_info[src].pend);
-       temp |= (1 << (31 - ipic_info[src].bit));
-       ipic_write(ipic->regs, ipic_info[src].pend, temp);
-
-       spin_unlock_irqrestore(&ipic_lock, flags);
-}
-
-static void ipic_mask_irq_and_ack(unsigned int virq)
-{
-       struct ipic *ipic = ipic_from_irq(virq);
-       unsigned int src = ipic_irq_to_hw(virq);
-       unsigned long flags;
-       u32 temp;
-
-       spin_lock_irqsave(&ipic_lock, flags);
-
-       temp = ipic_read(ipic->regs, ipic_info[src].mask);
-       temp &= ~(1 << (31 - ipic_info[src].bit));
-       ipic_write(ipic->regs, ipic_info[src].mask, temp);
-
-       temp = ipic_read(ipic->regs, ipic_info[src].pend);
-       temp |= (1 << (31 - ipic_info[src].bit));
-       ipic_write(ipic->regs, ipic_info[src].pend, temp);
+       mb();
 
        spin_unlock_irqrestore(&ipic_lock, flags);
 }
@@ -626,8 +591,7 @@ static struct irq_chip ipic_irq_chip = {
        .typename       = " IPIC  ",
        .unmask         = ipic_unmask_irq,
        .mask           = ipic_mask_irq,
-       .mask_ack       = ipic_mask_irq_and_ack,
-       .ack            = ipic_ack_irq,
+       .mask_ack       = ipic_mask_irq,
        .set_type       = ipic_set_irq_type,
 };
 
-- 
1.5.3.2.104.g41ef

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to