[PATCH 09/16] tty: serial: 8250_dma: Add a TX trigger workaround for AM33xx
From: heikki.krogerus@linux.intel.com (Heikki Krogerus)
Date: 2014-09-19 10:22:40
Also in:
linux-omap, linux-serial, lkml
On Wed, Sep 17, 2014 at 06:34:45PM +0200, Sebastian Andrzej Siewior wrote:
On 09/11/2014 01:42 PM, Sebastian Andrzej Siewior wrote:quoted
quoted
We should add hooks like tx_dma and rx_dma to struct uart_8250_dma so that the probe drivers can replace serial8250_tx_dma and seria8250_rx_dma, like I think Alan already suggested.Okay. Wasn't aware that Alan already suggested that. I also need a watchdog timer for TX since it seems that on omap3 the DMA engine suddenly forgets to continue with DMA? If this is really what we want, I would need to refactor a few things?quoted
Let's keep serial8250_tx_dma/rx_dma as the default, and not add any quirks to them. Only if there is a very common case should it be handled in those. The case of RX req needing to be sent before data in FIFO maybe one of those, but I'm no sure.keep in mind that both (RX & TX bugs/hacks) need also a bit of handling in the 8250-core so it works together (like the tx_err member so we fall back to manual xmit)Done. I've kept the RX workarounds in the 8250_dma and moved the TX part into the omap driver. I needed to add the 8250_core pieces of patch #10 [0]. Now If you say, couldn't this done in an other way then I could move the RX workarounds pieces to the omap driver as well as the interrupt routine. Any preferences? [0] [PATCH 10/16] tty: serial: 8250_dma: optimize the xmit path due to UART_BUG_DMA_TX
Couldn't you just replace the handle_irq with a custom irq routine in the omap driver like you did with set_termios? Where you would do those tricks and/or call serial8250_handle_irq()? The 8250_core changes in that patch #10 only modify serial8250_handle_irg right? Cheers, -- heikki