Re: Uartlite - ulite_transmit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Peter Korsgaard wrote:
"Michal" == Michal Simek <monstr@xxxxxxxxx> writes:

 Michal> Hi Peter, [cc: Grant]
 Michal> I have found one thing which I would like to check with you.
 Michal> It is about mdm console which is uartlite compatible but it is slow.
 Michal> The problem which I think it is there is in ulite_transmit function if
 Michal> TXFULL is reported then it was returned 0. ulite_transmit is called from
 Michal> do-while loop in ulite_isr (shown below).

 Michal>     do {
 Michal>         int stat = readb(port->membase + ULITE_STATUS);
 Michal>         busy  = ulite_receive(port, stat);
 Michal>         busy |= ulite_transmit(port, stat);
 Michal>     } while (busy);

 Michal> If tx is full then loop ends but there could be a lot of characters
 Michal> which need to be send that's why will be good to wait a little bit. I
 Michal> think it could be done by returning 1 in that case.

 Michal> What do you think? Patch is below.

That would make us spin in the interrupt for potentially quite a while,
E.G. until all data is transferred to the TX fifo.

yep. That's truth but shouldn't be a problem for standard systems. Maybe worth to count how many times is tx fifo full on standard systems.


What kind of problem are you trying to fix in the first place? You
should get an interrupt when the TX fifo empties, which fill completely
fill up the fifo again and so on - That should work just fine even with
a low baud rate.

I am trying to solve the problem for xilinx mdm IP (compatible with uartlite) where there are some missing characters on serial console.

Maybe there is something wrong in different place but there are definitely missing characters.

Just for the record: I also have to extend for loop in ulite_console_wait_tx to get all chars for console.

Michal



--
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux