All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
To: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
Cc: Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>,
	Yoshihiro Shimoda
	<yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
Subject: Re: [PATCH 1/4] usb: host: ohci-platform: Add basic runtime PM support
Date: Thu, 18 May 2017 08:52:37 -0700	[thread overview]
Message-ID: <20170518155237.GD10472@atomide.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1705181114280.1619-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>

* Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> [170518 08:28]:
> On Wed, 17 May 2017, Tony Lindgren wrote:
> 
> > This is needed in preparation of adding support for omap3 and
> > later OHCI. The runtime PM will only do something on platforms
> > that implement it.
> 
> This patch isn't correct.  See below.
> 
> > Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > Cc: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> > Cc: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> > Cc: Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>
> > Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
> > Signed-off-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
> > ---
> >  drivers/usb/host/ohci-platform.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
> > --- a/drivers/usb/host/ohci-platform.c
> > +++ b/drivers/usb/host/ohci-platform.c
> > @@ -24,6 +24,7 @@
> >  #include <linux/err.h>
> >  #include <linux/phy/phy.h>
> >  #include <linux/platform_device.h>
> > +#include <linux/pm_runtime.h>
> >  #include <linux/reset.h>
> >  #include <linux/usb/ohci_pdriver.h>
> >  #include <linux/usb.h>
> > @@ -51,6 +52,10 @@ static int ohci_platform_power_on(struct platform_device *dev)
> >  	struct ohci_platform_priv *priv = hcd_to_ohci_priv(hcd);
> >  	int clk, ret, phy_num;
> >  
> > +	ret = pm_runtime_get_sync(&dev->dev);
> > +	if (ret < 0)
> > +		return ret;
> > +
> >  	for (clk = 0; clk < OHCI_MAX_CLKS && priv->clks[clk]; clk++) {
> >  		ret = clk_prepare_enable(priv->clks[clk]);
> >  		if (ret)
> > @@ -96,6 +101,8 @@ static void ohci_platform_power_off(struct platform_device *dev)
> >  	for (clk = OHCI_MAX_CLKS - 1; clk >= 0; clk--)
> >  		if (priv->clks[clk])
> >  			clk_disable_unprepare(priv->clks[clk]);
> > +
> > +	pm_runtime_put_sync(&dev->dev);
> >  }
> 
> ohci_platform_power_on() is invoked (by default) by the runtime-resume
> callback routine ohci_platform_resume(), through the pdata->power_on
> method pointer.  Likewise, ohci_platform_power_off() is invoked by the
> runtime-suspend callback routine.
> 
> This means you shouldn't do pm_runtime_get/put calls from within these 
> routines.

Oh OK great, so the above should not be needed at all.

> Is there any particular reason you wanted to add these calls?  In
> general, USB host controllers are expected to go into runtime suspend
> whenever there aren't any children keeping them awake.  Hence they
> usually don't need to worry about initiating their own suspends and
> resumes.

No particular reason as it sounds things work without it :) I'll check.

> >  static struct hc_driver __read_mostly ohci_platform_hc_driver;
> > @@ -242,6 +249,7 @@ static int ohci_platform_probe(struct platform_device *dev)
> >  	}
> >  #endif
> >  
> > +	pm_runtime_enable(&dev->dev);
> 
> There should be a pm_runtime_set_active() just before this.

OK

> >  	if (pdata->power_on) {
> >  		err = pdata->power_on(dev);
> >  		if (err < 0)
> > @@ -271,6 +279,7 @@ static int ohci_platform_probe(struct platform_device *dev)
> >  	if (pdata->power_off)
> >  		pdata->power_off(dev);
> >  err_reset:
> > +	pm_runtime_disable(&dev->dev);
> >  	while (--rst >= 0)
> >  		reset_control_assert(priv->resets[rst]);
> >  err_put_clks:
> > @@ -305,6 +314,8 @@ static int ohci_platform_remove(struct platform_device *dev)
> >  
> >  	usb_put_hcd(hcd);
> >  
> > +	pm_runtime_disable(&dev->dev);
> > +
> >  	if (pdata == &ohci_platform_defaults)
> >  		dev->dev.platform_data = NULL;
> 
> These changes make sense.

OK thanks for looking.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-05-18 15:52 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-17 22:59 [PATCH 0/4] Make ohci-platform usable for omap3/4/5 Tony Lindgren
     [not found] ` <20170517225922.17723-1-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-05-17 22:59   ` [PATCH 1/4] usb: host: ohci-platform: Add basic runtime PM support Tony Lindgren
     [not found]     ` <20170517225922.17723-2-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-05-18  9:28       ` Roger Quadros
2017-05-18 15:25       ` Alan Stern
     [not found]         ` <Pine.LNX.4.44L0.1705181114280.1619-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2017-05-18 15:52           ` Tony Lindgren [this message]
2017-05-18 17:21       ` Alan Stern
     [not found]         ` <Pine.LNX.4.44L0.1705181313320.1619-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2017-05-19 17:52           ` Tony Lindgren
2017-05-17 22:59   ` [PATCH 2/4] usb: host: ohci-platform: Add support for omap3 and later Tony Lindgren
     [not found]     ` <20170517225922.17723-3-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-05-18  9:28       ` Roger Quadros
2017-05-18 15:38       ` Alan Stern
     [not found]         ` <Pine.LNX.4.44L0.1705181137310.1619-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2017-05-18 15:46           ` Tony Lindgren
2017-05-17 22:59   ` [PATCH 3/4] usb: host: ohci-omap3: Print warning to get people to use ohci-platform Tony Lindgren
     [not found]     ` <20170517225922.17723-4-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-05-18  9:15       ` Sebastian Reichel
2017-05-18 14:08         ` Tony Lindgren
     [not found]           ` <20170518140857.GA10472-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-05-18 17:21             ` Sebastian Reichel
2017-05-19 17:39               ` Tony Lindgren
2017-05-18 15:47       ` Alan Stern
2017-05-17 22:59   ` [PATCH 4/4] ARM: dts: Add remote-wakeup-connected for omap OHCI Tony Lindgren
     [not found]     ` <20170517225922.17723-5-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-05-18  9:28       ` Roger Quadros
2017-05-18 15:49       ` Alan Stern

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=20170518155237.GD10472@atomide.com \
    --to=tony-4v6ys6ai5vpbdgjk7y7tuq@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=rogerq-l0cyMroinI0@public.gmane.org \
    --cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
    --cc=yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org \
    /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.