* [PATCH] ufs: add quirk to fix abnormal ocs fatal error
[not found] <CGME20200218224503epcas2p46cec6f56d7564ea7dca4ab600476d938@epcas2p4.samsung.com>
@ 2020-02-18 22:43 ` Kiwoong Kim
2020-02-18 23:32 ` Christoph Hellwig
0 siblings, 1 reply; 3+ messages in thread
From: Kiwoong Kim @ 2020-02-18 22:43 UTC (permalink / raw)
To: linux-scsi, jejb, martin.petersen; +Cc: Kiwoong Kim
Some architectures determines if fatal error for OCS
occurrs to check status in response upiu. This patch
is to prevent from reporting command results with that.
Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com>
---
drivers/scsi/ufs/ufshcd.c | 6 ++++++
drivers/scsi/ufs/ufshcd.h | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index f4aa10fdbb0c..39305076051e 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -4731,6 +4731,12 @@ ufshcd_transfer_rsp_status(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
/* overall command status of utrd */
ocs = ufshcd_get_tr_ocs(lrbp);
+ if (hba->quirks & UFSHCD_QUIRK_BROKEN_OCS_FATAL_ERROR) {
+ if (be32_to_cpu(lrbp->ucd_rsp_ptr->header.dword_1) &
+ MASK_RSP_UPIU_RESULT)
+ ocs = OCS_SUCCESS;
+ }
+
switch (ocs) {
case OCS_SUCCESS:
result = ufshcd_get_req_rsp(lrbp->ucd_rsp_ptr);
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index 8f516b205c32..4757e1eadee0 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -635,6 +635,12 @@ struct ufs_hba {
* enabled via HCE register.
*/
#define UFSHCI_QUIRK_BROKEN_HCE 0x400
+
+ /*
+ * This quirk needs to be enabled if the host controller reports
+ * OCS FATAL ERROR with device error through sense data
+ */
+ #define UFSHCD_QUIRK_BROKEN_OCS_FATAL_ERROR 0x800
unsigned int quirks; /* Deviations from standard UFSHCI spec. */
/* Device deviations from standard UFS device spec. */
--
2.14.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] ufs: add quirk to fix abnormal ocs fatal error
2020-02-18 22:43 ` [PATCH] ufs: add quirk to fix abnormal ocs fatal error Kiwoong Kim
@ 2020-02-18 23:32 ` Christoph Hellwig
2020-02-18 23:54 ` Kiwoong Kim
0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2020-02-18 23:32 UTC (permalink / raw)
To: Kiwoong Kim; +Cc: linux-scsi, jejb, martin.petersen
On Wed, Feb 19, 2020 at 07:43:07AM +0900, Kiwoong Kim wrote:
> Some architectures determines if fatal error for OCS
> occurrs to check status in response upiu. This patch
> is to prevent from reporting command results with that.
This seems to be missing the hunk to actually set the quirk bit..
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH] ufs: add quirk to fix abnormal ocs fatal error
2020-02-18 23:32 ` Christoph Hellwig
@ 2020-02-18 23:54 ` Kiwoong Kim
0 siblings, 0 replies; 3+ messages in thread
From: Kiwoong Kim @ 2020-02-18 23:54 UTC (permalink / raw)
To: 'Christoph Hellwig'; +Cc: linux-scsi, jejb, martin.petersen
> On Wed, Feb 19, 2020 at 07:43:07AM +0900, Kiwoong Kim wrote:
> > Some architectures determines if fatal error for OCS occurrs to check
> > status in response upiu. This patch is to prevent from reporting
> > command results with that.
>
> This seems to be missing the hunk to actually set the quirk bit..
Exynos specific driver sets and is using it but the driver is not updated
yet. I'll do upstream it in the future.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-02-18 23:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20200218224503epcas2p46cec6f56d7564ea7dca4ab600476d938@epcas2p4.samsung.com>
2020-02-18 22:43 ` [PATCH] ufs: add quirk to fix abnormal ocs fatal error Kiwoong Kim
2020-02-18 23:32 ` Christoph Hellwig
2020-02-18 23:54 ` Kiwoong Kim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).