RE: [PATCH v2] scsi: ufs: modify Tactive time setting conditions
From: Avri Altman
Date: Mon Jan 10 2022 - 08:58:46 EST
>
> Hi,
> If register "UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE" quirk,
> using this Tact time function.
> And I mean all Samsung device use UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE
> quirk below this. so I told that.
> static struct ufs_dev_fix ufs_fixups[] = {
> /* UFS cards deviations table */
> UFS_FIX(UFS_VENDOR_MICRON, UFS_ANY_MODEL,
> UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM |
> UFS_DEVICE_QUIRK_SWAP_L2P_ENTRY_FOR_HPB_READ),
> UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
> UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM |
> UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE |
>
> Other vendors can use it if necessary.
> And for stability, the device tact time must be longer than host tact time.
> (I already check Major device vendors)
> That's reason why use this function.
> But the Host tact time and Device tact time same, stability may not be satisfied.
> So I changed this way
Yes - I agree.
Looks good to me.
Thanks,
Avri
>
> Thanks,
> HOYOUNG.
>
> > -----Original Message-----
> > From: Avri Altman [mailto:Avri.Altman@xxxxxxx]
> > Sent: Friday, January 7, 2022 7:57 PM
> > To: SEO HOYOUNG; linux-scsi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > alim.akhtar@xxxxxxxxxxx; jejb@xxxxxxxxxxxxx;
> martin.petersen@xxxxxxxxxx;
> > beanhuo@xxxxxxxxxx; asutoshd@xxxxxxxxxxxxxx; cang@xxxxxxxxxxxxxx;
> > bvanassche@xxxxxxx
> > Subject: RE: [PATCH v2] scsi: ufs: modify Tactive time setting conditions
> >
> > > The Tactive time determine the waiting time before burst at hibern8
> > > exit and is determined by H/W at linkup state However, in the case of
> > > samsung devices, guided host's Tactive time
> > > +100us for stability.
> > > If the HCI's Tactive time is equal or greater than the device,
> > > +100us should be set.
> > This way you are changing this for everyone - not just for Samsung.
> > e.g. Qualcomm are using this quirk as well for WDC devices.
> >
> > Thanks,
> > Avri
> >
> > >
> > > Signed-off-by: SEO HOYOUNG <hy50.seo@xxxxxxxxxxx>
> > > ---
> > > drivers/scsi/ufs/ufshcd.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> > > index 1049e41abd5b..460d2b440d2e 100644
> > > --- a/drivers/scsi/ufs/ufshcd.c
> > > +++ b/drivers/scsi/ufs/ufshcd.c
> > > @@ -7815,7 +7815,7 @@ static int
> > > ufshcd_quirk_tune_host_pa_tactivate(struct
> > > ufs_hba *hba)
> > > peer_pa_tactivate_us = peer_pa_tactivate *
> > > gran_to_us_table[peer_granularity - 1];
> > >
> > > - if (pa_tactivate_us > peer_pa_tactivate_us) {
> > > + if (pa_tactivate_us >= peer_pa_tactivate_us) {
> > > u32 new_peer_pa_tactivate;
> > >
> > > new_peer_pa_tactivate = pa_tactivate_us /
> > > --
> > > 2.26.0
>