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,
 
 {
        unsigned long flags;
 
-       if (!ufshcd_is_auto_hibern8_supported(hba) || !hba->ahit)
+       if (!ufshcd_is_auto_hibern8_supported(hba))
                return;
 
        spin_lock_irqsave(hba->host->host_lock, flags);