X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Farm%2Fkernel%2Fecard.c;h=67ac4ec53922d4d3ed329ad10121545df0adf2d2;hb=44c40f29869a02dd430beb7fed0b6ca7d8ef5e54;hp=3f6b4b529aa9fecb18204a58bd9514c32eb38148;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c index 3f6b4b529..67ac4ec53 100644 --- a/arch/arm/kernel/ecard.c +++ b/arch/arm/kernel/ecard.c @@ -503,33 +503,27 @@ void ecard_disablefiq(unsigned int fiqnr) } } -static void ecard_dump_irq_state(void) +static void +ecard_dump_irq_state(ecard_t *ec) { - ecard_t *ec; - - printk("Expansion card IRQ state:\n"); - - for (ec = cards; ec; ec = ec->next) { - if (ec->slot_no == 8) - continue; - - printk(" %d: %sclaimed, ", - ec->slot_no, ec->claimed ? "" : "not "); - - if (ec->ops && ec->ops->irqpending && - ec->ops != &ecard_default_ops) - printk("irq %spending\n", - ec->ops->irqpending(ec) ? "" : "not "); - else - printk("irqaddr %p, mask = %02X, status = %02X\n", - ec->irqaddr, ec->irqmask, *ec->irqaddr); - } + printk(" %d: %sclaimed, ", + ec->slot_no, + ec->claimed ? "" : "not "); + + if (ec->ops && ec->ops->irqpending && + ec->ops != &ecard_default_ops) + printk("irq %spending\n", + ec->ops->irqpending(ec) ? "" : "not "); + else + printk("irqaddr %p, mask = %02X, status = %02X\n", + ec->irqaddr, ec->irqmask, *ec->irqaddr); } static void ecard_check_lockup(struct irqdesc *desc) { static unsigned long last; static int lockup; + ecard_t *ec; /* * If the timer interrupt has not run since the last million @@ -547,7 +541,11 @@ static void ecard_check_lockup(struct irqdesc *desc) "disabling all expansion card interrupts\n"); desc->chip->mask(IRQ_EXPANSIONCARD); - ecard_dump_irq_state(); + + printk("Expansion card IRQ state:\n"); + + for (ec = cards; ec; ec = ec->next) + ecard_dump_irq_state(ec); } } else lockup = 0; @@ -559,7 +557,6 @@ static void ecard_check_lockup(struct irqdesc *desc) if (!last || time_after(jiffies, last + 5*HZ)) { last = jiffies; printk(KERN_WARNING "Unrecognised interrupt from backplane\n"); - ecard_dump_irq_state(); } }