Commit 174e909b authored by Junwoo Lee's avatar Junwoo Lee Committed by Martin K. Petersen

scsi: ufs: Skip last hci reset to get valid register values

Once the host link startup fails 3 times, all host registers are reset to
default values except in ufshcd_hba_enable().

The ufs host controller is disabled and enabled in ufshcd_hba_enable().
Consequently we need to skip last hci reset to get valid host register
values.

e.g.
[    1.898026] [2:  kworker/u16:2:  211] ufs: link startup failed 1
[    1.898133] [2:  kworker/u16:2:  211] host_regs: 00000000: 1383ff1f 00000000 00000300 00000000
[    1.898141] [2:  kworker/u16:2:  211] host_regs: 00000010: 00000106 000001ce 00000000 00000000
[    1.898148] [2:  kworker/u16:2:  211] host_regs: 00000020: 00000000 00000470 00000000 00000000
[    1.898155] [2:  kworker/u16:2:  211] host_regs: 00000030: 00000008 00000003 00000000 00000000
[    1.898163] [2:  kworker/u16:2:  211] host_regs: 00000040: 00000000 00000000 00000000 00000000
[    1.898171] [2:  kworker/u16:2:  211] host_regs: 00000050: 00000000 00000000 00000000 00000000
[    1.898177] [2:  kworker/u16:2:  211] host_regs: 00000060: 00000000 00000000 00000000 00000000
[    1.898186] [2:  kworker/u16:2:  211] host_regs: 00000070: 00000000 00000000 00000000 00000000
[    1.898194] [2:  kworker/u16:2:  211] host_regs: 00000080: 00000000 00000000 00000000 00000000
[    1.898201] [2:  kworker/u16:2:  211] host_regs: 00000090: 00000000 00000000 00000000 00000000

Link: https://lore.kernel.org/r/20220705083538.15143-1-sh043.lee@samsung.comReviewed-by: default avatarAvri Altman <avri.altman@wdc.com>
Signed-off-by: default avatarJunwoo Lee <junwoo80.lee@samsung.com>
Signed-off-by: default avatarSeunghui Lee <sh043.lee@samsung.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 1466b3bc
...@@ -4753,7 +4753,7 @@ static int ufshcd_link_startup(struct ufs_hba *hba) ...@@ -4753,7 +4753,7 @@ static int ufshcd_link_startup(struct ufs_hba *hba)
* but we can't be sure if the link is up until link startup * but we can't be sure if the link is up until link startup
* succeeds. So reset the local Uni-Pro and try again. * succeeds. So reset the local Uni-Pro and try again.
*/ */
if (ret && ufshcd_hba_enable(hba)) { if (ret && retries && ufshcd_hba_enable(hba)) {
ufshcd_update_evt_hist(hba, ufshcd_update_evt_hist(hba,
UFS_EVT_LINK_STARTUP_FAIL, UFS_EVT_LINK_STARTUP_FAIL,
(u32)ret); (u32)ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment