- To: Oliver Neukum <oneukum@xxxxxxx>
- Subject: Re: [PATCH v3 2/7] scsi: pm: use autosuspend if device supports it
- From: Aaron Lu <aaron.lu@xxxxxxx>
- Date: Thu, 26 Jul 2012 20:43:32 +0800
- Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>, Jeff Garzik <jgarzik@xxxxxxxxx>, Lin Ming <minggr@xxxxxxxxx>, Jeff Wu <jeff.wu@xxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, linux-pm@xxxxxxxxxxxxxxx, linux-scsi@xxxxxxxxxxxxxxx, linux-ide@xxxxxxxxxxxxxxx, Aaron Lu <aaron.lwe@xxxxxxxxx>
- In-reply-to: <1476441.ovA4GKBza3@linux-lqwf.site>
- User-agent: Mutt/1.5.20 (2009-12-10)
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
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[SCSI Target Devel]
[Linux SCSI Target Infrastructure]
[Kernel Newbies]
[Share Photos]
[IDE]
[Security]
[Git]
[Netfilter]
[Bugtraq]
[Photos]
[Yosemite]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Linux ATA RAID]
[Linux IIO]
[Samba]
[Video 4 Linux]
[Device Mapper]
[Linux Resources]