scsi: ufs: Allow async suspend/resume callbacks
authorVincent Palomares <paillon@google.com>
Wed, 28 Jul 2021 01:27:43 +0000 (18:27 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 31 Jul 2021 03:48:36 +0000 (23:48 -0400)
commit1084514ca9aa5b3fcc485b378b92b632918237f4
tree18cbf70bfcdff927500dd6fec8adabf7ab493fb6
parent7740b615b6665e47f162e261d805f1bbbac15876
scsi: ufs: Allow async suspend/resume callbacks

Allow UFS suspend/resume callbacks to run in parallel with other
suspend/resume callbacks. This can recoup dozens of milliseconds on the
resume path if UFS hardware needs to be powered back on.

Suspending and resuming asynchronously is safe to do so long as the driver
callbacks only depend on resources made available by either a) parent
devices or b) devices explicitly marked as suppliers with device_link_add.

Link: https://lore.kernel.org/r/20210728012743.1063928-1-paillon@google.com
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Cc: Bart Van Assche <bvanassche@acm.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Stanley Chu <stanley.chu@mediatek.com>
Cc: Can Guo <cang@codeaurora.org>
Cc: Asutosh Das <asutoshd@codeaurora.org>
Cc: Avri Altman <avri.altman@wdc.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Vincent Palomares <paillon@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c