linux/drivers/scsi/ufs
Stanley Chu 8217444039 scsi: ufs: Add error-handling of Auto-Hibernate
Currently auto-hibernate is activated if host supports auto-hibern8
capability. However error-handling is not implemented, which makes the
feature somewhat risky.

If either "Hibernate Enter" or "Hibernate Exit" fail during auto-hibernate
flow, the corresponding interrupt "UIC_HIBERNATE_ENTER" or
"UIC_HIBERNATE_EXIT" shall be raised according to UFS specification.

This patch adds auto-hibernate error-handling:

 - Monitor "Hibernate Enter" and "Hibernate Exit" interrupts after
   auto-hibernate feature is activated.

 - If a failure happens, trigger error-handling just like
   "manual-hibernate" failure and apply the same recovery flow: schedule
   UFS error handler in ufshcd_check_errors(), and then do host reset and
   restore in UFS error handler.

Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
Reviewed-by: Avri Altman <Avri.Altman@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2019-06-18 19:46:23 -04:00
..
cdns-pltfrm.c scsi: ufs-cdns: Add support for UFSHCI with M31 PHY 2019-04-03 23:45:59 -04:00
Kconfig SCSI misc on 20190507 2019-05-08 10:12:46 -07:00
Makefile scsi: ufs-mediatek: Add UFS support for Mediatek SoC chips 2019-03-19 16:56:21 -04:00
tc-dwc-g210-pci.c
tc-dwc-g210-pltfrm.c
tc-dwc-g210.c
tc-dwc-g210.h
ufs_bsg.c scsi: ufs-bsg: Allow reading descriptors 2019-02-27 09:00:02 -05:00
ufs_bsg.h scsi: ufs: Add a bsg endpoint that supports UPIUs 2018-10-10 23:09:46 -04:00
ufs_quirks.h scsi: ufs: Remove unused device quirks 2019-02-27 08:54:57 -05:00
ufs-hisi.c scsi: ufs-hisi: Re-factor ufshcd_get_pwr_dev_param 2019-03-19 16:56:21 -04:00
ufs-hisi.h scsi: ufs: Add HI3670 SoC UFS driver support 2019-02-19 18:58:34 -05:00
ufs-mediatek.c scsi: ufs-mediatek: Add missing MODULE_* information 2019-03-25 22:09:42 -04:00
ufs-mediatek.h scsi: ufs-mediatek: Add UFS support for Mediatek SoC chips 2019-03-19 16:56:21 -04:00
ufs-qcom.c SCSI misc on 20190507 2019-05-08 10:12:46 -07:00
ufs-qcom.h scsi: ufs: qcom: Expose the reset controller for PHY 2019-04-17 14:12:56 +05:30
ufs-sysfs.c scsi: ufs: Introduce ufshcd_is_auto_hibern8_supported() 2019-06-18 19:46:23 -04:00
ufs-sysfs.h
ufs.h scsi: ufs: Remove unused min_uA field in struct ufs_vreg 2019-04-03 23:11:35 -04:00
ufshcd-dwc.c scsi: ufs: fix a typo in comment 2019-02-12 22:03:11 -05:00
ufshcd-dwc.h
ufshcd-pci.c
ufshcd-pltfrm.c scsi: ufs: Remove "<name>-fixed-regulator" device tree property 2019-04-03 23:11:35 -04:00
ufshcd-pltfrm.h scsi: ufs: Introduce ufshcd_get_pwr_dev_param 2019-03-19 16:56:20 -04:00
ufshcd.c scsi: ufs: Add error-handling of Auto-Hibernate 2019-06-18 19:46:23 -04:00
ufshcd.h scsi: ufs: Introduce ufshcd_is_auto_hibern8_supported() 2019-06-18 19:46:23 -04:00
ufshci-dwc.h
ufshci.h scsi: ufs: Add error-handling of Auto-Hibernate 2019-06-18 19:46:23 -04:00
unipro.h scsi: ufs: Fix RX_TERMINATION_FORCE_ENABLE define value 2019-04-29 08:34:10 -04:00