scsi: ufs: introduce common and flexible delay function
Introduce a common delay function to provide flexible way for users to take choices of udelay and usleep_range into consideration according to the required delay time. Link: https://lore.kernel.org/r/20200318104016.28049-4-stanley.chu@mediatek.com Reviewed-by: Avri Altman <avri.altman@wdc.com> Reviewed-by: Can Guo <cang@codeaurora.org> Signed-off-by: Stanley Chu <stanley.chu@mediatek.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
c2014682d0
commit
5c955c10d0
|
@ -535,6 +535,18 @@ static void ufshcd_print_pwr_info(struct ufs_hba *hba)
|
||||||
hba->pwr_info.hs_rate);
|
hba->pwr_info.hs_rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ufshcd_delay_us(unsigned long us, unsigned long tolerance)
|
||||||
|
{
|
||||||
|
if (!us)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (us < 10)
|
||||||
|
udelay(us);
|
||||||
|
else
|
||||||
|
usleep_range(us, us + tolerance);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(ufshcd_delay_us);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ufshcd_wait_for_register - wait for register value to change
|
* ufshcd_wait_for_register - wait for register value to change
|
||||||
* @hba - per-adapter interface
|
* @hba - per-adapter interface
|
||||||
|
|
|
@ -797,6 +797,7 @@ int ufshcd_init(struct ufs_hba * , void __iomem * , unsigned int);
|
||||||
int ufshcd_make_hba_operational(struct ufs_hba *hba);
|
int ufshcd_make_hba_operational(struct ufs_hba *hba);
|
||||||
void ufshcd_remove(struct ufs_hba *);
|
void ufshcd_remove(struct ufs_hba *);
|
||||||
int ufshcd_uic_hibern8_exit(struct ufs_hba *hba);
|
int ufshcd_uic_hibern8_exit(struct ufs_hba *hba);
|
||||||
|
void ufshcd_delay_us(unsigned long us, unsigned long tolerance);
|
||||||
int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask,
|
int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask,
|
||||||
u32 val, unsigned long interval_us,
|
u32 val, unsigned long interval_us,
|
||||||
unsigned long timeout_ms, bool can_sleep);
|
unsigned long timeout_ms, bool can_sleep);
|
||||||
|
|
Loading…
Reference in New Issue