scsi: ufs: Enable block layer runtime PM for well-known logical units
authorCan Guo <cang@codeaurora.org>
Thu, 26 Mar 2020 01:09:59 +0000 (18:09 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 27 Mar 2020 02:30:44 +0000 (22:30 -0400)
commitfb276f770118ac1464316231868e711e04218d53
tree3db9fa565c1de6c7da5c199682f246c415a747f8
parent80b21006cd0e8661affd8e1bf1707c8d5099605e
scsi: ufs: Enable block layer runtime PM for well-known logical units

Block layer RPM is enabled for the genernal UFS SCSI devices when they are
probed by their driver. However block layer RPM is not enabled for UFS
well-known SCSI devices.

As UFS SCSI devices have their corresponding BSG char devices, accessing a
BSG char device via IOCTL may send requests to its corresponding SCSI
device through its request queue. If BSG IOCTL sends a request to a
well-known SCSI device when HBA is not runtime active, due to block layer
RPM not being enabled for the well-known SCSI devices, the HBA, which is at
the top of a SCSI device's parent chain, will not be resumed.

This change enables block layer RPM for the well-known SCSI devices so that
block layer can handle RPM for the well-known SCSI devices just like for
the general SCSI devices.

Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c