From: Grygorii Strashko <grygorii.strashko@ti.com>
To: Sourav Poddar <sourav.poddar@ti.com>
Cc: gregkh@linuxfoundation.org, tony@atomide.com,
rmk+kernel@arm.linux.org.uk, khilman@linaro.org,
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: Mon, 22 Apr 2013 17:48:55 +0300 [thread overview]
Message-ID: <51754DD7.6040904@ti.com> (raw)
In-Reply-To: <1366638237-6880-3-git-send-email-sourav.poddar@ti.com>
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.
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.
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.
Regards,
-grygorii
>
> if (!pdata)
> @@ -1614,6 +1614,9 @@ static int serial_omap_runtime_resume(struct device *dev)
>
> int loss_cnt = serial_omap_get_context_loss_count(up);
>
> + if (!console_suspend_enabled && uart_console(&up->port))
> + return -EINVAL;
> +
> if (loss_cnt < 0) {
> dev_err(dev, "serial_omap_get_context_loss_count failed : %d\n",
> loss_cnt);
WARNING: multiple messages have this Message-ID (diff)
From: Grygorii Strashko <grygorii.strashko@ti.com>
To: Sourav Poddar <sourav.poddar@ti.com>
Cc: <gregkh@linuxfoundation.org>, <tony@atomide.com>,
<rmk+kernel@arm.linux.org.uk>, <khilman@linaro.org>,
<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: Mon, 22 Apr 2013 17:48:55 +0300 [thread overview]
Message-ID: <51754DD7.6040904@ti.com> (raw)
In-Reply-To: <1366638237-6880-3-git-send-email-sourav.poddar@ti.com>
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.
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.
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.
Regards,
-grygorii
>
> if (!pdata)
> @@ -1614,6 +1614,9 @@ static int serial_omap_runtime_resume(struct device *dev)
>
> int loss_cnt = serial_omap_get_context_loss_count(up);
>
> + if (!console_suspend_enabled && uart_console(&up->port))
> + return -EINVAL;
> +
> if (loss_cnt < 0) {
> dev_err(dev, "serial_omap_get_context_loss_count failed : %d\n",
> loss_cnt);
next prev parent reply other threads:[~2013-04-22 14:48 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 [this message]
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
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=51754DD7.6040904@ti.com \
--to=grygorii.strashko@ti.com \
--cc=gregkh@linuxfoundation.org \
--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=sourav.poddar@ti.com \
--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.