From: Sourav Poddar <sourav.poddar@ti.com>
To: Kevin Hilman <khilman@linaro.org>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>,
gregkh@linuxfoundation.org, tony@atomide.com,
rmk+kernel@arm.linux.org.uk, linux-serial@vger.kernel.org,
linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCHv2 2/5] driver: serial: omap: prevent runtime PM for "no_console_suspend"
Date: Tue, 23 Apr 2013 10:44:35 +0530 [thread overview]
Message-ID: <517618BB.7040603@ti.com> (raw)
In-Reply-To: <87fvyi8la5.fsf@linaro.org>
Hi Kevin,
On Tuesday 23 April 2013 12:06 AM, Kevin Hilman wrote:
> Grygorii Strashko<grygorii.strashko@ti.com> writes:
>
>> On 04/22/2013 04:43 PM, Sourav Poddar wrote:
>>> The driver manages "no_console_suspend" by preventing runtime PM
>>> during the suspend path, which forces the console UART to stay awake.
>>>
>>> Signed-off-by: Sourav Poddar<sourav.poddar@ti.com>
>>> ---
>>> drivers/tty/serial/omap-serial.c | 5 ++++-
>>> 1 files changed, 4 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
>>> index 08332f3..640b14e 100644
>>> --- a/drivers/tty/serial/omap-serial.c
>>> +++ b/drivers/tty/serial/omap-serial.c
>>> @@ -1582,7 +1582,7 @@ static int serial_omap_runtime_suspend(struct device *dev)
>>> struct uart_omap_port *up = dev_get_drvdata(dev);
>>> struct omap_uart_port_info *pdata = dev->platform_data;
>>> - if (!up)
>>> + if (!up || (!console_suspend_enabled&& uart_console(&up->port)))
>>> return -EINVAL;
>> Hi Sourav,
>> No ) You will block Runtime PM for console UART forever, but instead
>> it need to be blocked only during suspend - autosuspend should
>> continue working.
> Correct.
>
> Sourav, as I mentioned when I suggested this approach, it should be done
> *only* during suspend.
>
Yes, got the point.
>> But this will be not easy, again, -
>> because System suspend isn't synchronized with Runtime PM (I mean,
>> serial_omap_suspend/resume() may be called from one thread and
>> serial_omap_runtime_suspend/resume() from another at same time).
>> And now, serial_omap_suspend() callback is the only one place where you
>> can detect that system is going to sleep.
> So set an 'is_suspending' flag in ->suspend (it may need to be in
> ->prepare) and clear it in ->resume (->complete), and check the flag in
> the ->runtime_supend() callback. It's not uncommon for drivers to have
> such a flag for various reasons.
>
Ok. Will adapt the next version inline with the above suggestions.
>> Personally, i don't believe in such approach (my experiences from K3.4
>> said me that there will be more problems than benefits).
>>
>> And, I like combination of "no_console_suspend" in bootargs +
>> "ti,no_idle_on_suspend" for console UART in DT, because 1) it's debug
>> option and 2) until
>> smth. will be decided about OMAP OCP Bus it can be used.
>>
>> It's just my opinion.
> No, we need to get rid of ti,no_idle_on_suspend. It's an ugly,
> OMAP-specific hack (and I'm free to insult it because I introduced it.)
>
> Kevin
>
WARNING: multiple messages have this Message-ID (diff)
From: Sourav Poddar <sourav.poddar@ti.com>
To: Kevin Hilman <khilman@linaro.org>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>,
<gregkh@linuxfoundation.org>, <tony@atomide.com>,
<rmk+kernel@arm.linux.org.uk>, <linux-serial@vger.kernel.org>,
<linux-omap@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCHv2 2/5] driver: serial: omap: prevent runtime PM for "no_console_suspend"
Date: Tue, 23 Apr 2013 10:44:35 +0530 [thread overview]
Message-ID: <517618BB.7040603@ti.com> (raw)
In-Reply-To: <87fvyi8la5.fsf@linaro.org>
Hi Kevin,
On Tuesday 23 April 2013 12:06 AM, Kevin Hilman wrote:
> Grygorii Strashko<grygorii.strashko@ti.com> writes:
>
>> On 04/22/2013 04:43 PM, Sourav Poddar wrote:
>>> The driver manages "no_console_suspend" by preventing runtime PM
>>> during the suspend path, which forces the console UART to stay awake.
>>>
>>> Signed-off-by: Sourav Poddar<sourav.poddar@ti.com>
>>> ---
>>> drivers/tty/serial/omap-serial.c | 5 ++++-
>>> 1 files changed, 4 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
>>> index 08332f3..640b14e 100644
>>> --- a/drivers/tty/serial/omap-serial.c
>>> +++ b/drivers/tty/serial/omap-serial.c
>>> @@ -1582,7 +1582,7 @@ static int serial_omap_runtime_suspend(struct device *dev)
>>> struct uart_omap_port *up = dev_get_drvdata(dev);
>>> struct omap_uart_port_info *pdata = dev->platform_data;
>>> - if (!up)
>>> + if (!up || (!console_suspend_enabled&& uart_console(&up->port)))
>>> return -EINVAL;
>> Hi Sourav,
>> No ) You will block Runtime PM for console UART forever, but instead
>> it need to be blocked only during suspend - autosuspend should
>> continue working.
> Correct.
>
> Sourav, as I mentioned when I suggested this approach, it should be done
> *only* during suspend.
>
Yes, got the point.
>> But this will be not easy, again, -
>> because System suspend isn't synchronized with Runtime PM (I mean,
>> serial_omap_suspend/resume() may be called from one thread and
>> serial_omap_runtime_suspend/resume() from another at same time).
>> And now, serial_omap_suspend() callback is the only one place where you
>> can detect that system is going to sleep.
> So set an 'is_suspending' flag in ->suspend (it may need to be in
> ->prepare) and clear it in ->resume (->complete), and check the flag in
> the ->runtime_supend() callback. It's not uncommon for drivers to have
> such a flag for various reasons.
>
Ok. Will adapt the next version inline with the above suggestions.
>> Personally, i don't believe in such approach (my experiences from K3.4
>> said me that there will be more problems than benefits).
>>
>> And, I like combination of "no_console_suspend" in bootargs +
>> "ti,no_idle_on_suspend" for console UART in DT, because 1) it's debug
>> option and 2) until
>> smth. will be decided about OMAP OCP Bus it can be used.
>>
>> It's just my opinion.
> No, we need to get rid of ti,no_idle_on_suspend. It's an ugly,
> OMAP-specific hack (and I'm free to insult it because I introduced it.)
>
> Kevin
>
next prev parent reply other threads:[~2013-04-23 5:14 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-22 13:43 [PATCHv2 0/5] Serial Omap fixes and cleanups Sourav Poddar
2013-04-22 13:43 ` Sourav Poddar
2013-04-22 13:43 ` [PATCHv2 1/5] driver: tty: serial: Move "uart_console" def to core header file Sourav Poddar
2013-04-22 13:43 ` Sourav Poddar
2013-04-22 14:30 ` Felipe Balbi
2013-04-22 14:30 ` Felipe Balbi
2013-04-22 13:43 ` [PATCHv2 2/5] driver: serial: omap: prevent runtime PM for "no_console_suspend" Sourav Poddar
2013-04-22 13:43 ` Sourav Poddar
2013-04-22 14:31 ` Felipe Balbi
2013-04-22 14:31 ` Felipe Balbi
2013-04-23 4:52 ` Sourav Poddar
2013-04-23 4:52 ` Sourav Poddar
2013-04-22 14:48 ` Grygorii Strashko
2013-04-22 14:48 ` Grygorii Strashko
2013-04-22 18:36 ` Kevin Hilman
2013-04-22 18:36 ` Kevin Hilman
2013-04-23 5:14 ` Sourav Poddar [this message]
2013-04-23 5:14 ` Sourav Poddar
2013-04-23 5:12 ` Sourav Poddar
2013-04-23 5:12 ` Sourav Poddar
2013-04-22 13:43 ` [PATCHv2 3/5] arm: omap2+: serial: remove no_console_suspend support Sourav Poddar
2013-04-22 13:43 ` Sourav Poddar
2013-04-22 14:32 ` Felipe Balbi
2013-04-22 14:32 ` Felipe Balbi
2013-04-22 13:43 ` [PATCHv2 4/5] arm: dts: am33xx: Remove "ti,no_idle_on_suspend" property Sourav Poddar
2013-04-22 13:43 ` Sourav Poddar
2013-04-22 14:35 ` Felipe Balbi
2013-04-22 14:35 ` Felipe Balbi
2013-04-23 4:53 ` Sourav Poddar
2013-04-23 4:53 ` Sourav Poddar
2013-04-22 13:43 ` [RFC/PATCHv2 5/5] arm: omap2+: omap_device: remove no_idle_on_suspend Sourav Poddar
2013-04-22 13:43 ` Sourav Poddar
2013-04-22 14:14 ` Grygorii Strashko
2013-04-22 14:14 ` Grygorii Strashko
2013-04-22 18:41 ` Kevin Hilman
2013-04-22 18:41 ` Kevin Hilman
2013-04-23 5:19 ` Sourav Poddar
2013-04-23 5:19 ` Sourav Poddar
2013-04-23 9:19 ` Grygorii Strashko
2013-04-23 9:19 ` Grygorii Strashko
2013-04-23 9:21 ` Sourav Poddar
2013-04-23 9:21 ` Sourav Poddar
2013-04-22 14:38 ` Felipe Balbi
2013-04-22 14:38 ` Felipe Balbi
2013-04-23 7:13 ` Peter Ujfalusi
2013-04-23 7:13 ` Peter Ujfalusi
2013-04-22 14:39 ` Felipe Balbi
2013-04-22 14:39 ` 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=517618BB.7040603@ti.com \
--to=sourav.poddar@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=grygorii.strashko@ti.com \
--cc=khilman@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=rmk+kernel@arm.linux.org.uk \
--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: 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.