Hello,

I am in working on the port of adeos ipipe on my board which is basically an
IMX1 ARM 920 architecture with 2.6.20 linux kernel.  This board is quite simple
and first results seems good.

I had a look to the document "Adapting ARM I-Pipe patch to a new board"

But i encountered a problem with the __ipipe_mach_demux_irq function.
multiplexed ITs are GPIOA B C and D which generate respectively IRQs 11, 12 13
and 62.
The only GPIO i used currently is the interrupt from DM9000 module. First time i
put interface up it loops in the handler since it does not seem to be acked
correctly ...
I use:

kernel 2.6.20-12
adeos patch adeos-ipipe-2.6.20-arm-1.7-02.patch

Here is the code i added:

#ifdef CONFIG_IPIPE
void __ipipe_mach_demux_irq(unsigned irq, struct pt_regs *regs)
{
        struct irq_desc *desc_unused = irq_desc + irq;
        unsigned irq_unused = irq;
        unsigned int i, mask;

        /* GPPIOA, GPIOB, GPIOC, GPIOD are INT 11,12,13 and 62 */
        i=((irq&7)-3);

        /* Get all multiplexed ITs from given GPIO */
        mask=ISR(i);
        irq=(i<<5)+IMX_IRQS;
        do {
        if (mask & 1 )
                {__ipipe_handle_irq(irq, regs);
                 // Ack multiplexed IT from given GPIO
                 ISR(i)=1<<(irq&0x1f);
                 }
           mask >>=1;
           irq++;
           } while (mask);

        desc_unused->chip->unmask(irq_unused);
}
#endif /* CONFIG_IPIPE */



I then changed the type of interrupt with set_irq_type from TRIGGER_LOW to
FALLING and everything's ok now, interface working good now.

My question is what about TRIGGER_LOW interrupt, i though __ipipe_handle_irq
looked for all registered domains and called the hanbler and ack functions for
these domains.
So since the DM9000 module was working good when i used the kernel whitout
CONFIG_IPIPE, I though the linux domain acked the interrupt correctly with
TRIGGER_LOW...
At most it should be acked by writing to ISR.

Any help will be greatly appreciated...

Best regards,


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

Reply via email to