linux-stable/drivers/scsi/ufs
Can Guo 307348f6ab scsi: ufs: Abort tasks before clearing them from doorbell
To recover non-fatal errors, no full reset is required, err_handler only
clears those pending TRs/TMRs so that SCSI layer can re-issue them. In
current err_handler, TRs are directly cleared from UFS host's doorbell but
not aborted from device side. However, according to the UFSHCI JEDEC spec,
the host software shall use UTP Transfer Request List Clear Register to
clear a task from UFS host's doorbell only when a UTP Transfer Request is
expected to not be completed, e.g. when the host software receives a
“FUNCTION COMPLETE” Task Management response which means a Transfer Request
was aborted. To follow the UFSHCI JEDEC spec, in err_handler, abort one TR
before clearing it from doorbell.

Link: https://lore.kernel.org/r/1598321228-21093-2-git-send-email-cang@codeaurora.org
Acked-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>
2020-09-02 22:49:06 -04:00
..
cdns-pltfrm.c scsi: ufs: introduce common function to disable host TX LCC 2020-02-12 19:27:16 -05:00
Kconfig scsi: ufs-qcom: Add Inline Crypto Engine support 2020-07-24 22:09:54 -04:00
Makefile scsi: ufs-qcom: Add Inline Crypto Engine support 2020-07-24 22:09:54 -04:00
tc-dwc-g210-pci.c
tc-dwc-g210-pltfrm.c
tc-dwc-g210.c
tc-dwc-g210.h
ti-j721e-ufs.c scsi: ufs: ti-j721e-ufs: Fix unwinding of pm_runtime changes 2020-05-26 21:33:54 -04:00
ufs-exynos.c scsi: ufs: exynos: Enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL 2020-08-31 22:10:43 -04:00
ufs-exynos.h scsi: ufs: ufs-exynos: Add UFS host support for Exynos SoCs 2020-06-15 14:04:10 -04:00
ufs-hisi.c scsi: ufs: introduce common function to disable host TX LCC 2020-02-12 19:27:16 -05:00
ufs-hisi.h
ufs-mediatek.c scsi: ufs-mediatek: Apply DELAY_AFTER_LPM quirk to Micron devices 2020-07-30 21:11:24 -04:00
ufs-mediatek.h scsi: ufs: ufs-mediatek: Modify the minimum RX/TX lane count to 2 2020-08-20 21:59:34 -04:00
ufs-qcom-ice.c scsi: ufs-qcom: Add Inline Crypto Engine support 2020-07-24 22:09:54 -04:00
ufs-qcom.c scsi: ufs-qcom: Remove unused MSM bus scaling APIs 2020-08-20 21:41:51 -04:00
ufs-qcom.h scsi: ufs-qcom: Remove unused MSM bus scaling APIs 2020-08-20 21:41:51 -04:00
ufs-sysfs.c scsi: ufs: Fix concurrency of error handler and other error recovery paths 2020-08-17 20:54:54 -04:00
ufs-sysfs.h scsi: ufs: sysfs: Use the correct style for SPDX License Identifier 2020-01-02 21:57:44 -05:00
ufs.h scsi: ufs: Add SPDX GPL-2.0 to replace GPL v2 boilerplate 2020-06-15 23:21:04 -04:00
ufs_bsg.c SCSI misc on 20200806 2020-08-06 16:50:07 -07:00
ufs_bsg.h
ufs_quirks.h scsi: ufs: Introduce device quirk "DELAY_AFTER_LPM" 2020-07-30 21:10:29 -04:00
ufshcd-crypto.c scsi: ufs: Add program_key() variant op 2020-07-24 22:09:54 -04:00
ufshcd-crypto.h scsi: ufs: Add inline encryption support to UFS 2020-07-08 01:23:32 -04:00
ufshcd-dwc.c
ufshcd-dwc.h
ufshcd-pci.c scsi: ufs: Add SPDX GPL-2.0 to replace GPL v2 boilerplate 2020-06-15 23:21:04 -04:00
ufshcd-pltfrm.c scsi: ufs: Add SPDX GPL-2.0 to replace GPL v2 boilerplate 2020-06-15 23:21:04 -04:00
ufshcd-pltfrm.h
ufshcd.c scsi: ufs: Abort tasks before clearing them from doorbell 2020-09-02 22:49:06 -04:00
ufshcd.h scsi: ufs: Introduce skipping manual flush for Write Booster 2020-08-31 22:10:43 -04:00
ufshci-dwc.h
ufshci.h scsi: ufs: UFS driver v2.1 spec crypto additions 2020-07-08 01:21:59 -04:00
unipro.h scsi: ufs: ufs-exynos: Add UFS host support for Exynos SoCs 2020-06-15 14:04:10 -04:00