From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Tony Lindgren <tony@atomide.com>
Cc: balbi@ti.com, linux-serial@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Vinod Koul <vinod.koul@intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Re: [PATCH 15/15] tty: serial: 8250: omap: add dma support
Date: Thu, 28 Aug 2014 21:37:03 +0200 [thread overview]
Message-ID: <53FF84DF.7080406@linutronix.de> (raw)
In-Reply-To: <20140828164645.GG16006@atomide.com>
On 08/28/2014 06:46 PM, Tony Lindgren wrote:
>> To use DMA you don't have to enable it in SCR register you can also use
>> the FCR register. The manual says that you can only write this DMA
>> enable bit in the FCR register if the baud clock is not running. And
>> guess what: same thing: I only *toggle* the DMA enable bit here (it
>> remains 0 later) and the core won't hit idle.
>> Same effect if I toggle this bit while the baud clock is running (the
>> manual says that this bit can only be written if the baud clock is not
>> running). Seems like the UART is following its own specification and it
>> remains blocking once the DMA was enabled.
>> It would be nice if someone from the UART-IP team could ACK this.
>
> Sounds like there should be some way to clear that state.. I wonder
> if omap-serial.c had something before it's DMA support was removed?
Its DMA was removed? Like there was DMA support?
> I'd assume when the UART is powered down by runtime PM it's state
> is completetely reset and we could restore the non-DMA state?
I tried that by canceling the RX-DMA request and removing the DMA-enable
bits from UART but it didn't help. Then I noticed that once that DMA en
bit is set, the UART won't do any idle.
> Maybe post your current patches and a test patch to try to toggle
> the DMA on and off?
Oh. I pushed my dirty tree to
git://git.breakpoint.cc/bigeasy/linux.git uart_v8_wip
The top most commit does not setup dma at all and adds commented out
code how to enable DMA via SCR or FCR register. With this I hit
core-off. Once _one_ of the modes are enabled, it doesn't work anymore.
I will try to address review comments tomorrow and hopefully post a v8
based on -rc2. The same goes for your patch (which I will try tomorrow).
>> Bah. Does it make sense to use runtime-PM if we can't hit core-off? I'm
>> thinking to add a printk once dma is enabled says that runtime-pm is
>> switched off.
>
> Well if we can't find a way to unset the DMA registers in the UART,
> how about only enable it if a kernel cmdline option is specified?
Hmmm. So removing DMA properties from DT is not an option? Currently I
added a message that DMA might forbid low power mode so people might
remove "dma-names" from DT (or assign "") and DMA is off. However if
this is no good, then I guess I could add kernel module which enables
DMA.
>
> We do have runtime PM working without it, and the serial console
> super important for any kind of debugging no matter what idle
> mode the SoC hits.. So let's not break that.
Yeah, I know. I've been debugging while I broke something which means
uart wasn't working :)
>
> Regards,
>
> Tony
Sebastian
WARNING: multiple messages have this Message-ID (diff)
From: bigeasy@linutronix.de (Sebastian Andrzej Siewior)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 15/15] tty: serial: 8250: omap: add dma support
Date: Thu, 28 Aug 2014 21:37:03 +0200 [thread overview]
Message-ID: <53FF84DF.7080406@linutronix.de> (raw)
In-Reply-To: <20140828164645.GG16006@atomide.com>
On 08/28/2014 06:46 PM, Tony Lindgren wrote:
>> To use DMA you don't have to enable it in SCR register you can also use
>> the FCR register. The manual says that you can only write this DMA
>> enable bit in the FCR register if the baud clock is not running. And
>> guess what: same thing: I only *toggle* the DMA enable bit here (it
>> remains 0 later) and the core won't hit idle.
>> Same effect if I toggle this bit while the baud clock is running (the
>> manual says that this bit can only be written if the baud clock is not
>> running). Seems like the UART is following its own specification and it
>> remains blocking once the DMA was enabled.
>> It would be nice if someone from the UART-IP team could ACK this.
>
> Sounds like there should be some way to clear that state.. I wonder
> if omap-serial.c had something before it's DMA support was removed?
Its DMA was removed? Like there was DMA support?
> I'd assume when the UART is powered down by runtime PM it's state
> is completetely reset and we could restore the non-DMA state?
I tried that by canceling the RX-DMA request and removing the DMA-enable
bits from UART but it didn't help. Then I noticed that once that DMA en
bit is set, the UART won't do any idle.
> Maybe post your current patches and a test patch to try to toggle
> the DMA on and off?
Oh. I pushed my dirty tree to
git://git.breakpoint.cc/bigeasy/linux.git uart_v8_wip
The top most commit does not setup dma at all and adds commented out
code how to enable DMA via SCR or FCR register. With this I hit
core-off. Once _one_ of the modes are enabled, it doesn't work anymore.
I will try to address review comments tomorrow and hopefully post a v8
based on -rc2. The same goes for your patch (which I will try tomorrow).
>> Bah. Does it make sense to use runtime-PM if we can't hit core-off? I'm
>> thinking to add a printk once dma is enabled says that runtime-pm is
>> switched off.
>
> Well if we can't find a way to unset the DMA registers in the UART,
> how about only enable it if a kernel cmdline option is specified?
Hmmm. So removing DMA properties from DT is not an option? Currently I
added a message that DMA might forbid low power mode so people might
remove "dma-names" from DT (or assign "") and DMA is off. However if
this is no good, then I guess I could add kernel module which enables
DMA.
>
> We do have runtime PM working without it, and the serial console
> super important for any kind of debugging no matter what idle
> mode the SoC hits.. So let's not break that.
Yeah, I know. I've been debugging while I broke something which means
uart wasn't working :)
>
> Regards,
>
> Tony
Sebastian
next prev parent reply other threads:[~2014-08-28 19:37 UTC|newest]
Thread overview: 154+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-15 17:42 [PATCH v7] 8250-core based serial driver for OMAP + DMA Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 01/15] tty: serial: 8250_core: allow to overwrite & export serial8250_startup() Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 02/15] tty: serial: 8250_core: allow to set ->throttle / ->unthrottle callbacks Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 03/15] tty: serial: 8250_core: add run time pm Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-20 9:23 ` Frans Klaver
2014-08-20 9:23 ` Frans Klaver
2014-08-20 9:23 ` Frans Klaver
2014-08-20 9:39 ` Frans Klaver
2014-08-20 9:39 ` Frans Klaver
2014-08-20 9:39 ` Frans Klaver
2014-09-01 14:48 ` Sebastian Andrzej Siewior
2014-09-01 14:48 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 04/15] tty: serial: 8250_core: read only RX if there is something in the FIFO Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 05/15] tty: serial: Add 8250-core based omap driver Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 18:37 ` Lennart Sorensen
2014-08-15 18:37 ` Lennart Sorensen
2014-08-15 18:37 ` Lennart Sorensen
2014-08-15 19:27 ` Sebastian Andrzej Siewior
2014-08-15 19:27 ` Sebastian Andrzej Siewior
2014-08-15 19:27 ` Sebastian Andrzej Siewior
2014-08-15 19:33 ` Lennart Sorensen
2014-08-15 19:33 ` Lennart Sorensen
2014-08-15 19:33 ` Lennart Sorensen
2014-08-15 20:20 ` Sebastian Andrzej Siewior
2014-08-15 20:20 ` Sebastian Andrzej Siewior
2014-08-15 21:07 ` Tony Lindgren
2014-08-15 21:07 ` Tony Lindgren
2014-08-15 22:44 ` Tony Lindgren
2014-08-15 22:44 ` Tony Lindgren
2014-08-29 15:49 ` Sebastian Andrzej Siewior
2014-08-29 15:49 ` Sebastian Andrzej Siewior
2014-08-29 16:08 ` Tony Lindgren
2014-08-29 16:08 ` Tony Lindgren
2014-08-21 11:00 ` Sebastian Andrzej Siewior
2014-08-21 11:00 ` Sebastian Andrzej Siewior
2014-08-21 11:00 ` Sebastian Andrzej Siewior
2014-08-21 18:38 ` Tony Lindgren
2014-08-21 18:38 ` Tony Lindgren
2014-08-18 13:46 ` Heikki Krogerus
2014-08-18 13:46 ` Heikki Krogerus
2014-09-01 13:31 ` Sebastian Andrzej Siewior
2014-09-01 13:31 ` Sebastian Andrzej Siewior
2014-09-01 13:31 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 06/15] tty: serial: 8250_dma: handle error on TX submit Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-18 13:57 ` Heikki Krogerus
2014-08-18 13:57 ` Heikki Krogerus
2014-09-01 14:38 ` Sebastian Andrzej Siewior
2014-09-01 14:38 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 07/15] tty: serial: 8250_dma: enqueue RX dma again on completion Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-18 10:52 ` One Thousand Gnomes
2014-08-18 10:52 ` One Thousand Gnomes
2014-08-29 15:52 ` Sebastian Andrzej Siewior
2014-08-29 15:52 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 08/15] dmaengine: edma: fix two faults which happen with the 8250_dma user Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 09/15] dmaengine: omap-dma: complete the transfer on terminate_all Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 10/15] tty: serial: 8250_dma: Add a TX trigger workaround for AM33xx Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 11/15] tty: serial: 8250_dma: handle the when UART response while DMA remains idle Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 12/15] tty: serial: 8250_dma: add pm runtime Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 13/15] arm: dts: am33xx: add DMA properties for UART Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 14/15] arm: dts: dra7: " Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 17:42 ` [PATCH 15/15] tty: serial: 8250: omap: add dma support Sebastian Andrzej Siewior
2014-08-15 17:42 ` Sebastian Andrzej Siewior
2014-08-15 21:02 ` Tony Lindgren
2014-08-15 21:02 ` Tony Lindgren
2014-08-21 8:34 ` Sebastian Andrzej Siewior
2014-08-21 8:34 ` Sebastian Andrzej Siewior
2014-08-21 18:44 ` Tony Lindgren
2014-08-21 18:44 ` Tony Lindgren
2014-08-27 19:54 ` Sebastian Andrzej Siewior
2014-08-27 19:54 ` Sebastian Andrzej Siewior
2014-08-27 20:23 ` Tony Lindgren
2014-08-27 20:23 ` Tony Lindgren
2014-08-28 8:23 ` Sebastian Andrzej Siewior
2014-08-28 8:23 ` Sebastian Andrzej Siewior
2014-08-28 16:46 ` Tony Lindgren
2014-08-28 16:46 ` Tony Lindgren
2014-08-28 19:37 ` Sebastian Andrzej Siewior [this message]
2014-08-28 19:37 ` Sebastian Andrzej Siewior
2014-08-28 22:54 ` Tony Lindgren
2014-08-28 22:54 ` Tony Lindgren
2014-08-29 9:32 ` Sebastian Andrzej Siewior
2014-08-29 9:32 ` Sebastian Andrzej Siewior
2014-08-29 15:55 ` Felipe Balbi
2014-08-29 15:55 ` Felipe Balbi
2014-08-29 15:55 ` Felipe Balbi
2014-08-29 16:12 ` Tony Lindgren
2014-08-29 16:12 ` Tony Lindgren
2014-08-29 16:12 ` Tony Lindgren
2014-08-29 16:31 ` Sebastian Andrzej Siewior
2014-08-29 16:31 ` Sebastian Andrzej Siewior
2014-08-29 16:31 ` Sebastian Andrzej Siewior
2014-09-01 17:47 ` Sebastian Andrzej Siewior
2014-09-01 17:47 ` Sebastian Andrzej Siewior
2014-09-02 3:05 ` Sebastian Reichel
2014-09-02 3:05 ` Sebastian Reichel
2014-09-02 16:55 ` Tony Lindgren
2014-09-02 16:55 ` Tony Lindgren
2014-09-02 18:39 ` Sebastian Andrzej Siewior
2014-09-02 18:39 ` Sebastian Andrzej Siewior
2014-09-02 20:15 ` Tony Lindgren
2014-09-02 20:15 ` Tony Lindgren
2014-09-02 20:38 ` Sebastian Reichel
2014-09-02 20:38 ` Sebastian Reichel
2014-09-03 16:46 ` Sebastian Andrzej Siewior
2014-09-03 16:46 ` Sebastian Andrzej Siewior
2014-09-03 17:48 ` Tony Lindgren
2014-09-03 17:48 ` Tony Lindgren
2014-09-04 13:44 ` Sebastian Andrzej Siewior
2014-09-04 13:44 ` Sebastian Andrzej Siewior
2014-09-04 13:44 ` Sebastian Andrzej Siewior
2014-09-04 14:52 ` Tony Lindgren
2014-09-04 14:52 ` Tony Lindgren
2014-09-04 14:52 ` Tony Lindgren
2014-09-04 14:56 ` Sebastian Andrzej Siewior
2014-09-04 14:56 ` Sebastian Andrzej Siewior
2014-09-04 14:56 ` Sebastian Andrzej Siewior
2014-09-04 16:25 ` Tony Lindgren
2014-09-04 16:25 ` Tony Lindgren
2014-09-04 16:25 ` Tony Lindgren
2014-08-15 18:17 ` [PATCH v7] 8250-core based serial driver for OMAP + DMA Lennart Sorensen
2014-08-15 18:17 ` Lennart Sorensen
2014-08-15 19:14 ` Sebastian Andrzej Siewior
2014-08-15 19:14 ` Sebastian Andrzej Siewior
2014-08-15 20:28 ` Tony Lindgren
2014-08-15 20:28 ` Tony Lindgren
2014-08-17 20:35 ` Sebastian Andrzej Siewior
2014-08-17 20:35 ` Sebastian Andrzej Siewior
2014-08-18 15:15 ` Peter Hurley
2014-08-18 15:15 ` Peter Hurley
2014-08-18 16:37 ` Felipe Balbi
2014-08-18 16:37 ` Felipe Balbi
2014-08-18 16:37 ` Felipe Balbi
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=53FF84DF.7080406@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 \
--cc=vinod.koul@intel.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: link
Be 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.