linux/drivers/scsi/ufs
subhashj@codeaurora.org 0b25773434 scsi: ufs: optimize system suspend handling
Consider following sequence of events:
1. UFS is runtime suspended, link_state = Hibern8, device_state = sleep
2. System goes into system suspend, ufshcd_system_suspend() brings both
   link and device to active state and then puts the device in Power_Down
   state and link in OFF state.
3. System resumes at some later point in time, ufshcd_system_resume()
   doesn't do anything as UFS state is runtime suspended. Note that link
   is still on OFF state and device is in Power_Down state.
4. Now system again goes into suspend without any UFS accesses before it.
   ufshcd_system_suspend() again brings both link and device to active
   state and then puts the device in Power_Down state and link if OFF
   state. But it's unnecessary to bring the link & device in active state
   as both link and device are already in desired low power states. This
   change fixes this issue by adding proper state checks in
   ufshcd_system_suspend().

Reviewed-by: Gilad Broner <gbroner@codeaurora.org>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2016-11-29 12:06:57 -05:00
..
Kconfig scsi: ufs: Kconfig fix 2016-09-29 21:57:08 -04:00
Makefile ufs: add TC G210 pci driver 2016-07-12 23:16:31 -04:00
tc-dwc-g210-pci.c ufs: add TC G210 pci driver 2016-07-12 23:16:31 -04:00
tc-dwc-g210-pltfrm.c ufs: add TC G210 platform driver 2016-07-12 23:16:31 -04:00
tc-dwc-g210.c scsi: ufs: Add missing header dependencies for tc-dwc-g210 2016-09-04 01:28:08 -04:00
tc-dwc-g210.h ufs: add support for Synopsys G210 Test Chip 2016-07-12 23:16:31 -04:00
ufs_quirks.h scsi: ufs: ensure that host pa_tactivate is higher than device 2016-11-29 12:06:56 -05:00
ufs-qcom.c scsi: ufs: qcom: Properly clear hba priv on failure 2016-11-21 22:40:30 -05:00
ufs-qcom.h scsi: ufs-qcom: add printouts of testbus debug registers 2016-03-14 21:04:45 -04:00
ufs.h scsi: ufs: update device descriptor maximum size 2016-11-29 12:06:56 -05:00
ufshcd-dwc.c ufs: Adding license info do tc-dwc-g210 and ufshcd-dwc to enable loadable module 2016-07-12 23:16:31 -04:00
ufshcd-dwc.h ufs: add support for DesignWare Controller 2016-07-12 23:16:31 -04:00
ufshcd-pci.c scsi: ufshcd: release resources if probe fails 2016-11-08 17:30:00 -05:00
ufshcd-pltfrm.c scsi: ufshcd: release resources if probe fails 2016-11-08 17:30:00 -05:00
ufshcd-pltfrm.h scsi: ufs: make the UFS variant a platform device 2015-11-09 18:00:02 -05:00
ufshcd.c scsi: ufs: optimize system suspend handling 2016-11-29 12:06:57 -05:00
ufshcd.h scsi: ufs: introduce UFSHCD_QUIRK_PRDT_BYTE_GRAN quirk 2016-11-22 17:03:53 -05:00
ufshci-dwc.h ufs: add support for DesignWare Controller 2016-07-12 23:16:31 -04:00
ufshci.h scsi: ufs: handle errors from PHY_ADAPTER_ERROR register 2016-11-29 12:06:56 -05:00
unipro.h scsi: ufs: ensure that host pa_tactivate is higher than device 2016-11-29 12:06:56 -05:00