* serial/8250: Platform override of is_real_interrupt
@ 2006-03-29 12:23 Peter Korsgaard
2006-03-29 14:12 ` Alan Cox
0 siblings, 1 reply; 3+ messages in thread
From: Peter Korsgaard @ 2006-03-29 12:23 UTC (permalink / raw)
To: linux-kernel
Hi,
I'm using the serial/8250 driver on a ML300 based PPC board which uses
interrupt vector 0 for the UART.
is_real_interrupt() unfortunately interpretes IRQ0 as meaning no
interrupt, so performance is kinda crap.
How to fix? 8250.c is setup so that asm/serial.h is included after the
definition of is_real_interrupt and the idea is that you can redefine
it in your platform header if needed. Now, this doesn't work on PPC as
the platform headers are included in asm/io.h AND asm/serial.h so they
won't be reparsed the second time.
I see 3 options:
1) Put an #ifndef is_real_interrupt around the is_real_interrupt
definition so the platform header can define it's own version
independent of inclusion order.
2) A lot of platforms (but not all) define NO_IRQ to something
sensible (-1). Define is_real_interrupt in terms of NO_IRQ instead
of testing against 0. For the remaining platforms we could locally
define NO_IRQ to 0 to keep the old behavior.
3) Put the redefine directly in asm/serial.h surrounded by an #ifdef
CONFIG_XILINX_ML300 (ugly)
Which solution is preferable?
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-03-30 6:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-29 12:23 serial/8250: Platform override of is_real_interrupt Peter Korsgaard
2006-03-29 14:12 ` Alan Cox
2006-03-30 6:42 ` Peter Korsgaard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.