All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Balbi <balbi@ti.com>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Felipe Balbi <balbi@ti.com>, Tony Lindgren <tony@atomide.com>,
	Rajendra Nayak <rnayak@ti.com>, Kevin Hilman <khilman@linaro.org>,
	Linux OMAP Mailing List <linux-omap@vger.kernel.org>,
	vaibhav.bedia@ti.com, linux-arm-kernel@lists.infradead.org,
	mpfj-list@newflow.co.uk, Sourav Poddar <sourav.poddar@ti.com>,
	paul@pwsan.com
Subject: Re: [PATCH] arm: omap2plus: unidle devices which are about to probe
Date: Fri, 12 Jul 2013 15:10:31 +0300	[thread overview]
Message-ID: <20130712121031.GB17053@arwen.pp.htv.fi> (raw)
In-Reply-To: <51DFEF59.1010509@ti.com>

[-- Attachment #1: Type: text/plain, Size: 3390 bytes --]

On Fri, Jul 12, 2013 at 02:58:17PM +0300, Grygorii Strashko wrote:
> On 07/11/2013 01:16 PM, Felipe Balbi wrote:
> >in order to make HWMOD and pm_runtime agree on the
> >initial state of the device, we will unidle the device
> >and call pm_runtime_set_active() to tell pm_runtime
> >that the device is really active.
> >
> >By the time driver's probe() is reached, a call to
> >pm_runtime_get_sync() will not cause driver's
> >->runtime_resume() method to be called at first, only
> >after a successful ->runtime_suspend().
> >
> >Note that we must prevent pm_runtime transitions while
> >driver is probing otherwise drivers would be suspended
> >as soon as they call pm_runtime_use_autosuspend(). By
> >calling pm_runtime_forbid() before probe() and
> >pm_runtime_allow() after probe() we 'fix' that detail.
> >
> >Note that this patch was inspired by PCI's pci_pm_init().
> 
> NAK. This is a hack.

hack is your flag to check if the driver is "initialized". pff

> In addition to what I've mentioned in
> http://www.spinics.net/lists/arm-kernel/msg258061.html there are
> following issues:
> 1) this patch disables call to PM runtime callbacks for all

no, it does not. It forbids pm runtime transitions during probe.

> OMAP drivers which is wrong - I've found, for example, that
> omap-usb-host.c driver enables TLL in some configurations in its
> .runtime_resume():
> 
> usbhs_runtime_resume()
> |-omap_tll_enable()

which is wrong. PM runtime callbacks are supposed to be use for,
surprise, PM!

> 2) even with this fix the restore context issue will not be fixed for
> *non* console UARTs. Just try:
> #echo 0xDEAD > dev/ttyO3 // checked on OMAP4 SDP

that I have not checked, but then again, with that you're not calling
set_termios() anyway.

> 3) I've checked most of OMAP drivers and all of them solve such kind
> of problem internally (SPI, MMC, I2C, etc.)

and you see no problem with that ? Repeating the same thing over and
over again ?

> 4) See inline
> >
> >Signed-off-by: Felipe Balbi <balbi@ti.com>
> >---
> >
> >boot tested on top of today's Linus master
> >6d128e1e72bf082542e85f72e6b7ddd704193588 with OMAP4
> >panda. Reached console prompt and, after setting a
> >proper autosuspend delay, consoles autosuspend just
> >fine.
> >
> >It needs to be tested on other platforms.
> >
> >ps: note that we also call pm_runtime_set_suspended(dev)
> >from our late_initcall() to disable devices so that pm_runtime
> >and HWMOD continue to aggree on device's state.
> >
> >  arch/arm/mach-omap2/omap_device.c | 44 +++++++++++++++++++++++++++++++++++----
> >  1 file changed, 40 insertions(+), 4 deletions(-)
> >
> >diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
> >index 5cc9287..cb1fc1d 100644
> >--- a/arch/arm/mach-omap2/omap_device.c
> >+++ b/arch/arm/mach-omap2/omap_device.c
> >@@ -178,6 +178,26 @@ odbfd_exit:
> >  	return ret;
> >  }
> >
> >+static void omap_device_pm_init(struct platform_device *pdev)
> >+{
> >+	omap_device_enable(pdev);
> >+	pm_runtime_forbid(&pdev->dev);
> It's wrong to use pm_runtime_forbid() - pm_runtime_get_noresume()
> should be used instead.

how come ? What makes you think pm_runtime_get_noresume() is the right
thing here ? 

> pm_runtime_forbid()
> |-rpm_resume()

so what ? flags is zero.

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: balbi@ti.com (Felipe Balbi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm: omap2plus: unidle devices which are about to probe
Date: Fri, 12 Jul 2013 15:10:31 +0300	[thread overview]
Message-ID: <20130712121031.GB17053@arwen.pp.htv.fi> (raw)
In-Reply-To: <51DFEF59.1010509@ti.com>

On Fri, Jul 12, 2013 at 02:58:17PM +0300, Grygorii Strashko wrote:
> On 07/11/2013 01:16 PM, Felipe Balbi wrote:
> >in order to make HWMOD and pm_runtime agree on the
> >initial state of the device, we will unidle the device
> >and call pm_runtime_set_active() to tell pm_runtime
> >that the device is really active.
> >
> >By the time driver's probe() is reached, a call to
> >pm_runtime_get_sync() will not cause driver's
> >->runtime_resume() method to be called at first, only
> >after a successful ->runtime_suspend().
> >
> >Note that we must prevent pm_runtime transitions while
> >driver is probing otherwise drivers would be suspended
> >as soon as they call pm_runtime_use_autosuspend(). By
> >calling pm_runtime_forbid() before probe() and
> >pm_runtime_allow() after probe() we 'fix' that detail.
> >
> >Note that this patch was inspired by PCI's pci_pm_init().
> 
> NAK. This is a hack.

hack is your flag to check if the driver is "initialized". pff

> In addition to what I've mentioned in
> http://www.spinics.net/lists/arm-kernel/msg258061.html there are
> following issues:
> 1) this patch disables call to PM runtime callbacks for all

no, it does not. It forbids pm runtime transitions during probe.

> OMAP drivers which is wrong - I've found, for example, that
> omap-usb-host.c driver enables TLL in some configurations in its
> .runtime_resume():
> 
> usbhs_runtime_resume()
> |-omap_tll_enable()

which is wrong. PM runtime callbacks are supposed to be use for,
surprise, PM!

> 2) even with this fix the restore context issue will not be fixed for
> *non* console UARTs. Just try:
> #echo 0xDEAD > dev/ttyO3 // checked on OMAP4 SDP

that I have not checked, but then again, with that you're not calling
set_termios() anyway.

> 3) I've checked most of OMAP drivers and all of them solve such kind
> of problem internally (SPI, MMC, I2C, etc.)

and you see no problem with that ? Repeating the same thing over and
over again ?

> 4) See inline
> >
> >Signed-off-by: Felipe Balbi <balbi@ti.com>
> >---
> >
> >boot tested on top of today's Linus master
> >6d128e1e72bf082542e85f72e6b7ddd704193588 with OMAP4
> >panda. Reached console prompt and, after setting a
> >proper autosuspend delay, consoles autosuspend just
> >fine.
> >
> >It needs to be tested on other platforms.
> >
> >ps: note that we also call pm_runtime_set_suspended(dev)
> >from our late_initcall() to disable devices so that pm_runtime
> >and HWMOD continue to aggree on device's state.
> >
> >  arch/arm/mach-omap2/omap_device.c | 44 +++++++++++++++++++++++++++++++++++----
> >  1 file changed, 40 insertions(+), 4 deletions(-)
> >
> >diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
> >index 5cc9287..cb1fc1d 100644
> >--- a/arch/arm/mach-omap2/omap_device.c
> >+++ b/arch/arm/mach-omap2/omap_device.c
> >@@ -178,6 +178,26 @@ odbfd_exit:
> >  	return ret;
> >  }
> >
> >+static void omap_device_pm_init(struct platform_device *pdev)
> >+{
> >+	omap_device_enable(pdev);
> >+	pm_runtime_forbid(&pdev->dev);
> It's wrong to use pm_runtime_forbid() - pm_runtime_get_noresume()
> should be used instead.

how come ? What makes you think pm_runtime_get_noresume() is the right
thing here ? 

> pm_runtime_forbid()
> |-rpm_resume()

so what ? flags is zero.

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130712/316a3665/attachment.sig>

  reply	other threads:[~2013-07-12 12:11 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-04 13:25 Boot hang regression 3.10.0-rc4 -> 3.10.0 Mark Jackson
2013-07-04 13:25 ` Mark Jackson
2013-07-04 15:14 ` Mark Jackson
2013-07-04 15:14   ` Mark Jackson
2013-07-04 16:00   ` Mark Jackson
2013-07-04 16:00     ` Mark Jackson
2013-07-05  8:11     ` Bedia, Vaibhav
2013-07-05  8:11       ` Bedia, Vaibhav
2013-07-05 11:59       ` Tony Lindgren
2013-07-05 11:59         ` Tony Lindgren
2013-07-05 13:20         ` Bedia, Vaibhav
2013-07-05 13:20           ` Bedia, Vaibhav
2013-07-05 13:31           ` Bedia, Vaibhav
2013-07-05 13:31             ` Bedia, Vaibhav
2013-07-08 11:25             ` Tony Lindgren
2013-07-08 11:25               ` Tony Lindgren
2013-07-08 12:16               ` Tony Lindgren
2013-07-08 12:16                 ` Tony Lindgren
2013-07-08 12:41               ` Rajendra Nayak
2013-07-08 12:41                 ` Rajendra Nayak
2013-07-08 13:10                 ` Tony Lindgren
2013-07-08 13:10                   ` Tony Lindgren
2013-07-08 13:20                   ` Rajendra Nayak
2013-07-08 13:20                     ` Rajendra Nayak
2013-07-08 13:25                     ` Rajendra Nayak
2013-07-08 13:25                       ` Rajendra Nayak
2013-07-08 13:35                     ` Felipe Balbi
2013-07-08 13:35                       ` Felipe Balbi
2013-07-09  5:33                       ` Rajendra Nayak
2013-07-09  5:33                         ` Rajendra Nayak
2013-07-09  6:42                         ` Felipe Balbi
2013-07-09  6:42                           ` Felipe Balbi
2013-07-09  7:19                           ` Rajendra Nayak
2013-07-09  7:19                             ` Rajendra Nayak
2013-07-09  7:40                             ` Felipe Balbi
2013-07-09  7:40                               ` Felipe Balbi
2013-07-09 18:59                           ` Grygorii Strashko
2013-07-09 18:59                             ` Grygorii Strashko
2013-07-09 19:41                             ` Felipe Balbi
2013-07-09 19:41                               ` Felipe Balbi
2013-07-10 12:16                               ` Grygorii Strashko
2013-07-10 12:16                                 ` Grygorii Strashko
2013-07-10 12:25                                 ` Felipe Balbi
2013-07-10 12:25                                   ` Felipe Balbi
2013-07-10  8:22                       ` Kevin Hilman
2013-07-10  8:22                         ` Kevin Hilman
2013-07-10 12:10                         ` Tony Lindgren
2013-07-10 12:10                           ` Tony Lindgren
2013-07-10 12:27                           ` Tony Lindgren
2013-07-10 12:27                             ` Tony Lindgren
2013-07-10 14:26                         ` Tony Lindgren
2013-07-10 14:26                           ` Tony Lindgren
2013-07-10 16:07                           ` Felipe Balbi
2013-07-10 16:07                             ` Felipe Balbi
2013-07-10 16:11                             ` Felipe Balbi
2013-07-10 16:11                               ` Felipe Balbi
2013-07-11  6:32                               ` Tony Lindgren
2013-07-11  6:32                                 ` Tony Lindgren
2013-07-11  9:59                                 ` Grygorii Strashko
2013-07-11  9:59                                   ` Grygorii Strashko
2013-07-12  0:40                                   ` Suman Anna
2013-07-12  0:40                                     ` Suman Anna
2013-07-15  6:44                                     ` Rajendra Nayak
2013-07-15  6:44                                       ` Rajendra Nayak
2013-07-15 10:01                                       ` Rajendra Nayak
2013-07-15 10:01                                         ` Rajendra Nayak
2013-07-15 19:23                                         ` Suman Anna
2013-07-15 19:23                                           ` Suman Anna
2013-07-16  6:30                                           ` Rajendra Nayak
2013-07-16  6:30                                             ` Rajendra Nayak
2013-07-11  9:17                             ` Rajendra Nayak
2013-07-11  9:17                               ` Rajendra Nayak
2013-07-11  9:26                               ` Felipe Balbi
2013-07-11  9:26                                 ` Felipe Balbi
2013-07-11 10:16                                 ` [PATCH] arm: omap2plus: unidle devices which are about to probe Felipe Balbi
2013-07-11 10:16                                   ` Felipe Balbi
2013-07-12 11:58                                   ` Grygorii Strashko
2013-07-12 11:58                                     ` Grygorii Strashko
2013-07-12 12:10                                     ` Felipe Balbi [this message]
2013-07-12 12:10                                       ` Felipe Balbi
2013-07-12 12:27                                       ` Rajendra Nayak
2013-07-12 12:27                                         ` Rajendra Nayak
2013-07-13 22:21                                   ` Kevin Hilman
2013-07-13 22:21                                     ` Kevin Hilman
2013-07-11  9:59                               ` Boot hang regression 3.10.0-rc4 -> 3.10.0 Grygorii Strashko
2013-07-11  9:59                                 ` Grygorii Strashko
2013-07-16 10:27                               ` Grygorii Strashko
2013-07-16 10:27                                 ` Grygorii Strashko
2013-07-17  7:10                                 ` Rajendra Nayak
2013-07-17  7:10                                   ` Rajendra Nayak
2013-07-11  6:18                           ` Rajendra Nayak
2013-07-11  6:18                             ` Rajendra Nayak
2013-07-11  6:24                             ` Tony Lindgren
2013-07-11  6:24                               ` Tony Lindgren
2013-07-11  9:11                               ` Rajendra Nayak
2013-07-11  9:11                                 ` Rajendra Nayak

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=20130712121031.GB17053@arwen.pp.htv.fi \
    --to=balbi@ti.com \
    --cc=grygorii.strashko@ti.com \
    --cc=khilman@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mpfj-list@newflow.co.uk \
    --cc=paul@pwsan.com \
    --cc=rnayak@ti.com \
    --cc=sourav.poddar@ti.com \
    --cc=tony@atomide.com \
    --cc=vaibhav.bedia@ti.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.