* [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops
@ 2012-11-09 7:27 Aaron Lu
2012-11-09 7:27 ` [PATCH v4 1/5] sd: put to stopped power state when runtime suspend Aaron Lu
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Aaron Lu @ 2012-11-09 7:27 UTC (permalink / raw)
To: James Bottomley
Cc: Alan Stern, Rafael J. Wysocki, linux-pm, linux-scsi, Aaron Lu,
Aaron Lu
This patchset has been quiet for a while, so resend them.
v4:
Only Patch 4 is modified:
Fixed a line over 80 characters warning by checkpatch.pl;
Update the changelog so that it is no more a try :-)
v3:
Only patch 4 is modified:
Remove the special case for system freeze in scsi_bus_suspend_common
as pointed out by Alan Stern;
Updated some comments;
Removed the use of typedef (*pm_callback_t)(struct device *).
v2:
Change the runtime suspend behaviour of sd driver by putting the device
into stopped power state.
Revert 2 patches which are no longer needed as pointed out by Alan Stern.
Find out device callbacks in bus callbacks as suggested by Alan Stern.
Due to these changes, patch number grows from 2 -> 5.
v1:
The 2 patches will migrate SCSI drivers to use the pm callbacks defined
in dev_pm_ops as pm_message is deprecated and should not be used by driver.
Bus level callback is changed to use callbacks defined in dev_pm_ops when
needed and sd's pm callback is updated to use what are defined in dev_pm_ops.
Aaron Lu (5):
sd: put to stopped power state when runtime suspend
Revert "[SCSI] scsi_pm: set device runtime state before parent
suspended"
Revert "[SCSI] runtime resume parent for child's system-resume"
pm: use callbacks from dev_pm_ops for scsi devices
sd: update sd to use the new pm callbacks
drivers/scsi/scsi_pm.c | 98 +++++++++++++++++++++++++++-----------------------
drivers/scsi/sd.c | 18 +++++++---
2 files changed, 67 insertions(+), 49 deletions(-)
--
1.7.12.21.g871e293
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v4 1/5] sd: put to stopped power state when runtime suspend
2012-11-09 7:27 [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
@ 2012-11-09 7:27 ` Aaron Lu
2012-11-09 7:27 ` [PATCH v4 2/5] Revert "[SCSI] scsi_pm: set device runtime state before parent suspended" Aaron Lu
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Aaron Lu @ 2012-11-09 7:27 UTC (permalink / raw)
To: James Bottomley
Cc: Alan Stern, Rafael J. Wysocki, linux-pm, linux-scsi, Aaron Lu,
Aaron Lu
When device is runtime suspended, put it to stopped power state to save
some power.
This will also make the behaviour consistent with what the scsi_pm.c
thinks about sd as the comment says:
sd treats runtime suspend, system suspend and system hibernate identical.
With this patch, it is now identical.
And sd_shutdown will also do nothing when it finds the device has been
runtime suspended, if we do not spin down the disk in runtime suspend
by putting it into stopped power state, the disk will be shut down
incorrectly.
And the the same problem can be solved for runtime power off after
runtime suspended case by this change.
With the current runtime scheme for disk, it will only be runtime
suspended when no process opens the disk, so this shouldn't happen a
lot, which makes it acceptable to spin down the disk when runtime
suspended. If some day a more aggressive runtime scheme is used, like
the 'request based runtime pm for disk' that Alan Stern and Lin Ming
has been working, we can introduce some policy to control this. But for
now, make it simple and correct by spinning down the disk.
Signed-off-by: Aaron Lu <aaron.lu@intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
---
drivers/scsi/sd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 12f6fdf..8b6e004 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2911,7 +2911,8 @@ static int sd_suspend(struct device *dev, pm_message_t mesg)
goto done;
}
- if ((mesg.event & PM_EVENT_SLEEP) && sdkp->device->manage_start_stop) {
+ if (((mesg.event & PM_EVENT_SLEEP) || PMSG_IS_AUTO(mesg)) &&
+ sdkp->device->manage_start_stop) {
sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n");
ret = sd_start_stop_device(sdkp, 0);
}
--
1.7.12.21.g871e293
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 2/5] Revert "[SCSI] scsi_pm: set device runtime state before parent suspended"
2012-11-09 7:27 [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
2012-11-09 7:27 ` [PATCH v4 1/5] sd: put to stopped power state when runtime suspend Aaron Lu
@ 2012-11-09 7:27 ` Aaron Lu
2012-11-09 7:27 ` [PATCH v4 3/5] Revert "[SCSI] runtime resume parent for child's system-resume" Aaron Lu
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Aaron Lu @ 2012-11-09 7:27 UTC (permalink / raw)
To: James Bottomley
Cc: Alan Stern, Rafael J. Wysocki, linux-pm, linux-scsi, Aaron Lu,
Aaron Lu
This reverts commit 33a2285d96b5e7b9500612ec623bf4313397bb53.
With commit 88d26136a256576e444db312179e17af6dd0ea87 (PM: Prevent
runtime suspend during system resume), this patch is no longer needed.
Signed-off-by: Aaron Lu <aaron.lu@intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
---
drivers/scsi/scsi_pm.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index dc0ad85..d4201de 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -76,24 +76,23 @@ static int scsi_bus_resume_common(struct device *dev)
{
int err = 0;
- /*
- * Parent device may have runtime suspended as soon as
- * it is woken up during the system resume.
- *
- * Resume it on behalf of child.
- */
- pm_runtime_get_sync(dev->parent);
-
- if (scsi_is_sdev_device(dev))
+ if (scsi_is_sdev_device(dev)) {
+ /*
+ * Parent device may have runtime suspended as soon as
+ * it is woken up during the system resume.
+ *
+ * Resume it on behalf of child.
+ */
+ pm_runtime_get_sync(dev->parent);
err = scsi_dev_type_resume(dev);
+ pm_runtime_put_sync(dev->parent);
+ }
+
if (err == 0) {
pm_runtime_disable(dev);
pm_runtime_set_active(dev);
pm_runtime_enable(dev);
}
-
- pm_runtime_put_sync(dev->parent);
-
return err;
}
--
1.7.12.21.g871e293
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 3/5] Revert "[SCSI] runtime resume parent for child's system-resume"
2012-11-09 7:27 [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
2012-11-09 7:27 ` [PATCH v4 1/5] sd: put to stopped power state when runtime suspend Aaron Lu
2012-11-09 7:27 ` [PATCH v4 2/5] Revert "[SCSI] scsi_pm: set device runtime state before parent suspended" Aaron Lu
@ 2012-11-09 7:27 ` Aaron Lu
2012-11-09 7:27 ` [PATCH v4 4/5] pm: use callbacks from dev_pm_ops for scsi devices Aaron Lu
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Aaron Lu @ 2012-11-09 7:27 UTC (permalink / raw)
To: James Bottomley
Cc: Alan Stern, Rafael J. Wysocki, linux-pm, linux-scsi, Aaron Lu,
Aaron Lu
This reverts commit 28fd00d42cca178638f51c08efa986a777c24a4b.
With commit 88d26136a256576e444db312179e17af6dd0ea87 (PM: Prevent
runtime suspend during system resume), this patch is no longer needed.
Signed-off-by: Aaron Lu <aaron.lu@intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
---
drivers/scsi/scsi_pm.c | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index d4201de..9923b26 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -76,17 +76,8 @@ static int scsi_bus_resume_common(struct device *dev)
{
int err = 0;
- if (scsi_is_sdev_device(dev)) {
- /*
- * Parent device may have runtime suspended as soon as
- * it is woken up during the system resume.
- *
- * Resume it on behalf of child.
- */
- pm_runtime_get_sync(dev->parent);
+ if (scsi_is_sdev_device(dev))
err = scsi_dev_type_resume(dev);
- pm_runtime_put_sync(dev->parent);
- }
if (err == 0) {
pm_runtime_disable(dev);
--
1.7.12.21.g871e293
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 4/5] pm: use callbacks from dev_pm_ops for scsi devices
2012-11-09 7:27 [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
` (2 preceding siblings ...)
2012-11-09 7:27 ` [PATCH v4 3/5] Revert "[SCSI] runtime resume parent for child's system-resume" Aaron Lu
@ 2012-11-09 7:27 ` Aaron Lu
2012-11-09 7:27 ` [PATCH v4 5/5] sd: update sd to use the new pm callbacks Aaron Lu
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Aaron Lu @ 2012-11-09 7:27 UTC (permalink / raw)
To: James Bottomley
Cc: Alan Stern, Rafael J. Wysocki, linux-pm, linux-scsi, Aaron Lu,
Aaron Lu
Use of pm_message_t is deprecated and device driver is not supposed
to use that. This patch migrates the SCSI bus level pm callbacks
to call device's pm callbacks defined in its driver's dev_pm_ops.
This is achieved by finding out which device pm callback should be used
in bus callback function, and then pass that callback function pointer
as a param to the scsi_bus_{suspend,resume}_common routine, which will
further pass that callback to scsi_dev_type_{suspend,resume} after
proper handling.
The special case for freeze in scsi_bus_suspend_common is not necessary
since there is no high level SCSI driver has implemented freeze, so no
need to runtime resume the device if it is in runtime suspended state
for system freeze, just return like the system suspend/hibernate case.
Since only sd has implemented drv->suspend/drv->resume, and I'll update
sd driver to use the new callbacks in the following patch, there is no
need to fallback to call drv->suspend/drv->resume if dev_pm_ops is NULL.
Signed-off-by: Aaron Lu <aaron.lu@intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
---
drivers/scsi/scsi_pm.c | 86 +++++++++++++++++++++++++++++++-------------------
1 file changed, 53 insertions(+), 33 deletions(-)
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index 9923b26..8f6b12c 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -16,16 +16,14 @@
#include "scsi_priv.h"
-static int scsi_dev_type_suspend(struct device *dev, pm_message_t msg)
+static int scsi_dev_type_suspend(struct device *dev, int (*cb)(struct device *))
{
- struct device_driver *drv;
int err;
err = scsi_device_quiesce(to_scsi_device(dev));
if (err == 0) {
- drv = dev->driver;
- if (drv && drv->suspend) {
- err = drv->suspend(dev, msg);
+ if (cb) {
+ err = cb(dev);
if (err)
scsi_device_resume(to_scsi_device(dev));
}
@@ -34,14 +32,12 @@ static int scsi_dev_type_suspend(struct device *dev, pm_message_t msg)
return err;
}
-static int scsi_dev_type_resume(struct device *dev)
+static int scsi_dev_type_resume(struct device *dev, int (*cb)(struct device *))
{
- struct device_driver *drv;
int err = 0;
- drv = dev->driver;
- if (drv && drv->resume)
- err = drv->resume(dev);
+ if (cb)
+ err = cb(dev);
scsi_device_resume(to_scsi_device(dev));
dev_dbg(dev, "scsi resume: %d\n", err);
return err;
@@ -49,35 +45,33 @@ static int scsi_dev_type_resume(struct device *dev)
#ifdef CONFIG_PM_SLEEP
-static int scsi_bus_suspend_common(struct device *dev, pm_message_t msg)
+static int
+scsi_bus_suspend_common(struct device *dev, int (*cb)(struct device *))
{
int err = 0;
if (scsi_is_sdev_device(dev)) {
/*
- * sd is the only high-level SCSI driver to implement runtime
- * PM, and sd treats runtime suspend, system suspend, and
- * system hibernate identically (but not system freeze).
+ * All the high-level SCSI drivers that implement runtime
+ * PM treat runtime suspend, system suspend, and system
+ * hibernate identically.
*/
- if (pm_runtime_suspended(dev)) {
- if (msg.event == PM_EVENT_SUSPEND ||
- msg.event == PM_EVENT_HIBERNATE)
- return 0; /* already suspended */
+ if (pm_runtime_suspended(dev))
+ return 0;
- /* wake up device so that FREEZE will succeed */
- pm_runtime_resume(dev);
- }
- err = scsi_dev_type_suspend(dev, msg);
+ err = scsi_dev_type_suspend(dev, cb);
}
+
return err;
}
-static int scsi_bus_resume_common(struct device *dev)
+static int
+scsi_bus_resume_common(struct device *dev, int (*cb)(struct device *))
{
int err = 0;
if (scsi_is_sdev_device(dev))
- err = scsi_dev_type_resume(dev);
+ err = scsi_dev_type_resume(dev, cb);
if (err == 0) {
pm_runtime_disable(dev);
@@ -102,26 +96,49 @@ static int scsi_bus_prepare(struct device *dev)
static int scsi_bus_suspend(struct device *dev)
{
- return scsi_bus_suspend_common(dev, PMSG_SUSPEND);
+ const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+ return scsi_bus_suspend_common(dev, pm ? pm->suspend : NULL);
+}
+
+static int scsi_bus_resume(struct device *dev)
+{
+ const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+ return scsi_bus_resume_common(dev, pm ? pm->resume : NULL);
}
static int scsi_bus_freeze(struct device *dev)
{
- return scsi_bus_suspend_common(dev, PMSG_FREEZE);
+ const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+ return scsi_bus_suspend_common(dev, pm ? pm->freeze : NULL);
+}
+
+static int scsi_bus_thaw(struct device *dev)
+{
+ const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+ return scsi_bus_resume_common(dev, pm ? pm->thaw : NULL);
}
static int scsi_bus_poweroff(struct device *dev)
{
- return scsi_bus_suspend_common(dev, PMSG_HIBERNATE);
+ const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+ return scsi_bus_suspend_common(dev, pm ? pm->poweroff : NULL);
+}
+
+static int scsi_bus_restore(struct device *dev)
+{
+ const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+ return scsi_bus_resume_common(dev, pm ? pm->restore : NULL);
}
#else /* CONFIG_PM_SLEEP */
-#define scsi_bus_resume_common NULL
#define scsi_bus_prepare NULL
#define scsi_bus_suspend NULL
+#define scsi_bus_resume NULL
#define scsi_bus_freeze NULL
+#define scsi_bus_thaw NULL
#define scsi_bus_poweroff NULL
+#define scsi_bus_restore NULL
#endif /* CONFIG_PM_SLEEP */
@@ -130,10 +147,12 @@ static int scsi_bus_poweroff(struct device *dev)
static int scsi_runtime_suspend(struct device *dev)
{
int err = 0;
+ const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
dev_dbg(dev, "scsi_runtime_suspend\n");
if (scsi_is_sdev_device(dev)) {
- err = scsi_dev_type_suspend(dev, PMSG_AUTO_SUSPEND);
+ err = scsi_dev_type_suspend(dev,
+ pm ? pm->runtime_suspend : NULL);
if (err == -EAGAIN)
pm_schedule_suspend(dev, jiffies_to_msecs(
round_jiffies_up_relative(HZ/10)));
@@ -147,10 +166,11 @@ static int scsi_runtime_suspend(struct device *dev)
static int scsi_runtime_resume(struct device *dev)
{
int err = 0;
+ const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
dev_dbg(dev, "scsi_runtime_resume\n");
if (scsi_is_sdev_device(dev))
- err = scsi_dev_type_resume(dev);
+ err = scsi_dev_type_resume(dev, pm ? pm->runtime_resume : NULL);
/* Insert hooks here for targets, hosts, and transport classes */
@@ -229,11 +249,11 @@ void scsi_autopm_put_host(struct Scsi_Host *shost)
const struct dev_pm_ops scsi_bus_pm_ops = {
.prepare = scsi_bus_prepare,
.suspend = scsi_bus_suspend,
- .resume = scsi_bus_resume_common,
+ .resume = scsi_bus_resume,
.freeze = scsi_bus_freeze,
- .thaw = scsi_bus_resume_common,
+ .thaw = scsi_bus_thaw,
.poweroff = scsi_bus_poweroff,
- .restore = scsi_bus_resume_common,
+ .restore = scsi_bus_restore,
.runtime_suspend = scsi_runtime_suspend,
.runtime_resume = scsi_runtime_resume,
.runtime_idle = scsi_runtime_idle,
--
1.7.12.21.g871e293
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 5/5] sd: update sd to use the new pm callbacks
2012-11-09 7:27 [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
` (3 preceding siblings ...)
2012-11-09 7:27 ` [PATCH v4 4/5] pm: use callbacks from dev_pm_ops for scsi devices Aaron Lu
@ 2012-11-09 7:27 ` Aaron Lu
2012-11-16 8:43 ` [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
2012-11-21 0:53 ` Rafael J. Wysocki
6 siblings, 0 replies; 8+ messages in thread
From: Aaron Lu @ 2012-11-09 7:27 UTC (permalink / raw)
To: James Bottomley
Cc: Alan Stern, Rafael J. Wysocki, linux-pm, linux-scsi, Aaron Lu,
Aaron Lu
Update sd driver to use the callbacks defined in dev_pm_ops.
sd_freeze is NULL, the bus level callback has taken care of quiescing
the device so there should be nothing needs to be done here.
Consequently, sd_thaw is not needed here either.
suspend, poweroff and runtime suspend share the same routine sd_suspend,
which will sync flush and then stop the drive, this is the same as before.
resume, restore and runtime resume share the same routine sd_resume,
which will start the drive by putting it into active power state, this
is also the same as before.
Signed-off-by: Aaron Lu <aaron.lu@intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
---
drivers/scsi/sd.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 8b6e004..6564305 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -104,7 +104,7 @@ static void sd_unlock_native_capacity(struct gendisk *disk);
static int sd_probe(struct device *);
static int sd_remove(struct device *);
static void sd_shutdown(struct device *);
-static int sd_suspend(struct device *, pm_message_t state);
+static int sd_suspend(struct device *);
static int sd_resume(struct device *);
static void sd_rescan(struct device *);
static int sd_done(struct scsi_cmnd *);
@@ -423,15 +423,23 @@ static struct class sd_disk_class = {
.dev_attrs = sd_disk_attrs,
};
+static const struct dev_pm_ops sd_pm_ops = {
+ .suspend = sd_suspend,
+ .resume = sd_resume,
+ .poweroff = sd_suspend,
+ .restore = sd_resume,
+ .runtime_suspend = sd_suspend,
+ .runtime_resume = sd_resume,
+};
+
static struct scsi_driver sd_template = {
.owner = THIS_MODULE,
.gendrv = {
.name = "sd",
.probe = sd_probe,
.remove = sd_remove,
- .suspend = sd_suspend,
- .resume = sd_resume,
.shutdown = sd_shutdown,
+ .pm = &sd_pm_ops,
},
.rescan = sd_rescan,
.done = sd_done,
@@ -2896,7 +2904,7 @@ exit:
scsi_disk_put(sdkp);
}
-static int sd_suspend(struct device *dev, pm_message_t mesg)
+static int sd_suspend(struct device *dev)
{
struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
int ret = 0;
@@ -2911,8 +2919,7 @@ static int sd_suspend(struct device *dev, pm_message_t mesg)
goto done;
}
- if (((mesg.event & PM_EVENT_SLEEP) || PMSG_IS_AUTO(mesg)) &&
- sdkp->device->manage_start_stop) {
+ if (sdkp->device->manage_start_stop) {
sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n");
ret = sd_start_stop_device(sdkp, 0);
}
--
1.7.12.21.g871e293
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops
2012-11-09 7:27 [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
` (4 preceding siblings ...)
2012-11-09 7:27 ` [PATCH v4 5/5] sd: update sd to use the new pm callbacks Aaron Lu
@ 2012-11-16 8:43 ` Aaron Lu
2012-11-21 0:53 ` Rafael J. Wysocki
6 siblings, 0 replies; 8+ messages in thread
From: Aaron Lu @ 2012-11-16 8:43 UTC (permalink / raw)
To: James Bottomley; +Cc: Alan Stern, Rafael J. Wysocki, linux-pm, linux-scsi
Hi James,
Care to comment?
Thanks,
Aaron
On 11/09/2012 03:27 PM, Aaron Lu wrote:
> This patchset has been quiet for a while, so resend them.
>
> v4:
> Only Patch 4 is modified:
> Fixed a line over 80 characters warning by checkpatch.pl;
> Update the changelog so that it is no more a try :-)
>
> v3:
> Only patch 4 is modified:
> Remove the special case for system freeze in scsi_bus_suspend_common
> as pointed out by Alan Stern;
> Updated some comments;
> Removed the use of typedef (*pm_callback_t)(struct device *).
>
> v2:
> Change the runtime suspend behaviour of sd driver by putting the device
> into stopped power state.
> Revert 2 patches which are no longer needed as pointed out by Alan Stern.
> Find out device callbacks in bus callbacks as suggested by Alan Stern.
>
> Due to these changes, patch number grows from 2 -> 5.
>
> v1:
> The 2 patches will migrate SCSI drivers to use the pm callbacks defined
> in dev_pm_ops as pm_message is deprecated and should not be used by driver.
> Bus level callback is changed to use callbacks defined in dev_pm_ops when
> needed and sd's pm callback is updated to use what are defined in dev_pm_ops.
>
>
> Aaron Lu (5):
> sd: put to stopped power state when runtime suspend
> Revert "[SCSI] scsi_pm: set device runtime state before parent
> suspended"
> Revert "[SCSI] runtime resume parent for child's system-resume"
> pm: use callbacks from dev_pm_ops for scsi devices
> sd: update sd to use the new pm callbacks
>
> drivers/scsi/scsi_pm.c | 98 +++++++++++++++++++++++++++-----------------------
> drivers/scsi/sd.c | 18 +++++++---
> 2 files changed, 67 insertions(+), 49 deletions(-)
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops
2012-11-09 7:27 [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
` (5 preceding siblings ...)
2012-11-16 8:43 ` [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
@ 2012-11-21 0:53 ` Rafael J. Wysocki
6 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2012-11-21 0:53 UTC (permalink / raw)
To: James Bottomley; +Cc: Aaron Lu, Alan Stern, linux-pm, linux-scsi, Aaron Lu
Hi James,
On Friday, November 09, 2012 03:27:50 PM Aaron Lu wrote:
> This patchset has been quiet for a while, so resend them.
>
> v4:
> Only Patch 4 is modified:
> Fixed a line over 80 characters warning by checkpatch.pl;
> Update the changelog so that it is no more a try :-)
>
> v3:
> Only patch 4 is modified:
> Remove the special case for system freeze in scsi_bus_suspend_common
> as pointed out by Alan Stern;
> Updated some comments;
> Removed the use of typedef (*pm_callback_t)(struct device *).
>
> v2:
> Change the runtime suspend behaviour of sd driver by putting the device
> into stopped power state.
> Revert 2 patches which are no longer needed as pointed out by Alan Stern.
> Find out device callbacks in bus callbacks as suggested by Alan Stern.
>
> Due to these changes, patch number grows from 2 -> 5.
>
> v1:
> The 2 patches will migrate SCSI drivers to use the pm callbacks defined
> in dev_pm_ops as pm_message is deprecated and should not be used by driver.
> Bus level callback is changed to use callbacks defined in dev_pm_ops when
> needed and sd's pm callback is updated to use what are defined in dev_pm_ops.
>
>
> Aaron Lu (5):
> sd: put to stopped power state when runtime suspend
> Revert "[SCSI] scsi_pm: set device runtime state before parent
> suspended"
> Revert "[SCSI] runtime resume parent for child's system-resume"
> pm: use callbacks from dev_pm_ops for scsi devices
> sd: update sd to use the new pm callbacks
>
> drivers/scsi/scsi_pm.c | 98 +++++++++++++++++++++++++++-----------------------
> drivers/scsi/sd.c | 18 +++++++---
> 2 files changed, 67 insertions(+), 49 deletions(-)
Do you have any plans with respect to this patchset?
It has been acked by Alan and me, do you have any objections against it?
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-11-21 0:48 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-09 7:27 [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
2012-11-09 7:27 ` [PATCH v4 1/5] sd: put to stopped power state when runtime suspend Aaron Lu
2012-11-09 7:27 ` [PATCH v4 2/5] Revert "[SCSI] scsi_pm: set device runtime state before parent suspended" Aaron Lu
2012-11-09 7:27 ` [PATCH v4 3/5] Revert "[SCSI] runtime resume parent for child's system-resume" Aaron Lu
2012-11-09 7:27 ` [PATCH v4 4/5] pm: use callbacks from dev_pm_ops for scsi devices Aaron Lu
2012-11-09 7:27 ` [PATCH v4 5/5] sd: update sd to use the new pm callbacks Aaron Lu
2012-11-16 8:43 ` [PATCH RESEND v4 0/5] Migrate SCSI drivers to use dev_pm_ops Aaron Lu
2012-11-21 0:53 ` 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).