[lkml]   [2009]   [May]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectMPC8343 - serial8250: too much work
Im facing some problems with serial, linux-2.6.23, getting flooded
with this message in logs:

serial8250: too much work for irq16

Something I notice, in my .dts I have the following lines:

serial0: serial@4500, interrupts = <9 0x8>
serial1: serial@4600, interrupts = <10 0x8>
spi: spi@7000, interrupts = <16 0x8>

But when kernel starts:

Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A

Why IRQ 16? Shouldn't it be IRQ 9?

I traced functions calls in 8250.c driver:

serial8250_interrup() -> serial8250_handle_port() -> transmit_chars()

"too much work" is for transmiting, but there's nothing to transmit.

In my MPC8343 board I have only serial0 connected to a MAX3232, serial1
is floating.

I found this comments in linux/drivers/serial/8250.h, and tried to use
same defines that they used, but no success:

* Digital did something really horribly wrong with the OUT1 and OUT2
* lines on at least some ALPHA's. The failure mode is that if either
* is cleared, the machine locks up with endless interrupts.

* WindRiver did something similarly broken on their SBC8560 board. The
* UART tristates its IRQ output while OUT2 is clear, but they pulled
* the interrupt line _up_ instead of down, so if we register the IRQ
* while the UART is in that state, we die in an IRQ storm.

I also tried removing serial1 and spi from .dts, but didn't work.

Any sugestions?



 \ /
  Last update: 2009-05-29 22:09    [W:0.057 / U:1.560 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site