public inbox for linux-serial@vger.kernel.org
 help / color / mirror / Atom feed
* Where is TX buffer in driver based on struct uart_port
@ 2013-08-07 12:01 Craig McQueen
  2013-08-08  4:14 ` Craig McQueen
  0 siblings, 1 reply; 4+ messages in thread
From: Craig McQueen @ 2013-08-07 12:01 UTC (permalink / raw)
  To: linux-serial@vger.kernel.org

I'm running a Freescale ARM i.MX28, with a UART driver "mxs-auart.c" based on struct uart_port in Linux kernel 2.6.35.

I'm using it in a radio communications application that operates at 2400 bps.

I'm finding that when transmitting data, the TX data is being buffered somewhere in the drivers, and the buffer size appears to be something like 4000 bytes. At 2400 bps, that works out to be something like 17 seconds of buffering, which causes too much end-to-end delay in the pipeline when the buffer is full.

So I'd like to find where this 4000 byte buffer is, with the goal of reducing its size to reduce the maximum end-to-end delay. But looking through the code for the driver, it's not obvious to me so far where this buffering might be happening. Can anyone point me in the general direction?

Ultimately I want to do PPP through this serial device. Would this 4000 byte buffer also apply in a PPP line discipline scenario?

(I've previously experimented with modifications to another serial driver "tty0tty" based on struct tty_driver, and I could control TX buffering in the struct tty_operations -> write and write_room functions. But this driver using struct uart_port doesn't seem such easy to understand write operations.)

Thanks,
Craig McQueen


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-08-12 12:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-07 12:01 Where is TX buffer in driver based on struct uart_port Craig McQueen
2013-08-08  4:14 ` Craig McQueen
2013-08-12  7:55   ` Craig McQueen
2013-08-12 12:22     ` Peter Hurley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox