Skip to content

Commit 558ae45

Browse files
Hoyoung Seomartinkpetersen
authored andcommitted
scsi: ufs: core: Include UTP error in INT_FATAL_ERRORS
When a UTP error occurs in isolation, UFS is not currently recoverable. This is because the UTP error is not considered fatal in the error handling code, leading to either an I/O timeout or an OCS error. Add the UTP error flag to INT_FATAL_ERRORS so the controller will be reset in this situation. sd 0:0:0:0: [sda] tag#38 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=0s sd 0:0:0:0: [sda] tag#38 CDB: opcode=0x28 28 00 00 51 24 e2 00 00 08 00 I/O error, dev sda, sector 42542864 op 0x0:(READ) flags 0x80700 phys_seg 8 prio class 2 OCS error from controller = 9 for tag 39 pa_err[1] = 0x80000010 at 2667224756 us pa_err: total cnt=2 dl_err[0] = 0x80000002 at 2667148060 us dl_err[1] = 0x80002000 at 2667282844 us No record of nl_err No record of tl_err No record of dme_err No record of auto_hibern8_err fatal_err[0] = 0x804 at 2667282836 us --------------------------------------------------- REGISTER --------------------------------------------------- NAME OFFSET VALUE STD HCI SFR 0xfffffff0 0x0 AHIT 0x18 0x814 INTERRUPT STATUS 0x20 0x1000 INTERRUPT ENABLE 0x24 0x70ef5 [mkp: commit desc] Signed-off-by: Hoyoung Seo <hy50.seo@samsung.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Message-Id: <20250930061428.617955-1-hy50.seo@samsung.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent bb7663d commit 558ae45

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

include/ufs/ufshci.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ static inline u32 ufshci_version(u32 major, u32 minor)
180180
#define UTP_TASK_REQ_COMPL 0x200
181181
#define UIC_COMMAND_COMPL 0x400
182182
#define DEVICE_FATAL_ERROR 0x800
183+
#define UTP_ERROR 0x1000
183184
#define CONTROLLER_FATAL_ERROR 0x10000
184185
#define SYSTEM_BUS_FATAL_ERROR 0x20000
185186
#define CRYPTO_ENGINE_FATAL_ERROR 0x40000
@@ -199,7 +200,8 @@ static inline u32 ufshci_version(u32 major, u32 minor)
199200
CONTROLLER_FATAL_ERROR |\
200201
SYSTEM_BUS_FATAL_ERROR |\
201202
CRYPTO_ENGINE_FATAL_ERROR |\
202-
UIC_LINK_LOST)
203+
UIC_LINK_LOST |\
204+
UTP_ERROR)
203205

204206
/* HCS - Host Controller Status 30h */
205207
#define DEVICE_PRESENT 0x1

0 commit comments

Comments
 (0)