android_kernel_msm-6.1_noth.../include/scsi
Damien Le Moal cebccbe801 scsi: sd: Fix system start for ATA devices
commit b09d7f8fd50f6e93cbadd8d27fde178f745b42a1 upstream.

It is not always possible to keep a device in the runtime suspended state
when a system level suspend/resume cycle is executed. E.g. for ATA devices
connected to AHCI adapters, system resume resets the ATA ports, which
causes connected devices to spin up. In such case, a runtime suspended disk
will incorrectly be seen with a suspended runtime state because the device
is not resumed by sd_resume_system(). The power state seen by the user is
different than the actual device physical power state.

Fix this issue by introducing the struct scsi_device flag
force_runtime_start_on_system_start. When set, this flag causes
sd_resume_system() to request a runtime resume operation for runtime
suspended devices. This results in the user seeing the device runtime_state
as active after a system resume, thus correctly reflecting the device
physical power state.

Fixes: 9131bff6a9 ("scsi: core: pm: Only runtime resume if necessary")
Cc: <stable@vger.kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20231120225631.37938-3-dlemoal@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-08 08:51:14 +01:00
..
fc
fc_frame.h
fcoe_sysfs.h
iscsi_if.h
iscsi_proto.h
iser.h
libfc.h
libfcoe.h
libiscsi.h
libiscsi_tcp.h
libsas.h
sas.h
sas_ata.h scsi: libsas: Add sas_ata_device_link_abort() 2023-05-11 23:03:20 +09:00
scsi.h
scsi_bsg_iscsi.h
scsi_cmnd.h
scsi_common.h
scsi_dbg.h
scsi_device.h scsi: sd: Fix system start for ATA devices 2023-12-08 08:51:14 +01:00
scsi_devinfo.h scsi: core: Add BLIST_NO_VPD_SIZE for some VDASD 2023-03-22 13:33:43 +01:00
scsi_dh.h
scsi_driver.h
scsi_eh.h
scsi_host.h scsi: Do not attempt to rescan suspended devices 2023-10-10 22:00:35 +02:00
scsi_ioctl.h
scsi_proto.h
scsi_status.h
scsi_tcq.h
scsi_transport.h
scsi_transport_fc.h
scsi_transport_iscsi.h
scsi_transport_sas.h
scsi_transport_spi.h
scsi_transport_srp.h
scsicam.h
sg.h
srp.h
viosrp.h