linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] spi: Support dev_pm_ops
@ 2010-12-22 13:25 Mark Brown
       [not found] ` <1293024339-26589-1-git-send-email-broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Mark Brown @ 2010-12-22 13:25 UTC (permalink / raw)
  To: Grant Likely, Rafael J. Wysocki
  Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Mark Brown

Allow SPI drivers to use runtime PM and other dev_pm_ops features by
implementing dev_pm_ops for the bus. The existing bus specific suspend
and resume functions will be called if a driver does not provide dev_pm_ops
allowing for transition to the new model.

Signed-off-by: Mark Brown <broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
---

This depends on the patch 'PM: Prototype the pm_generic_ operations' I
posted recently to the PM and I2C lists, and has not exactly been
thoroughly tested yet.

 drivers/spi/spi.c |   92 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 84 insertions(+), 8 deletions(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 709c836..85ad4b7 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -28,6 +28,7 @@
 #include <linux/mod_devicetable.h>
 #include <linux/spi/spi.h>
 #include <linux/of_spi.h>
+#include <linux/pm_runtime.h>
 
 static void spidev_release(struct device *dev)
 {
@@ -100,9 +101,8 @@ static int spi_uevent(struct device *dev, struct kobj_uevent_env *env)
 	return 0;
 }
 
-#ifdef	CONFIG_PM
-
-static int spi_suspend(struct device *dev, pm_message_t message)
+#ifdef CONFIG_PM_SLEEP
+static int spi_legacy_suspend(struct device *dev, pm_message_t message)
 {
 	int			value = 0;
 	struct spi_driver	*drv = to_spi_driver(dev->driver);
@@ -117,7 +117,7 @@ static int spi_suspend(struct device *dev, pm_message_t message)
 	return value;
 }
 
-static int spi_resume(struct device *dev)
+static int spi_legacy_resume(struct device *dev)
 {
 	int			value = 0;
 	struct spi_driver	*drv = to_spi_driver(dev->driver);
@@ -132,18 +132,94 @@ static int spi_resume(struct device *dev)
 	return value;
 }
 
+static int spi_pm_suspend(struct device *dev)
+{
+	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+
+	if (pm)
+		return pm_generic_suspend(dev);
+	else
+		return spi_legacy_suspend(dev, PMSG_SUSPEND);
+}
+
+static int spi_pm_resume(struct device *dev)
+{
+	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+
+	if (pm)
+		return pm_generic_resume(dev);
+	else
+		return spi_legacy_resume(dev);
+}
+
+static int spi_pm_freeze(struct device *dev)
+{
+	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+
+	if (pm)
+		return pm_generic_freeze(dev);
+	else
+		return spi_legacy_suspend(dev, PMSG_FREEZE);
+}
+
+static int spi_pm_thaw(struct device *dev)
+{
+	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+
+	if (pm)
+		return pm_generic_thaw(dev);
+	else
+		return spi_legacy_resume(dev);
+}
+
+static int spi_pm_poweroff(struct device *dev)
+{
+	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+
+	if (pm)
+		return pm_generic_poweroff(dev);
+	else
+		return spi_legacy_suspend(dev, PMSG_HIBERNATE);
+}
+
+static int spi_pm_restore(struct device *dev)
+{
+	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+
+	if (pm)
+		return pm_generic_restore(dev);
+	else
+		return spi_legacy_resume(dev);
+}
 #else
-#define spi_suspend	NULL
-#define spi_resume	NULL
+#define spi_pm_suspend	NULL
+#define spi_pm_resume	NULL
+#define spi_pm_freeze	NULL
+#define spi_pm_thaw	NULL
+#define spi_pm_poweroff	NULL
+#define spi_pm_restore	NULL
 #endif
 
+static const struct dev_pm_ops spi_pm = {
+	.suspend = spi_pm_suspend,
+	.resume = spi_pm_resume,
+	.freeze = spi_pm_freeze,
+	.thaw = spi_pm_thaw,
+	.poweroff = spi_pm_poweroff,
+	.restore = spi_pm_restore,
+	SET_RUNTIME_PM_OPS(
+		pm_generic_runtime_suspend,
+		pm_generic_runtime_resume,
+		pm_generic_runtime_idle
+	)
+};
+
 struct bus_type spi_bus_type = {
 	.name		= "spi",
 	.dev_attrs	= spi_dev_attrs,
 	.match		= spi_match_device,
 	.uevent		= spi_uevent,
-	.suspend	= spi_suspend,
-	.resume		= spi_resume,
+	.pm		= &spi_pm,
 };
 EXPORT_SYMBOL_GPL(spi_bus_type);
 
-- 
1.7.2.3


------------------------------------------------------------------------------
Forrester recently released a report on the Return on Investment (ROI) of
Google Apps. They found a 300% ROI, 38%-56% cost savings, and break-even
within 7 months.  Over 3 million businesses have gone Google with Google Apps:
an online email calendar, and document program that's accessible from your 
browser. Read the Forrester report: http://p.sf.net/sfu/googleapps-sfnew

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] spi: Support dev_pm_ops
       [not found] ` <1293024339-26589-1-git-send-email-broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
@ 2010-12-22 13:28   ` Rafael J. Wysocki
       [not found]     ` <201012221428.24040.rjw-KKrjLPT3xs0@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Rafael J. Wysocki @ 2010-12-22 13:28 UTC (permalink / raw)
  To: Mark Brown; +Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

On Wednesday, December 22, 2010, Mark Brown wrote:
> Allow SPI drivers to use runtime PM and other dev_pm_ops features by
> implementing dev_pm_ops for the bus. The existing bus specific suspend
> and resume functions will be called if a driver does not provide dev_pm_ops
> allowing for transition to the new model.
> 
> Signed-off-by: Mark Brown <broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>

It looks good to me.

Thanks,
Rafael


> ---
> 
> This depends on the patch 'PM: Prototype the pm_generic_ operations' I
> posted recently to the PM and I2C lists, and has not exactly been
> thoroughly tested yet.
> 
>  drivers/spi/spi.c |   92 ++++++++++++++++++++++++++++++++++++++++++++++++-----
>  1 files changed, 84 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index 709c836..85ad4b7 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -28,6 +28,7 @@
>  #include <linux/mod_devicetable.h>
>  #include <linux/spi/spi.h>
>  #include <linux/of_spi.h>
> +#include <linux/pm_runtime.h>
>  
>  static void spidev_release(struct device *dev)
>  {
> @@ -100,9 +101,8 @@ static int spi_uevent(struct device *dev, struct kobj_uevent_env *env)
>  	return 0;
>  }
>  
> -#ifdef	CONFIG_PM
> -
> -static int spi_suspend(struct device *dev, pm_message_t message)
> +#ifdef CONFIG_PM_SLEEP
> +static int spi_legacy_suspend(struct device *dev, pm_message_t message)
>  {
>  	int			value = 0;
>  	struct spi_driver	*drv = to_spi_driver(dev->driver);
> @@ -117,7 +117,7 @@ static int spi_suspend(struct device *dev, pm_message_t message)
>  	return value;
>  }
>  
> -static int spi_resume(struct device *dev)
> +static int spi_legacy_resume(struct device *dev)
>  {
>  	int			value = 0;
>  	struct spi_driver	*drv = to_spi_driver(dev->driver);
> @@ -132,18 +132,94 @@ static int spi_resume(struct device *dev)
>  	return value;
>  }
>  
> +static int spi_pm_suspend(struct device *dev)
> +{
> +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> +
> +	if (pm)
> +		return pm_generic_suspend(dev);
> +	else
> +		return spi_legacy_suspend(dev, PMSG_SUSPEND);
> +}
> +
> +static int spi_pm_resume(struct device *dev)
> +{
> +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> +
> +	if (pm)
> +		return pm_generic_resume(dev);
> +	else
> +		return spi_legacy_resume(dev);
> +}
> +
> +static int spi_pm_freeze(struct device *dev)
> +{
> +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> +
> +	if (pm)
> +		return pm_generic_freeze(dev);
> +	else
> +		return spi_legacy_suspend(dev, PMSG_FREEZE);
> +}
> +
> +static int spi_pm_thaw(struct device *dev)
> +{
> +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> +
> +	if (pm)
> +		return pm_generic_thaw(dev);
> +	else
> +		return spi_legacy_resume(dev);
> +}
> +
> +static int spi_pm_poweroff(struct device *dev)
> +{
> +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> +
> +	if (pm)
> +		return pm_generic_poweroff(dev);
> +	else
> +		return spi_legacy_suspend(dev, PMSG_HIBERNATE);
> +}
> +
> +static int spi_pm_restore(struct device *dev)
> +{
> +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> +
> +	if (pm)
> +		return pm_generic_restore(dev);
> +	else
> +		return spi_legacy_resume(dev);
> +}
>  #else
> -#define spi_suspend	NULL
> -#define spi_resume	NULL
> +#define spi_pm_suspend	NULL
> +#define spi_pm_resume	NULL
> +#define spi_pm_freeze	NULL
> +#define spi_pm_thaw	NULL
> +#define spi_pm_poweroff	NULL
> +#define spi_pm_restore	NULL
>  #endif
>  
> +static const struct dev_pm_ops spi_pm = {
> +	.suspend = spi_pm_suspend,
> +	.resume = spi_pm_resume,
> +	.freeze = spi_pm_freeze,
> +	.thaw = spi_pm_thaw,
> +	.poweroff = spi_pm_poweroff,
> +	.restore = spi_pm_restore,
> +	SET_RUNTIME_PM_OPS(
> +		pm_generic_runtime_suspend,
> +		pm_generic_runtime_resume,
> +		pm_generic_runtime_idle
> +	)
> +};
> +
>  struct bus_type spi_bus_type = {
>  	.name		= "spi",
>  	.dev_attrs	= spi_dev_attrs,
>  	.match		= spi_match_device,
>  	.uevent		= spi_uevent,
> -	.suspend	= spi_suspend,
> -	.resume		= spi_resume,
> +	.pm		= &spi_pm,
>  };
>  EXPORT_SYMBOL_GPL(spi_bus_type);
>  
> 


------------------------------------------------------------------------------
Forrester recently released a report on the Return on Investment (ROI) of
Google Apps. They found a 300% ROI, 38%-56% cost savings, and break-even
within 7 months.  Over 3 million businesses have gone Google with Google Apps:
an online email calendar, and document program that's accessible from your 
browser. Read the Forrester report: http://p.sf.net/sfu/googleapps-sfnew

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] spi: Support dev_pm_ops
       [not found]     ` <201012221428.24040.rjw-KKrjLPT3xs0@public.gmane.org>
@ 2010-12-24  8:52       ` Grant Likely
       [not found]         ` <20101224085255.GE5544-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Grant Likely @ 2010-12-24  8:52 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Mark Brown

On Wed, Dec 22, 2010 at 02:28:23PM +0100, Rafael J. Wysocki wrote:
> On Wednesday, December 22, 2010, Mark Brown wrote:
> > Allow SPI drivers to use runtime PM and other dev_pm_ops features by
> > implementing dev_pm_ops for the bus. The existing bus specific suspend
> > and resume functions will be called if a driver does not provide dev_pm_ops
> > allowing for transition to the new model.
> > 
> > Signed-off-by: Mark Brown <broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
> 
> It looks good to me.

I'll take that as an ack.

picked up for -next, thanks.

g.

> 
> Thanks,
> Rafael
> 
> 
> > ---
> > 
> > This depends on the patch 'PM: Prototype the pm_generic_ operations' I
> > posted recently to the PM and I2C lists, and has not exactly been
> > thoroughly tested yet.
> > 
> >  drivers/spi/spi.c |   92 ++++++++++++++++++++++++++++++++++++++++++++++++-----
> >  1 files changed, 84 insertions(+), 8 deletions(-)
> > 
> > diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> > index 709c836..85ad4b7 100644
> > --- a/drivers/spi/spi.c
> > +++ b/drivers/spi/spi.c
> > @@ -28,6 +28,7 @@
> >  #include <linux/mod_devicetable.h>
> >  #include <linux/spi/spi.h>
> >  #include <linux/of_spi.h>
> > +#include <linux/pm_runtime.h>
> >  
> >  static void spidev_release(struct device *dev)
> >  {
> > @@ -100,9 +101,8 @@ static int spi_uevent(struct device *dev, struct kobj_uevent_env *env)
> >  	return 0;
> >  }
> >  
> > -#ifdef	CONFIG_PM
> > -
> > -static int spi_suspend(struct device *dev, pm_message_t message)
> > +#ifdef CONFIG_PM_SLEEP
> > +static int spi_legacy_suspend(struct device *dev, pm_message_t message)
> >  {
> >  	int			value = 0;
> >  	struct spi_driver	*drv = to_spi_driver(dev->driver);
> > @@ -117,7 +117,7 @@ static int spi_suspend(struct device *dev, pm_message_t message)
> >  	return value;
> >  }
> >  
> > -static int spi_resume(struct device *dev)
> > +static int spi_legacy_resume(struct device *dev)
> >  {
> >  	int			value = 0;
> >  	struct spi_driver	*drv = to_spi_driver(dev->driver);
> > @@ -132,18 +132,94 @@ static int spi_resume(struct device *dev)
> >  	return value;
> >  }
> >  
> > +static int spi_pm_suspend(struct device *dev)
> > +{
> > +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> > +
> > +	if (pm)
> > +		return pm_generic_suspend(dev);
> > +	else
> > +		return spi_legacy_suspend(dev, PMSG_SUSPEND);
> > +}
> > +
> > +static int spi_pm_resume(struct device *dev)
> > +{
> > +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> > +
> > +	if (pm)
> > +		return pm_generic_resume(dev);
> > +	else
> > +		return spi_legacy_resume(dev);
> > +}
> > +
> > +static int spi_pm_freeze(struct device *dev)
> > +{
> > +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> > +
> > +	if (pm)
> > +		return pm_generic_freeze(dev);
> > +	else
> > +		return spi_legacy_suspend(dev, PMSG_FREEZE);
> > +}
> > +
> > +static int spi_pm_thaw(struct device *dev)
> > +{
> > +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> > +
> > +	if (pm)
> > +		return pm_generic_thaw(dev);
> > +	else
> > +		return spi_legacy_resume(dev);
> > +}
> > +
> > +static int spi_pm_poweroff(struct device *dev)
> > +{
> > +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> > +
> > +	if (pm)
> > +		return pm_generic_poweroff(dev);
> > +	else
> > +		return spi_legacy_suspend(dev, PMSG_HIBERNATE);
> > +}
> > +
> > +static int spi_pm_restore(struct device *dev)
> > +{
> > +	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
> > +
> > +	if (pm)
> > +		return pm_generic_restore(dev);
> > +	else
> > +		return spi_legacy_resume(dev);
> > +}
> >  #else
> > -#define spi_suspend	NULL
> > -#define spi_resume	NULL
> > +#define spi_pm_suspend	NULL
> > +#define spi_pm_resume	NULL
> > +#define spi_pm_freeze	NULL
> > +#define spi_pm_thaw	NULL
> > +#define spi_pm_poweroff	NULL
> > +#define spi_pm_restore	NULL
> >  #endif
> >  
> > +static const struct dev_pm_ops spi_pm = {
> > +	.suspend = spi_pm_suspend,
> > +	.resume = spi_pm_resume,
> > +	.freeze = spi_pm_freeze,
> > +	.thaw = spi_pm_thaw,
> > +	.poweroff = spi_pm_poweroff,
> > +	.restore = spi_pm_restore,
> > +	SET_RUNTIME_PM_OPS(
> > +		pm_generic_runtime_suspend,
> > +		pm_generic_runtime_resume,
> > +		pm_generic_runtime_idle
> > +	)
> > +};
> > +
> >  struct bus_type spi_bus_type = {
> >  	.name		= "spi",
> >  	.dev_attrs	= spi_dev_attrs,
> >  	.match		= spi_match_device,
> >  	.uevent		= spi_uevent,
> > -	.suspend	= spi_suspend,
> > -	.resume		= spi_resume,
> > +	.pm		= &spi_pm,
> >  };
> >  EXPORT_SYMBOL_GPL(spi_bus_type);
> >  
> > 
> 

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] spi: Support dev_pm_ops
       [not found]         ` <20101224085255.GE5544-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
@ 2010-12-24 11:31           ` Mark Brown
       [not found]             ` <20101224113127.GA15474-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Mark Brown @ 2010-12-24 11:31 UTC (permalink / raw)
  To: Grant Likely
  Cc: Rafael J. Wysocki, spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

On Fri, Dec 24, 2010 at 01:52:55AM -0700, Grant Likely wrote:
> On Wed, Dec 22, 2010 at 02:28:23PM +0100, Rafael J. Wysocki wrote:

> > > Allow SPI drivers to use runtime PM and other dev_pm_ops features by
> > > implementing dev_pm_ops for the bus. The existing bus specific suspend
> > > and resume functions will be called if a driver does not provide dev_pm_ops
> > > allowing for transition to the new model.
> > > 
> > > Signed-off-by: Mark Brown <broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>

> > It looks good to me.

> I'll take that as an ack.

> picked up for -next, thanks.

Note that as mentioned it does depend on the patch prototyping the
generic ops so it might be better to merge via the PM tree or wait for
things to shake out in the merge window.

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] spi: Support dev_pm_ops
       [not found]             ` <20101224113127.GA15474-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
@ 2010-12-24 13:28               ` Rafael J. Wysocki
       [not found]                 ` <201012241428.37152.rjw-KKrjLPT3xs0@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Rafael J. Wysocki @ 2010-12-24 13:28 UTC (permalink / raw)
  To: Mark Brown; +Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

On Friday, December 24, 2010, Mark Brown wrote:
> On Fri, Dec 24, 2010 at 01:52:55AM -0700, Grant Likely wrote:
> > On Wed, Dec 22, 2010 at 02:28:23PM +0100, Rafael J. Wysocki wrote:
> 
> > > > Allow SPI drivers to use runtime PM and other dev_pm_ops features by
> > > > implementing dev_pm_ops for the bus. The existing bus specific suspend
> > > > and resume functions will be called if a driver does not provide dev_pm_ops
> > > > allowing for transition to the new model.
> > > > 
> > > > Signed-off-by: Mark Brown <broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
> 
> > > It looks good to me.
> 
> > I'll take that as an ack.
> 
> > picked up for -next, thanks.
> 
> Note that as mentioned it does depend on the patch prototyping the
> generic ops so it might be better to merge via the PM tree or wait for
> things to shake out in the merge window.

I can take this one the the PM tree, but I need an ACK from Grant.

Thanks,
Rafael

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] spi: Support dev_pm_ops
       [not found]                 ` <201012241428.37152.rjw-KKrjLPT3xs0@public.gmane.org>
@ 2010-12-24 18:23                   ` Grant Likely
       [not found]                     ` <AANLkTim6uhaO8=oWDvufG7yOyyy+UvcGFAqZHX_u2D6x-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Grant Likely @ 2010-12-24 18:23 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Mark Brown

On Fri, Dec 24, 2010 at 6:28 AM, Rafael J. Wysocki <rjw-KKrjLPT3xs0@public.gmane.org> wrote:
> On Friday, December 24, 2010, Mark Brown wrote:
>> On Fri, Dec 24, 2010 at 01:52:55AM -0700, Grant Likely wrote:
>> > On Wed, Dec 22, 2010 at 02:28:23PM +0100, Rafael J. Wysocki wrote:
>>
>> > > > Allow SPI drivers to use runtime PM and other dev_pm_ops features by
>> > > > implementing dev_pm_ops for the bus. The existing bus specific suspend
>> > > > and resume functions will be called if a driver does not provide dev_pm_ops
>> > > > allowing for transition to the new model.
>> > > >
>> > > > Signed-off-by: Mark Brown <broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
>>
>> > > It looks good to me.
>>
>> > I'll take that as an ack.
>>
>> > picked up for -next, thanks.
>>
>> Note that as mentioned it does depend on the patch prototyping the
>> generic ops so it might be better to merge via the PM tree or wait for
>> things to shake out in the merge window.
>
> I can take this one the the PM tree, but I need an ACK from Grant.

Yeah, it failed on sanity testing on my end.  Dropping from my tree.
Rafael, feel free to take it via the PM tree.

g.

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] spi: Support dev_pm_ops
       [not found]                     ` <AANLkTim6uhaO8=oWDvufG7yOyyy+UvcGFAqZHX_u2D6x-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2010-12-25 13:55                       ` Rafael J. Wysocki
  0 siblings, 0 replies; 7+ messages in thread
From: Rafael J. Wysocki @ 2010-12-25 13:55 UTC (permalink / raw)
  To: Grant Likely
  Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Mark Brown

On Friday, December 24, 2010, Grant Likely wrote:
> On Fri, Dec 24, 2010 at 6:28 AM, Rafael J. Wysocki <rjw-KKrjLPT3xs0@public.gmane.org> wrote:
> > On Friday, December 24, 2010, Mark Brown wrote:
> >> On Fri, Dec 24, 2010 at 01:52:55AM -0700, Grant Likely wrote:
> >> > On Wed, Dec 22, 2010 at 02:28:23PM +0100, Rafael J. Wysocki wrote:
> >>
> >> > > > Allow SPI drivers to use runtime PM and other dev_pm_ops features by
> >> > > > implementing dev_pm_ops for the bus. The existing bus specific suspend
> >> > > > and resume functions will be called if a driver does not provide dev_pm_ops
> >> > > > allowing for transition to the new model.
> >> > > >
> >> > > > Signed-off-by: Mark Brown <broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
> >>
> >> > > It looks good to me.
> >>
> >> > I'll take that as an ack.
> >>
> >> > picked up for -next, thanks.
> >>
> >> Note that as mentioned it does depend on the patch prototyping the
> >> generic ops so it might be better to merge via the PM tree or wait for
> >> things to shake out in the merge window.
> >
> > I can take this one the the PM tree, but I need an ACK from Grant.
> 
> Yeah, it failed on sanity testing on my end.  Dropping from my tree.
> Rafael, feel free to take it via the PM tree.

OK, I'm taking that as an ACK. :-)

Thanks,
Rafael

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-12-25 13:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-22 13:25 [PATCH] spi: Support dev_pm_ops Mark Brown
     [not found] ` <1293024339-26589-1-git-send-email-broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2010-12-22 13:28   ` Rafael J. Wysocki
     [not found]     ` <201012221428.24040.rjw-KKrjLPT3xs0@public.gmane.org>
2010-12-24  8:52       ` Grant Likely
     [not found]         ` <20101224085255.GE5544-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2010-12-24 11:31           ` Mark Brown
     [not found]             ` <20101224113127.GA15474-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2010-12-24 13:28               ` Rafael J. Wysocki
     [not found]                 ` <201012241428.37152.rjw-KKrjLPT3xs0@public.gmane.org>
2010-12-24 18:23                   ` Grant Likely
     [not found]                     ` <AANLkTim6uhaO8=oWDvufG7yOyyy+UvcGFAqZHX_u2D6x-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-12-25 13:55                       ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).