From cf1646cba3583991e125d9cead17a21ae1e9b27e Mon Sep 17 00:00:00 2001 From: Vincent Palomares Date: Wed, 21 Jul 2021 18:37:58 -0700 Subject: [PATCH] FROMLIST: 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. Cc: Bjorn Helgaas Cc: Jaegeuk Kim Cc: Bart Van Assche Cc: Adrian Hunter Cc: Stanley Chu Cc: Can Guo Cc: Asutosh Das Cc: Avri Altman Cc: Martin K. Petersen Signed-off-by: Vincent Palomares Reviewed-by: Bart Van Assche Signed-off-by: Vincent Palomares Link: https://lore.kernel.org/linux-scsi/a7091f96-12a3-a244-040a-c41a7c5e3617@acm.org/T/#t Bug: 194213025 Change-Id: I46ff584d3a1342ab3b26ffdf196e7a65637294f3 --- drivers/scsi/ufs/ufshcd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index a25cdf46a18a..eb2baf3b69b6 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -9541,6 +9541,7 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) async_schedule(ufshcd_async_scan, hba); ufs_sysfs_add_nodes(hba); + device_enable_async_suspend(dev); return 0; free_tmf_queue: