Messages in this thread |  | | | Date | Thu, 26 Jul 2012 20:43:32 +0800 | | From | Aaron Lu <> | | Subject | Re: [PATCH v3 2/7] scsi: pm: use autosuspend if device supports it |
| |
On Thu, Jul 26, 2012 at 12:44:24PM +0200, Oliver Neukum wrote: > On Thursday 26 July 2012 18:05:24 Aaron Lu wrote: > > If the device is using autosuspend, when scsi_autopm_put_device is > > called for it, use autosuspend runtime pm calls instead of the sync > > call. > > What is the purpose of this approach?
The purpose is to let scsi layer driver(sd, sr, etc.) use the same pm api(scsi_autopm_put_device) to put the device to runtime suspended state. When the device is ready to be suspended, if it does not make use of autosuspend, call pm_runtime_put_sync for it; if it makes use of autosuspend, call the autosuspend runtime pm apis for it.
> You need a very good reason to have an API do two different things > based on this.
If you see the above reason not good, I'll prepare an updated version to create a new api to cover the autosuspend case, something like: void scsi_autopm_put_device_autosuspend(struct scsi_device *sdev) { pm_runtime_mark_last_busy(&sdev->sdev_gendev); pm_runtime_put_autosuspend(&sdev->sdev_gendev); } Does this look right? Thanks, Aaron
|  |