[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <7842191d46ebfc11a3fdf4caac81d31b36d3252c.1724222619.git.kwmad.kim@samsung.com>
Date: Wed, 21 Aug 2024 15:44:36 +0900
From: Kiwoong Kim <kwmad.kim@...sung.com>
To: linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org,
alim.akhtar@...sung.com, avri.altman@....com, bvanassche@....org,
jejb@...ux.ibm.com, martin.petersen@...cle.com, beanhuo@...ron.com,
adrian.hunter@...el.com, h10.kim@...sung.com, hy50.seo@...sung.com,
sh425.lee@...sung.com, kwangwon.min@...sung.com, junwoo80.lee@...sung.com,
wkon.kim@...sung.com
Cc: Kiwoong Kim <kwmad.kim@...sung.com>
Subject: [PATCH v1 2/2] scsi: ufs: ufs-exynos: implement override_cqe_ocs
Exynos host reports OCS_ABORT when a command is nullifed
or cleaned up with MCQ enabled. I think the command in those
situations should be issued again, rather than fail, because
when some conditions that caused the nullification or cleaning up
disppears after recovery, the command could be processed.
Signed-off-by: Kiwoong Kim <kwmad.kim@...sung.com>
---
drivers/ufs/host/ufs-exynos.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c
index 16ad352..4ed06fa 100644
--- a/drivers/ufs/host/ufs-exynos.c
+++ b/drivers/ufs/host/ufs-exynos.c
@@ -1376,6 +1376,14 @@ static void exynos_ufs_fmp_resume(struct ufs_hba *hba)
#endif /* !CONFIG_SCSI_UFS_CRYPTO */
+static enum utp_ocs exynos_ufs_override_cqe_ocs(struct ufs_hba *hba,
+ enum utp_ocs ocs)
+{
+ if (ocs == OCS_ABORTED)
+ ocs = OCS_INVALID_COMMAND_STATUS;
+ return ocs;
+}
+
static int exynos_ufs_init(struct ufs_hba *hba)
{
struct device *dev = hba->dev;
@@ -1926,6 +1934,7 @@ static const struct ufs_hba_variant_ops ufs_hba_exynos_ops = {
.suspend = exynos_ufs_suspend,
.resume = exynos_ufs_resume,
.fill_crypto_prdt = exynos_ufs_fmp_fill_prdt,
+ .override_cqe_ocs = exynos_ufs_override_cqe_ocs,
};
static struct ufs_hba_variant_ops ufs_hba_exynosauto_vh_ops = {
--
2.7.4
Powered by blists - more mailing lists