[PATCH 0/3] scsi: add runtime PM workaround for SD cardreaders

From: Martin Kepplinger
Date: Mon Jan 11 2021 - 10:22:06 EST


hi,

In short: there are SD cardreaders that send MEDIA_CHANGED on
runtime resume. We cannot use runtime PM with these devices as
I/O basically always fails. I'd like to discuss a way to fix this
or at least allow users to work around this problem:

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

and I sent the first of these patches in August, as a reference:
https://lore.kernel.org/linux-scsi/20200824190400.12339-1-martin.kepplinger@xxxxxxx/
so this is where I'm following up on.

I'm not sure whether maintaining an in-kernel quirk for specific devices
makes sense so here I suggest adding a userspace setting. Of course we should
document it properly if this makes sense to you. But this way there's at least
a chance to use runtime PM for sd cardreaders that send MEDIA_CHANGED.

Questions would be:
* Do you like the approach of a user+internal flag?
* what to do in scsi drivers that ignore the flag? Is documentation enough?
* review the *clearing* of the (internal) flag once again. the first
occurrence of MEDIA_CHANGED should do that only. (note to myself)

I'd appreciate any feedback.


Martin Kepplinger (3):
scsi: add expecting_media_change flag to error path
scsi: add expect_media_change_suspend sysfs device setting
scsi: sd: add support for expect_media_change_suspend flag

drivers/scsi/scsi_error.c | 36 +++++++++++++++++++++++++++++++-----
drivers/scsi/scsi_sysfs.c | 38 ++++++++++++++++++++++++++++++++++++++
drivers/scsi/sd.c | 21 ++++++++++++++++++++-
include/scsi/scsi_device.h | 3 +++
4 files changed, 92 insertions(+), 6 deletions(-)

--
2.20.1