RE: [PATCH RESEND v2] scsi: ufs: clear doorbell for hibern8 errors when using ah8

From: Kiwoong Kim
Date: Thu Oct 21 2021 - 07:04:49 EST


> 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.

Thanks.
Kiwoong Kim