[PATCH] serial: Use real irq on UART0 (IRQ = 0) on PPC4xx systems
Sergei Shtylyov
sshtylyov at ru.mvista.com
Tue Nov 21 00:28:03 EST 2006
Hello.
Stefan Roese wrote:
> This patch fixes a problem seen on multiple 4xx platforms, where
> the UART0 interrupt number is 0. The macro "is_real_interrupt" lead
> on those systems to not use an real interrupt but the timer based
> implementation.
> This problem was detected and fixed by
> Charles Gales <cgales at amcc.com> and John Baxter <jbaxter at amcc.com>
> from AMCC.
> Signed-off-by: Stefan Roese <sr at denx.de>
> ---
> commit f83094acd3258575c9a5cdb1d65e241c16eff03a
> tree 72582c5eeb2a9c8ea57287616d51e42fff8ed641
> parent f56f68c4e1977f0e884a304af4c617bed4909417
> author Stefan Roese <sr at denx.de> Sat, 18 Nov 2006 10:28:50 +0100
> committer Stefan Roese <sr at denx.de> Sat, 18 Nov 2006 10:28:50 +0100
> drivers/serial/8250.c | 22 ++++++++++++++--------
> 1 files changed, 14 insertions(+), 8 deletions(-)
> diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
> index e34bd03..a51679e 100644
> --- a/drivers/serial/8250.c
> +++ b/drivers/serial/8250.c
> @@ -76,8 +76,14 @@ static unsigned int nr_uarts = CONFIG_SE
> * We default to IRQ0 for the "no irq" hack. Some
> * machine types want others as well - they're free
> * to redefine this in their header file.
> + * NOTE: Some PPC4xx use IRQ0 for a UART Interrupt, so
> + * we will assume that the IRQ is always real
> */
> +#ifdef CONFIG_4xx
> +#define is_real_interrupt(irq) (1)
> +#else
> #define is_real_interrupt(irq) ((irq) != 0)
> +#endif
This should have been done in <asm/serial.h> instead, like this:
#undef is_real_interrupt(irq)
#define is_real_interrupt(irq) 1
Not too smart as well,but at least this wasy you won't be pulluting the
generic code...
WBR, Sergei
More information about the Linuxppc-embedded
mailing list