Merge "scsi: ufshcd: Allow zero value setting to Auto-Hibernate Timer"

This commit is contained in:
qctecmdr 2020-07-10 13:43:58 -07:00 • committed by Gerrit - the friendly Code Review server
commit bd13e68a91
3 changed files with 12 additions and 5 deletions

View file

@ -145,12 +145,19 @@ static u32 ufshcd_us_to_ahit(unsigned int timer)
static ssize_t auto_hibern8_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
u32 ahit;
struct ufs_hba *hba = dev_get_drvdata(dev);
if (!ufshcd_is_auto_hibern8_supported(hba))
return -EOPNOTSUPP;
return snprintf(buf, PAGE_SIZE, "%d\n", ufshcd_ahit_to_us(hba->ahit));
pm_runtime_get_sync(hba->dev);
ufshcd_hold(hba, false);
ahit = ufshcd_readl(hba, REG_AUTO_HIBERNATE_IDLE_TIMER);
ufshcd_release(hba);
pm_runtime_put_sync(hba->dev);
return scnprintf(buf, PAGE_SIZE, "%d\n", ufshcd_ahit_to_us(ahit));
}
static ssize_t auto_hibern8_store(struct device *dev,

View file

@ -4851,8 +4851,8 @@ void ufshcd_auto_hibern8_enable(struct ufs_hba *hba)
{
unsigned long flags;
if (!ufshcd_is_auto_hibern8_supported(hba) || !hba->ahit
|| (hba->quirks & UFSHCD_QUIRK_BROKEN_AUTO_HIBERN8))
if (!ufshcd_is_auto_hibern8_supported(hba) ||
(hba->quirks & UFSHCD_QUIRK_BROKEN_AUTO_HIBERN8))
return;
spin_lock_irqsave(hba->host->host_lock, flags);

View file

@ -4167,8 +4167,8 @@ void ufshcd_auto_hibern8_enable(struct ufs_hba *hba)
{
unsigned long flags;
if (!ufshcd_is_auto_hibern8_supported(hba) || !hba->ahit
|| (hba->quirks & UFSHCD_QUIRK_BROKEN_AUTO_HIBERN8))
if (!ufshcd_is_auto_hibern8_supported(hba) ||
(hba->quirks & UFSHCD_QUIRK_BROKEN_AUTO_HIBERN8))
return;
spin_lock_irqsave(hba->host->host_lock, flags);