lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 21 Oct 2022 07:46:47 +0000 From: Avri Altman <Avri.Altman@....com> To: Zhe Wang <zhewang116@...il.com>, "jejb@...ux.ibm.com" <jejb@...ux.ibm.com>, "martin.petersen@...cle.com" <martin.petersen@...cle.com>, "alim.akhtar@...sung.com" <alim.akhtar@...sung.com>, "bvanassche@....org" <bvanassche@....org> CC: "linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "beanhuo@...ron.com" <beanhuo@...ron.com>, "stanley.chu@...iatek.com" <stanley.chu@...iatek.com>, "adrian.hunter@...el.com" <adrian.hunter@...el.com>, "zhe.wang1@...soc.com" <zhe.wang1@...soc.com>, "zhenxiong.lai@...soc.com" <zhenxiong.lai@...soc.com>, "yuelin.tang@...soc.com" <yuelin.tang@...soc.com> Subject: RE: [PATCH V2] scsi: ufs: core: Let delay value after LPM can be modified by vendor > From: Zhe Wang <zhe.wang1@...soc.com> > > Some UFS devices require that the VCC should drop below 0.1V after > turning off, otherwise device may not resume successfully. And > because the power-off rate is different on different SOC platforms. > Therefore, we hope that the delay can be modified by vendor to > adjust the most appropriate delay value. > > Signed-off-by: Zhe Wang <zhe.wang1@...soc.com> > --- > V1 -> V2 > - move turnoff_delay_us to struct ufs_vreg instead > - replace usleep_range with ufshcd_delay_us > > drivers/ufs/core/ufshcd.c | 9 ++++++++- > include/ufs/ufs.h | 1 + > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c > index 7256e6c43ca6..386ff6ed2f20 100644 > --- a/drivers/ufs/core/ufshcd.c > +++ b/drivers/ufs/core/ufshcd.c > @@ -89,6 +89,9 @@ > /* Polling time to wait for fDeviceInit */ > #define FDEVICEINIT_COMPL_TIMEOUT 1500 /* millisecs */ > > +/* Default value of turn off VCC rail: 5000us */ > +#define UFS_VCC_TURNOFF_DELAY_US 5000 > + > #define ufshcd_toggle_vreg(_dev, _vreg, _on) \ > ({ \ > int _ret; \ > @@ -7784,6 +7787,10 @@ static int ufs_get_device_desc(struct ufs_hba *hba) > > ufs_fixup_device_setup(hba); > > + if (hba->dev_quirks & UFS_DEVICE_QUIRK_DELAY_AFTER_LPM && > + !hba->vreg_info.vcc->turnoff_delay_us) > + hba->vreg_info.vcc->turnoff_delay_us = > UFS_VCC_TURNOFF_DELAY_US; > + You answered my question to your v1 - where otherwise you are setting this value: "We are still preparing and discussing our own UFS host driver code, which will be uploaded once we are done." Well until then - this isn't very useful. Thanks, Avri > ufshcd_wb_probe(hba, desc_buf); > > ufshcd_temp_notif_probe(hba, desc_buf); > @@ -8918,7 +8925,7 @@ static void ufshcd_vreg_set_lpm(struct ufs_hba *hba) > */ > if (vcc_off && hba->vreg_info.vcc && > hba->dev_quirks & UFS_DEVICE_QUIRK_DELAY_AFTER_LPM) > - usleep_range(5000, 5100); > + ufshcd_delay_us(hba->vreg_info.vcc->turnoff_delay_us, 100); > } > > #ifdef CONFIG_PM > diff --git a/include/ufs/ufs.h b/include/ufs/ufs.h > index 1bba3fead2ce..792335dfd70b 100644 > --- a/include/ufs/ufs.h > +++ b/include/ufs/ufs.h > @@ -569,6 +569,7 @@ struct ufs_vreg { > bool always_on; > bool enabled; > int max_uA; > + u32 turnoff_delay_us; > }; > > struct ufs_vreg_info { > -- > 2.17.1
Powered by blists - more mailing lists