[PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx
From: Michal Simek <hidden>
Date: 2015-11-23 07:06:08
Also in:
linux-serial, lkml
Hi Peter, On 20.11.2015 18:16, Peter Hurley wrote:
quoted hunk ↗ jump to hunk
On 11/20/2015 11:58 AM, S?ren Brinkmann wrote:quoted
On Fri, 2015-11-20 at 11:30AM -0500, Peter Hurley wrote:quoted
On 11/20/2015 10:28 AM, S?ren Brinkmann wrote:quoted
On Fri, 2015-11-20 at 07:13AM -0500, Peter Hurley wrote:quoted
On 11/19/2015 03:02 PM, Soren Brinkmann wrote:quoted
start_tx must start transmitting characters. Regardless of the state of the circular buffer, always enable the transmitter hardware.Why? Does cdns_uart_stop_tx() actually stop the transmitter so that data remains in the transmitter?Well, I saw my system freezing and the cause seemed to be that the UART receiver and/or transmitters were disabled while the system was trying to print. Hence, I started questioning all locations touching the transmitter/receiver enable. I read the docs in https://www.kernel.org/doc/Documentation/serial/driver, which simply says "Start transmitting characters." for start_tx(). Hence, I thought, this function is probably supposed to just do that and start the transmitter. I'll test whether this patch can be dropped.I don't think that patch would fix any freeze problems, but restarting the transmitter even if the circ buffer is empty may be necessary to push out remaining data when the port is restarted after being stopped. IOW, something like if (uart_tx_stopped(port)) return; .... if (uart_circ_empty(&port->state->xmit) return;Thanks! I'll change the patch accordingly.quoted
Below is a (work-in-progress) serial driver validation test for flow control handling (it may need some tuning for slow line speeds). Usual caveats apply. Takes ~40secs @ 115200.I'll try to get that running on my system.The test below should pass too, but I know it won't because this xilinx driver isn't handling x_char at all. Aside: does this h/w have rts driver/cts receiver?--- >% --- --- /dev/null 2015-11-20 07:19:13.265468435 -0500 +++ xchar.c 2015-11-20 11:55:26.210233102 -0500@@ -0,0 +1,354 @@ +/* + * x_char unit test for tty drivers
All these tests looks very interesting. Do you have any any work-in-progress repo with other tests? It will be good to run all of them to validate our drivers. Thanks, Michal