mbox series

[v6,0/3] fix runtime PM for SD card readers

Message ID 20210704075403.147114-1-martin.kepplinger@puri.sm (mailing list archive)
Headers show
Series fix runtime PM for SD card readers | expand

Message

Martin Kepplinger July 4, 2021, 7:54 a.m. UTC
hi,

(According to Alan Stern, "as far as I know, all") SD card readers send
MEDIA_CHANGED unit attention notification on (runtime) resume. We cannot
use runtime PM with these devices as I/O always fails in that case.

This fixes runtime PM for SD cardreaders. I'd appreciate any feedback.

To enable runtime PM for an SD cardreader number 0:0:0:0, do:
    
echo 0 > /sys/module/block/parameters/events_dfl_poll_msecs
echo 1000 > /sys/bus/scsi/devices/0:0:0:0/power/autosuspend_delay_ms
echo auto > /sys/bus/scsi/devices/0:0:0:0/power/control

thank you,
                           martin

revision history
----------------
v6: (thank you Bart and Christoph)
* fix scsi command timeout for sense request
* add reviewed-by tag

v5: (thank you Bart)
* simplify the sense request itself and remove unnecessary code
https://lore.kernel.org/linux-scsi/20210630084453.186764-1-martin.kepplinger@puri.sm/T/#t

v4: (thank you Bart and Alan)
* send SENSE REQUEST in sd instead of adding a global scsi error flag.
https://lore.kernel.org/linux-scsi/20210628133412.1172068-1-martin.kepplinger@puri.sm/T/#t

v3: (thank you Bart)
 * create a new BLIST entry to mark affected devices instead of the
   sysfs module parameter for sd only. still, only sd implements handling
   the flag for now.
 * cc linux-pm list
https://lore.kernel.org/linux-scsi/20210328102531.1114535-1-martin.kepplinger@puri.sm/

v2:
https://lore.kernel.org/linux-scsi/20210112093329.3639-1-martin.kepplinger@puri.sm/
 * move module parameter to sd
 * add Documentation
v1:
https://lore.kernel.org/linux-scsi/20210111152029.28426-1-martin.kepplinger@puri.sm/T/

For the full background, the discussion started in June 2020 here:
https://lore.kernel.org/linux-scsi/20200623111018.31954-1-martin.kepplinger@puri.sm/



Martin Kepplinger (3):
  scsi: devinfo: add new flag BLIST_MEDIA_CHANGE
  scsi: sd: send REQUEST SENSE for BLIST_MEDIA_CHANGE devices in
    runtime_resume()
  scsi: devinfo: add BLIST_MEDIA_CHANGE for Ultra HS-SD/MMC usb
    cardreaders

 drivers/scsi/scsi_devinfo.c |  1 +
 drivers/scsi/sd.c           | 23 ++++++++++++++++++++++-
 include/scsi/scsi_devinfo.h |  6 +++---
 3 files changed, 26 insertions(+), 4 deletions(-)

Comments

Martin K. Petersen July 22, 2021, 3:59 a.m. UTC | #1
Martin,

> (According to Alan Stern, "as far as I know, all") SD card readers
> send MEDIA_CHANGED unit attention notification on (runtime) resume. We
> cannot use runtime PM with these devices as I/O always fails in that
> case.

Made a few changes (added "ignore" to clarify what the flag does and
twiddled how the workaround is triggered in sd.c). Applied to
5.15/scsi-staging, thanks!
Martin K. Petersen July 27, 2021, 4:14 a.m. UTC | #2
On Sun, 4 Jul 2021 09:54:00 +0200, Martin Kepplinger wrote:

> (According to Alan Stern, "as far as I know, all") SD card readers send
> MEDIA_CHANGED unit attention notification on (runtime) resume. We cannot
> use runtime PM with these devices as I/O always fails in that case.
> 
> This fixes runtime PM for SD cardreaders. I'd appreciate any feedback.
> 
> To enable runtime PM for an SD cardreader number 0:0:0:0, do:
> 
> [...]

Applied to 5.15/scsi-queue, thanks!

[1/3] scsi: devinfo: add new flag BLIST_MEDIA_CHANGE
      https://git.kernel.org/mkp/scsi/c/f591a2e0548d
[2/3] scsi: sd: send REQUEST SENSE for BLIST_MEDIA_CHANGE devices in runtime_resume()
      https://git.kernel.org/mkp/scsi/c/ed4246d37f3b
[3/3] scsi: devinfo: add BLIST_MEDIA_CHANGE for Ultra HS-SD/MMC usb cardreaders
      https://git.kernel.org/mkp/scsi/c/9abe677951d1