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

Reply via email to