Date:2010-05-28 15:33:49 (13 years 10 months ago)
Author:Lars C.
Commit:3036ab5b8d713797344c1d6e82d08345f636f80f
Message:jz4740: intc: Do not ack pending irqs

Pending IRQs are auto cleared when their source is cleared.
Files: arch/mips/jz4740/irq.c (3 diffs)

Change Details

arch/mips/jz4740/irq.c
5353    writel(IRQ_BIT(irq), jz_intc_base + JZ_REG_INTC_SET_MASK);
5454}
5555
56static void intc_irq_ack(unsigned int irq)
57{
58    writel(IRQ_BIT(irq), jz_intc_base + JZ_REG_INTC_PENDING);
59}
60
6156static int intc_irq_set_wake(unsigned int irq, unsigned int on)
6257{
6358    if (on)
...... 
7166static struct irq_chip intc_irq_type = {
7267    .name = "INTC",
7368    .mask = intc_irq_mask,
69    .mask_ack = intc_irq_mask,
7470    .unmask = intc_irq_unmask,
75    .ack = intc_irq_ack,
7671    .set_wake = intc_irq_set_wake,
7772};
7873
...... 
8277    int intc_irq;
8378
8479    irq_reg = readl(jz_intc_base + JZ_REG_INTC_PENDING);
80
8581    intc_irq = ffs(irq_reg);
8682    if (intc_irq)
8783        generic_handle_irq(intc_irq - 1 + JZ4740_IRQ_BASE);

Archive Download the corresponding diff file



interactive