linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 8250: Platform override of is_real_interrupt
@ 2006-03-28 13:04 Peter Korsgaard
  0 siblings, 0 replies; only message in thread
From: Peter Korsgaard @ 2006-03-28 13:04 UTC (permalink / raw)
  To: linux-serial

Hi,

I'm using the 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 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] only message in thread

only message in thread, other threads:[~2006-03-28 13:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-28 13:04 8250: Platform override of is_real_interrupt Peter Korsgaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).