From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> To: linux-serial@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tony@atomide.com, balbi@ti.com, gregkh@linuxfoundation.org, Sebastian Andrzej Siewior <bigeasy@linutronix.de> Subject: [PATCH 16/16] tty: serial: 8250: omap: add dma support Date: Wed, 10 Sep 2014 21:30:11 +0200 [thread overview] Message-ID: <1410377411-26656-17-git-send-email-bigeasy@linutronix.de> (raw) In-Reply-To: <1410377411-26656-1-git-send-email-bigeasy@linutronix.de> This patch adds the required pieces to 8250-OMAP UART driver for DMA support. The TX burst size is set to 1 so we can send an arbitrary amount of bytes. The RX burst is currently set to 48 which means we receive an DMA interrupt every 48 bytes and have to reprogram everything. Less bytes in the RX-FIFO mean that no DMA transfer will happen and the UART will send a RX-timeout _or_ RDI event at which point the FIFO will be manually purged. There is a workaround for TX-DMA on AM33xx where we put the first byte into the FIFO to kick start the DMA process. Haven't seen this problem on OMAP36xx (beagle board xm) or DRA7xx. On AM375x there is "Usage Note 2.7: UART: Cannot Acknowledge Idle Requests in Smartidle Mode When Configured for DMA Operations" in the errata document. This problem persists even after disabling DMA in the UART and will be addressed in the HWMOD. Reviewed-by: Tony Lindgren <tony@atomide.com> Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- drivers/tty/serial/8250/8250_omap.c | 49 +++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c index 2a187b00ed0a..5312c9e7ab15 100644 --- a/drivers/tty/serial/8250/8250_omap.c +++ b/drivers/tty/serial/8250/8250_omap.c @@ -366,6 +366,10 @@ static void omap_8250_set_termios(struct uart_port *port, priv->scr = OMAP_UART_SCR_RX_TRIG_GRANU1_MASK | OMAP_UART_SCR_TX_EMPTY | OMAP_UART_SCR_TX_TRIG_GRANU1_MASK; + if (up->dma) + priv->scr |= OMAP_UART_SCR_DMAMODE_1 | + OMAP_UART_SCR_DMAMODE_CTL; + priv->xon = termios->c_cc[VSTART]; priv->xoff = termios->c_cc[VSTOP]; @@ -548,6 +552,11 @@ static int omap_8250_startup(struct uart_port *port) priv->wer |= OMAP_UART_TX_WAKEUP_EN; serial_out(up, UART_OMAP_WER, priv->wer); + if (up->dma) { + serial8250_rx_dma(up, 0); + priv->dma_active = true; + } + pm_runtime_mark_last_busy(port->dev); pm_runtime_put_autosuspend(port->dev); return 0; @@ -566,6 +575,10 @@ static void omap_8250_shutdown(struct uart_port *port) struct omap8250_priv *priv = port->private_data; flush_work(&priv->qos_work); + if (up->dma) { + serial8250_rx_dma(up, UART_IIR_RX_TIMEOUT); + priv->dma_active = false; + } pm_runtime_get_sync(port->dev); @@ -613,6 +626,13 @@ static void omap_8250_unthrottle(struct uart_port *port) pm_runtime_put_autosuspend(port->dev); } +#ifdef CONFIG_SERIAL_8250_DMA +static bool the_no_dma_filter_fn(struct dma_chan *chan, void *param) +{ + return false; +} +#endif + static int omap8250_probe(struct platform_device *pdev) { struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -712,6 +732,30 @@ static int omap8250_probe(struct platform_device *pdev) pm_runtime_get_sync(&pdev->dev); omap_serial_fill_features_erratas(&up, priv); +#ifdef CONFIG_SERIAL_8250_DMA + if (pdev->dev.of_node) { + /* + * Oh DMA support. If there are no DMA properties in the DT then + * we will fall back to a generic DMA channel which does not + * really work here. To ensure that we do not get a generic DMA + * channel assigned, we have the the_no_dma_filter_fn() here. + * To avoid "failed to request DMA" messages we check for DMA + * properties in DT. + */ + ret = of_property_count_strings(pdev->dev.of_node, "dma-names"); + if (ret == 2) { + up.dma = &priv->omap8250_dma; + priv->omap8250_dma.fn = the_no_dma_filter_fn; + priv->omap8250_dma.rx_size = RX_TRIGGER; + priv->omap8250_dma.rxconf.src_maxburst = RX_TRIGGER; + priv->omap8250_dma.txconf.dst_maxburst = TX_TRIGGER; + + if (of_machine_is_compatible("ti,am33xx")) + up.bugs |= UART_BUG_DMA_TX; + up.bugs |= UART_BUG_DMA_RX; + } + } +#endif ret = serial8250_register_8250_port(&up); if (ret < 0) { dev_err(&pdev->dev, "unable to register 8250 port\n"); @@ -848,6 +892,8 @@ static int omap8250_runtime_suspend(struct device *dev) } omap8250_enable_wakeup(priv, true); + if (priv->dma_active) + serial8250_rx_dma(up, UART_IIR_RX_TIMEOUT); priv->latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE; schedule_work(&priv->qos_work); @@ -872,6 +918,9 @@ static int omap8250_runtime_resume(struct device *dev) if (loss_cntx) omap8250_restore_regs(up); + if (priv->dma_active) + serial8250_rx_dma(up, 0); + priv->latency = priv->calc_latency; schedule_work(&priv->qos_work); return 0; -- 2.1.0
WARNING: multiple messages have this Message-ID (diff)
From: bigeasy@linutronix.de (Sebastian Andrzej Siewior) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 16/16] tty: serial: 8250: omap: add dma support Date: Wed, 10 Sep 2014 21:30:11 +0200 [thread overview] Message-ID: <1410377411-26656-17-git-send-email-bigeasy@linutronix.de> (raw) In-Reply-To: <1410377411-26656-1-git-send-email-bigeasy@linutronix.de> This patch adds the required pieces to 8250-OMAP UART driver for DMA support. The TX burst size is set to 1 so we can send an arbitrary amount of bytes. The RX burst is currently set to 48 which means we receive an DMA interrupt every 48 bytes and have to reprogram everything. Less bytes in the RX-FIFO mean that no DMA transfer will happen and the UART will send a RX-timeout _or_ RDI event at which point the FIFO will be manually purged. There is a workaround for TX-DMA on AM33xx where we put the first byte into the FIFO to kick start the DMA process. Haven't seen this problem on OMAP36xx (beagle board xm) or DRA7xx. On AM375x there is "Usage Note 2.7: UART: Cannot Acknowledge Idle Requests in Smartidle Mode When Configured for DMA Operations" in the errata document. This problem persists even after disabling DMA in the UART and will be addressed in the HWMOD. Reviewed-by: Tony Lindgren <tony@atomide.com> Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- drivers/tty/serial/8250/8250_omap.c | 49 +++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c index 2a187b00ed0a..5312c9e7ab15 100644 --- a/drivers/tty/serial/8250/8250_omap.c +++ b/drivers/tty/serial/8250/8250_omap.c @@ -366,6 +366,10 @@ static void omap_8250_set_termios(struct uart_port *port, priv->scr = OMAP_UART_SCR_RX_TRIG_GRANU1_MASK | OMAP_UART_SCR_TX_EMPTY | OMAP_UART_SCR_TX_TRIG_GRANU1_MASK; + if (up->dma) + priv->scr |= OMAP_UART_SCR_DMAMODE_1 | + OMAP_UART_SCR_DMAMODE_CTL; + priv->xon = termios->c_cc[VSTART]; priv->xoff = termios->c_cc[VSTOP]; @@ -548,6 +552,11 @@ static int omap_8250_startup(struct uart_port *port) priv->wer |= OMAP_UART_TX_WAKEUP_EN; serial_out(up, UART_OMAP_WER, priv->wer); + if (up->dma) { + serial8250_rx_dma(up, 0); + priv->dma_active = true; + } + pm_runtime_mark_last_busy(port->dev); pm_runtime_put_autosuspend(port->dev); return 0; @@ -566,6 +575,10 @@ static void omap_8250_shutdown(struct uart_port *port) struct omap8250_priv *priv = port->private_data; flush_work(&priv->qos_work); + if (up->dma) { + serial8250_rx_dma(up, UART_IIR_RX_TIMEOUT); + priv->dma_active = false; + } pm_runtime_get_sync(port->dev); @@ -613,6 +626,13 @@ static void omap_8250_unthrottle(struct uart_port *port) pm_runtime_put_autosuspend(port->dev); } +#ifdef CONFIG_SERIAL_8250_DMA +static bool the_no_dma_filter_fn(struct dma_chan *chan, void *param) +{ + return false; +} +#endif + static int omap8250_probe(struct platform_device *pdev) { struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -712,6 +732,30 @@ static int omap8250_probe(struct platform_device *pdev) pm_runtime_get_sync(&pdev->dev); omap_serial_fill_features_erratas(&up, priv); +#ifdef CONFIG_SERIAL_8250_DMA + if (pdev->dev.of_node) { + /* + * Oh DMA support. If there are no DMA properties in the DT then + * we will fall back to a generic DMA channel which does not + * really work here. To ensure that we do not get a generic DMA + * channel assigned, we have the the_no_dma_filter_fn() here. + * To avoid "failed to request DMA" messages we check for DMA + * properties in DT. + */ + ret = of_property_count_strings(pdev->dev.of_node, "dma-names"); + if (ret == 2) { + up.dma = &priv->omap8250_dma; + priv->omap8250_dma.fn = the_no_dma_filter_fn; + priv->omap8250_dma.rx_size = RX_TRIGGER; + priv->omap8250_dma.rxconf.src_maxburst = RX_TRIGGER; + priv->omap8250_dma.txconf.dst_maxburst = TX_TRIGGER; + + if (of_machine_is_compatible("ti,am33xx")) + up.bugs |= UART_BUG_DMA_TX; + up.bugs |= UART_BUG_DMA_RX; + } + } +#endif ret = serial8250_register_8250_port(&up); if (ret < 0) { dev_err(&pdev->dev, "unable to register 8250 port\n"); @@ -848,6 +892,8 @@ static int omap8250_runtime_suspend(struct device *dev) } omap8250_enable_wakeup(priv, true); + if (priv->dma_active) + serial8250_rx_dma(up, UART_IIR_RX_TIMEOUT); priv->latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE; schedule_work(&priv->qos_work); @@ -872,6 +918,9 @@ static int omap8250_runtime_resume(struct device *dev) if (loss_cntx) omap8250_restore_regs(up); + if (priv->dma_active) + serial8250_rx_dma(up, 0); + priv->latency = priv->calc_latency; schedule_work(&priv->qos_work); return 0; -- 2.1.0
next prev parent reply other threads:[~2014-09-10 19:55 UTC|newest] Thread overview: 236+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-09-10 19:29 [PATCH 00/16 v9] omap 8250 based uart + DMA Sebastian Andrzej Siewior 2014-09-10 19:29 ` Sebastian Andrzej Siewior 2014-09-10 19:29 ` Sebastian Andrzej Siewior 2014-09-10 19:29 ` [PATCH 01/16] tty: serial: 8250_core: allow to set ->throttle / ->unthrottle callbacks Sebastian Andrzej Siewior 2014-09-10 19:29 ` Sebastian Andrzej Siewior 2014-09-10 19:29 ` [PATCH 02/16] tty: serial: 8250_core: add run time pm Sebastian Andrzej Siewior 2014-09-10 19:29 ` Sebastian Andrzej Siewior 2014-09-10 19:29 ` Sebastian Andrzej Siewior 2014-09-29 9:46 ` Frans Klaver 2014-09-29 9:46 ` Frans Klaver 2014-09-29 9:46 ` Frans Klaver 2014-09-29 13:39 ` Sebastian Andrzej Siewior 2014-09-29 13:39 ` Sebastian Andrzej Siewior 2014-09-10 19:29 ` [PATCH 03/16] tty: serial: 8250_core: read only RX if there is something in the FIFO Sebastian Andrzej Siewior 2014-09-10 19:29 ` Sebastian Andrzej Siewior 2015-02-09 13:34 ` Nicolas Schichan 2015-02-09 13:34 ` Nicolas Schichan 2015-02-09 23:34 ` Peter Hurley 2015-02-09 23:34 ` Peter Hurley 2015-02-10 9:32 ` Sebastian Andrzej Siewior 2015-02-10 9:32 ` Sebastian Andrzej Siewior 2015-02-10 12:04 ` Nicolas Schichan 2015-02-10 12:04 ` Nicolas Schichan 2015-02-10 17:46 ` Peter Hurley 2015-02-10 17:46 ` Peter Hurley 2015-02-11 20:01 ` Peter Hurley 2015-02-11 20:01 ` Peter Hurley 2015-02-11 20:03 ` Tony Lindgren 2015-02-11 20:03 ` Tony Lindgren 2015-02-11 20:03 ` Tony Lindgren 2015-02-11 20:42 ` Peter Hurley 2015-02-11 20:42 ` Peter Hurley 2015-02-12 8:45 ` Sebastian Andrzej Siewior 2015-02-12 8:45 ` Sebastian Andrzej Siewior 2015-02-12 9:40 ` Russell King - ARM Linux 2015-02-12 9:40 ` Russell King - ARM Linux 2015-02-12 16:32 ` Peter Hurley 2015-02-12 16:32 ` Peter Hurley 2015-02-12 19:23 ` Sebastian Andrzej Siewior 2015-02-12 19:23 ` Sebastian Andrzej Siewior 2015-02-12 19:55 ` Peter Hurley 2015-02-12 19:55 ` Peter Hurley 2015-02-12 20:34 ` Sebastian Andrzej Siewior 2015-02-12 20:34 ` Sebastian Andrzej Siewior 2015-02-13 18:51 ` Sebastian Andrzej Siewior 2015-02-13 18:51 ` Sebastian Andrzej Siewior 2015-02-13 23:15 ` Russell King - ARM Linux 2015-02-13 23:15 ` Russell King - ARM Linux 2015-02-15 17:32 ` [PATCH] serial: 8250: Revert "tty: serial: 8250_core: read only RX if there is something in the FIFO" Sebastian Andrzej Siewior 2015-02-15 17:32 ` Sebastian Andrzej Siewior 2015-05-12 20:25 ` Tony Lindgren 2015-05-12 20:25 ` Tony Lindgren 2014-09-10 19:29 ` [PATCH 04/16] tty: serial: 8250_core: use the ->line argument as a hint in serial8250_find_match_or_unused() Sebastian Andrzej Siewior 2014-09-10 19:29 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` [PATCH 05/16] tty: serial: 8250_core: remove UART_IER_RDI in serial8250_stop_rx() Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-11 11:19 ` Heikki Krogerus 2014-09-11 11:19 ` Heikki Krogerus 2014-09-10 19:30 ` [PATCH 06/16] tty: serial: Add 8250-core based omap driver Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-11 11:57 ` Peter Hurley 2014-09-11 11:57 ` Peter Hurley 2014-09-11 11:57 ` Peter Hurley 2014-09-16 17:01 ` Sebastian Andrzej Siewior 2014-09-16 17:01 ` Sebastian Andrzej Siewior 2014-09-16 17:01 ` Sebastian Andrzej Siewior 2014-09-29 9:38 ` Frans Klaver 2014-09-29 9:38 ` Frans Klaver 2014-09-29 9:38 ` Frans Klaver 2014-09-29 13:27 ` Sebastian Andrzej Siewior 2014-09-29 13:27 ` Sebastian Andrzej Siewior 2014-09-29 13:34 ` Frans Klaver 2014-09-29 13:34 ` Frans Klaver 2014-09-10 19:30 ` [PATCH 07/16] tty: serial: 8250_dma: handle error on TX submit Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` [PATCH 08/16] tty: serial: 8250_dma: enqueue RX dma again on completion Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` [PATCH 09/16] tty: serial: 8250_dma: Add a TX trigger workaround for AM33xx Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-11 11:17 ` Heikki Krogerus 2014-09-11 11:17 ` Heikki Krogerus 2014-09-11 11:17 ` Heikki Krogerus 2014-09-11 11:42 ` Sebastian Andrzej Siewior 2014-09-11 11:42 ` Sebastian Andrzej Siewior 2014-09-11 11:42 ` Sebastian Andrzej Siewior 2014-09-11 12:32 ` Peter Hurley 2014-09-11 12:32 ` Peter Hurley 2014-09-11 12:50 ` Sebastian Andrzej Siewior 2014-09-11 12:50 ` Sebastian Andrzej Siewior 2014-09-11 14:35 ` Peter Hurley 2014-09-11 14:35 ` Peter Hurley 2014-09-11 14:35 ` Peter Hurley 2014-09-15 17:01 ` Sebastian Andrzej Siewior 2014-09-15 17:01 ` Sebastian Andrzej Siewior 2014-09-16 16:55 ` Sebastian Andrzej Siewior 2014-09-16 16:55 ` Sebastian Andrzej Siewior 2014-09-16 16:55 ` Sebastian Andrzej Siewior 2014-09-17 12:20 ` Peter Hurley 2014-09-17 12:20 ` Peter Hurley 2014-09-17 16:25 ` Sebastian Andrzej Siewior 2014-09-17 16:25 ` Sebastian Andrzej Siewior 2014-09-17 16:25 ` Sebastian Andrzej Siewior 2014-09-29 16:15 ` Sebastian Andrzej Siewior 2014-09-29 16:15 ` Sebastian Andrzej Siewior 2014-09-11 15:11 ` Frans Klaver 2014-09-11 15:11 ` Frans Klaver 2014-09-11 15:11 ` Frans Klaver 2014-09-11 16:04 ` Sebastian Andrzej Siewior 2014-09-11 16:04 ` Sebastian Andrzej Siewior 2014-09-11 17:04 ` Frans Klaver 2014-09-11 17:04 ` Frans Klaver 2014-09-12 7:23 ` Sebastian Andrzej Siewior 2014-09-12 7:23 ` Sebastian Andrzej Siewior 2014-09-12 9:40 ` Frans Klaver 2014-09-12 9:40 ` Frans Klaver 2014-09-12 9:51 ` Sebastian Andrzej Siewior 2014-09-12 9:51 ` Sebastian Andrzej Siewior 2014-09-12 10:28 ` Frans Klaver 2014-09-12 10:28 ` Frans Klaver 2014-09-12 10:28 ` Frans Klaver 2014-09-15 16:42 ` Sebastian Andrzej Siewior 2014-09-15 16:42 ` Sebastian Andrzej Siewior 2014-09-16 9:05 ` Frans Klaver 2014-09-16 9:05 ` Frans Klaver 2014-09-16 9:05 ` Frans Klaver 2014-09-16 12:42 ` Frans Klaver 2014-09-16 12:42 ` Frans Klaver 2014-09-16 12:42 ` Frans Klaver 2014-09-16 14:23 ` Frans Klaver 2014-09-16 14:23 ` Frans Klaver 2014-09-16 14:23 ` Frans Klaver 2014-09-17 10:28 ` Frans Klaver 2014-09-17 10:28 ` Frans Klaver 2014-09-17 10:28 ` Frans Klaver 2014-09-21 20:41 ` Sebastian Andrzej Siewior 2014-09-21 20:41 ` Sebastian Andrzej Siewior 2014-09-21 20:41 ` Sebastian Andrzej Siewior 2014-09-22 9:28 ` Frans Klaver 2014-09-22 9:28 ` Frans Klaver 2014-09-22 9:28 ` Frans Klaver 2014-09-24 7:56 ` Sebastian Andrzej Siewior 2014-09-24 7:56 ` Sebastian Andrzej Siewior 2014-09-25 15:14 ` Sebastian Andrzej Siewior 2014-09-25 15:14 ` Sebastian Andrzej Siewior 2014-09-25 15:18 ` Frans Klaver 2014-09-25 15:18 ` Frans Klaver 2014-09-29 8:50 ` Frans Klaver 2014-09-29 8:50 ` Frans Klaver 2014-09-29 8:50 ` Frans Klaver 2014-09-29 9:54 ` Sebastian Andrzej Siewior 2014-09-29 9:54 ` Sebastian Andrzej Siewior 2014-09-29 10:30 ` Frans Klaver 2014-09-29 10:30 ` Frans Klaver 2014-09-29 10:30 ` Frans Klaver 2014-09-30 8:44 ` Frans Klaver 2014-09-30 8:44 ` Frans Klaver 2014-09-30 8:44 ` Frans Klaver 2014-10-02 10:27 ` Sebastian Andrzej Siewior 2014-10-02 10:27 ` Sebastian Andrzej Siewior 2014-10-02 10:27 ` Sebastian Andrzej Siewior 2014-10-13 14:55 ` Frans Klaver 2014-10-13 14:55 ` Frans Klaver 2014-10-13 14:55 ` Frans Klaver 2014-09-23 17:03 ` Peter Hurley 2014-09-23 17:03 ` Peter Hurley 2014-09-24 7:53 ` Sebastian Andrzej Siewior 2014-09-24 7:53 ` Sebastian Andrzej Siewior 2014-09-25 10:42 ` Sebastian Andrzej Siewior 2014-09-25 10:42 ` Sebastian Andrzej Siewior 2014-09-25 11:31 ` Peter Hurley 2014-09-25 11:31 ` Peter Hurley 2014-09-25 13:11 ` Sebastian Andrzej Siewior 2014-09-25 13:11 ` Sebastian Andrzej Siewior 2014-09-25 13:11 ` Sebastian Andrzej Siewior 2014-09-17 16:34 ` Sebastian Andrzej Siewior 2014-09-17 16:34 ` Sebastian Andrzej Siewior 2014-09-17 16:34 ` Sebastian Andrzej Siewior 2014-09-19 10:22 ` Heikki Krogerus 2014-09-19 10:22 ` Heikki Krogerus 2014-09-19 10:22 ` Heikki Krogerus 2014-09-19 10:58 ` Sebastian Andrzej Siewior 2014-09-19 10:58 ` Sebastian Andrzej Siewior 2014-09-19 11:25 ` Peter Hurley 2014-09-19 11:25 ` Peter Hurley 2014-09-22 7:46 ` Heikki Krogerus 2014-09-22 7:46 ` Heikki Krogerus 2014-09-25 9:24 ` Sebastian Andrzej Siewior 2014-09-25 9:24 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` [PATCH 10/16] tty: serial: 8250_dma: optimize the xmit path due to UART_BUG_DMA_TX Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` [PATCH 11/16] tty: serial: 8250_dma: keep own book keeping about RX transfers Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` [PATCH 12/16] tty: serial: 8250_dma: handle the UART RDI event while DMA remains idle Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-29 9:23 ` Frans Klaver 2014-09-29 9:23 ` Frans Klaver 2014-09-29 9:23 ` Frans Klaver 2014-09-10 19:30 ` [PATCH 13/16] tty: serial: 8250_dma: add pm runtime Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-29 9:26 ` Frans Klaver 2014-09-29 9:26 ` Frans Klaver 2014-09-29 9:26 ` Frans Klaver 2014-09-29 9:56 ` Sebastian Andrzej Siewior 2014-09-29 9:56 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` [PATCH 14/16] arm: dts: am33xx: add DMA properties for UART Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` [PATCH 15/16] arm: dts: dra7: " Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior 2014-09-10 19:30 ` Sebastian Andrzej Siewior [this message] 2014-09-10 19:30 ` [PATCH 16/16] tty: serial: 8250: omap: add dma support Sebastian Andrzej Siewior 2014-09-12 22:43 ` [PATCH 00/16 v9] omap 8250 based uart + DMA Tony Lindgren 2014-09-12 22:43 ` Tony Lindgren 2014-09-12 22:43 ` Tony Lindgren 2014-09-15 11:50 ` Sebastian Andrzej Siewior 2014-09-15 11:50 ` Sebastian Andrzej Siewior 2014-09-15 11:50 ` Sebastian Andrzej Siewior 2014-09-16 12:57 ` Sebastian Andrzej Siewior 2014-09-16 12:57 ` Sebastian Andrzej Siewior 2014-09-16 12:57 ` Sebastian Andrzej Siewior 2014-09-16 16:48 ` Tony Lindgren 2014-09-16 16:48 ` Tony Lindgren 2014-09-16 21:30 ` Tony Lindgren 2014-09-16 21:30 ` Tony Lindgren 2014-09-16 21:30 ` Tony Lindgren 2014-09-17 8:38 ` Sebastian Andrzej Siewior 2014-09-17 8:38 ` Sebastian Andrzej Siewior 2014-09-17 9:05 ` Sebastian Andrzej Siewior 2014-09-17 9:05 ` Sebastian Andrzej Siewior 2014-09-26 16:02 ` Greg KH 2014-09-26 16:02 ` Greg KH 2014-09-26 16:02 ` Greg KH
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1410377411-26656-17-git-send-email-bigeasy@linutronix.de \ --to=bigeasy@linutronix.de \ --cc=balbi@ti.com \ --cc=gregkh@linuxfoundation.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=linux-serial@vger.kernel.org \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.