On 21/10/2021 14:04, Kiwoong Kim wrote: >> On 19/10/2021 07:57, Kiwoong Kim wrote: >>> Changes from v1: >>> * Change the time to requeue pended commands >>> >>> When an scsi command is dispatched right after host complete all the >>> pended requests and ufs driver tries to ring a doorbell, host might be >>> still during entering into hibern8. >>> If the hibern8 error occurrs during that period, the doorbell might >>> not be zero and clearing it should have done. >>> But, current ufshcd_err_handler goes directly to reset w/o clearing >>> the doorbell when the driver's link state is broken. >> >> So you mean HCE 1->0 does not clear the doorbell register? >> >>> This patch is to requeue pended commands after host reset. >> >> So you mean HCE 0->1 does clear the doorbell register? > > > I talked about this again and maybe he didn't seem to accept its description like that > Because he just focused on the term 'disable' in the description. > Instead, there is an vendor sfr to clear all the contexts. > > Yes, the description contains like this, but I think he could think it's done when setting one. > -- > When HCE is ‘0’ and software writes ‘1’, the host > controller hardware shall execute the step 2 described in 7.1.1 of this standard, > including >>>>> reset <<<<< of the host UTP and UIC layers. > > Of course, some statements, such as 8.2.2. UIC Error Handling, seems to show setting zero means clearing. > But speaking the description, it's not quite clear to me. > > Anyway, let me know how to deal with this. It seems vendor-specific. Perhaps export ufshcd_complete_requests() and call it from vendor ops->hce_enable_notify(hba, POST_CHANGE) ? Note that Bart submitted a patch to remove ufshcd_retry_aborted_requests().