Messages in this thread Patch in this message | | | Date | Fri, 20 Nov 2020 11:35:24 -0500 | From | Alan Stern <> | Subject | Re: [PATCH RFC v2 1/1] scsi: pm: Leave runtime PM status alone during system resume/thaw/restore |
| |
On Fri, Nov 20, 2020 at 12:37:22AM -0800, Can Guo wrote: > Runtime resume is handled by runtime PM framework, no need to forcibly > set runtime PM status to RPM_ACTIVE during system resume/thaw/restore.
Sorry, I don't understand this explanation at all.
Sure, runtime resume is handled by the runtime PM framework. But this patch changes the code for system resume, which is completely different.
Following a system resume, the hardware will be at full power. We don't want the kernel to think that the device is still in runtime suspend; otherwise is would never put the device back into low-power mode.
Alan Stern
> Cc: Stanley Chu <stanley.chu@mediatek.com> > Cc: Bart Van Assche <bvanassche@acm.org> > Cc: Alan Stern <stern@rowland.harvard.edu> > Signed-off-by: Can Guo <cang@codeaurora.org> > --- > > Changes since v1: > - Incorporated Bart's comments > > --- > drivers/scsi/scsi_pm.c | 24 +----------------------- > 1 file changed, 1 insertion(+), 23 deletions(-) > > diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c > index 3717eea..908f27f 100644 > --- a/drivers/scsi/scsi_pm.c > +++ b/drivers/scsi/scsi_pm.c > @@ -79,25 +79,6 @@ static int scsi_dev_type_resume(struct device *dev, > scsi_device_resume(to_scsi_device(dev)); > dev_dbg(dev, "scsi resume: %d\n", err); > > - if (err == 0) { > - pm_runtime_disable(dev); > - err = pm_runtime_set_active(dev); > - pm_runtime_enable(dev); > - > - /* > - * Forcibly set runtime PM status of request queue to "active" > - * to make sure we can again get requests from the queue > - * (see also blk_pm_peek_request()). > - * > - * The resume hook will correct runtime PM status of the disk. > - */ > - if (!err && scsi_is_sdev_device(dev)) { > - struct scsi_device *sdev = to_scsi_device(dev); > - > - blk_set_runtime_active(sdev->request_queue); > - } > - } > - > return err; > } > > @@ -165,11 +146,8 @@ static int scsi_bus_resume_common(struct device *dev, > */ > if (strncmp(scsi_scan_type, "async", 5) != 0) > async_synchronize_full_domain(&scsi_sd_pm_domain); > - } else { > - pm_runtime_disable(dev); > - pm_runtime_set_active(dev); > - pm_runtime_enable(dev); > } > + > return 0; > } > > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project. >
| |