On Thu, Mar 13, 2008 at 6:51 PM, Gilles Chanteperdrix
<[EMAIL PROTECTED]> wrote:

>  Ok. The code which does this is __ipipe_mach_demux_irq in
>  arch/arm/mach-at91/gpio.c. Could you check if at least it triggers ?

I put the following code into __ipipe_mach_demux_irq() in mach-at91/gpio.c:

[..]
        void __iomem    *pio;
        u32             isr;

printk (KERN_INFO "__ipipe_mach_demux_irq: irq=%d\n", irq);
        pio = get_irq_chip_data(irq);
printk (KERN_INFO "__ipipe_mach_demux_irq: pio=%x\n", pio);
[..]
        for (;;) {
                isr = __raw_readl(pio + PIO_ISR) & __raw_readl(pio + PIO_IMR);
printk (KERN_INFO "__ipipe_mach_demux_irq: isr=%x\n", isr);
                if (!isr) {
printk (KERN_INFO "__ipipe_mach_demux_irq: !isr\n");
                        break;
                }
                pin = (unsigned) get_irq_data(irq);
printk (KERN_INFO "__ipipe_mach_demux_irq: pin: %d\n", pin);
[...]

And all I get is just once (first time I send a packet):
__ipipe_mach_demux_irq: irq=3
__ipipe_mach_demux_irq: pio=c02203d8
__ipipe_mach_demux_irq: isr=0
__ipipe_mach_demux_irq: !isr

Maybe pio is wrongly calculated in get_irq_chip_data()?

_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to