2011/4/30 Gilles Chanteperdrix <[email protected]> > > Please try the following patch: > > diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c > index c48d99a..8a29d9d 100644 > --- a/arch/arm/plat-s3c24xx/irq.c > +++ b/arch/arm/plat-s3c24xx/irq.c > @@ -627,7 +627,7 @@ void __init s3c24xx_init_irq(void) > default: > //irqdbf("registering irq %d (s3c irq)\n", irqno); > set_irq_chip(irqno, &s3c_irq_chip); > - set_irq_handler(irqno, handle_edge_irq); > + set_irq_handler(irqno, handle_level_irq); > set_irq_flags(irqno, IRQF_VALID); > } > } > @@ -647,14 +647,14 @@ void __init s3c24xx_init_irq(void) > for (irqno = IRQ_EINT0; irqno <= IRQ_EINT3; irqno++) { > irqdbf("registering irq %d (ext int)\n", irqno); > set_irq_chip(irqno, &s3c_irq_eint0t4); > - set_irq_handler(irqno, handle_edge_irq); > + set_irq_handler(irqno, handle_level_irq); > set_irq_flags(irqno, IRQF_VALID); > } > > for (irqno = IRQ_EINT4; irqno <= IRQ_EINT23; irqno++) { > irqdbf("registering irq %d (extended s3c irq)\n", irqno); > set_irq_chip(irqno, &s3c_irqext_chip); > - set_irq_handler(irqno, handle_edge_irq); > + set_irq_handler(irqno, handle_level_irq); > set_irq_flags(irqno, IRQF_VALID); > } > > @@ -686,7 +686,7 @@ void __init s3c24xx_init_irq(void) > for (irqno = IRQ_TC; irqno <= IRQ_ADC; irqno++) { > irqdbf("registering irq %d (s3c adc irq)\n", irqno); > set_irq_chip(irqno, &s3c_irq_adc); > - set_irq_handler(irqno, handle_edge_irq); > + set_irq_handler(irqno, handle_level_irq); > set_irq_flags(irqno, IRQF_VALID); > } > > diff --git a/arch/arm/plat-samsung/irq-uart.c > b/arch/arm/plat-samsung/irq-uart.c > index 4f8c102..1da5aff 100644 > --- a/arch/arm/plat-samsung/irq-uart.c > +++ b/arch/arm/plat-samsung/irq-uart.c > @@ -88,13 +88,13 @@ static void s3c_irq_demux_uart(unsigned int irq, struct > irq_desc *desc) > int base = uirq->base_irq; > > if (pend & (1 << 0)) > - generic_handle_irq(base); > + ipipe_handle_chained_irq(base); > if (pend & (1 << 1)) > - generic_handle_irq(base + 1); > + ipipe_handle_chained_irq(base + 1); > if (pend & (1 << 2)) > - generic_handle_irq(base + 2); > + ipipe_handle_chained_irq(base + 2); > if (pend & (1 << 3)) > - generic_handle_irq(base + 3); > + ipipe_handle_chained_irq(base + 3); > } > > static struct irq_chip s3c_irq_uart = { > > > It works!! Thank you!
-- Alex
_______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
