[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] [patch] valid data left in rx fifo: no moreinterrupts
Yasushi SHOJI wrote:
> Hi,
>
> In the course of reading interrupt handler in microblaze arch, I found
> a bug in xmbserial.c
cool - It would be nice if this fixes the cut-n-paste freeze that Jozsef
mentions below...
> If the flip buffer is full, currently, we break out from the while
> loop and exit from receive_chars() and xmbrs_interrupt(). The OPB
> Interrupt controller will eventually acked.
Yes.
> If there is still valid data in RX fifo, however, interrupt line from
> UART lite to interrupt controller is left asserted.
Yes.
> What that means is that, the Interrupt controller won't get
> interrupted from UART Lite any more, even if UART lite get new data.
hmmm... I would have thought exactly the opposite - as soon as the
generic IRQ handling code acks and unmasks the UARTLite IRQ, the
still-asserted interrupt would be registered once again, and we'd
actually end up in a nasty interrupt loop with no user process getting
any time to actually drain the flip buffer...
So, perhaps the fix is correct, but for exactly the opposite reason that
you suggest ;-)
Have you tried copy and pasting a large chunk of text into a terminal
window after your fix? That usually is a good way to hang the serial
driver...
Thanks,
John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/