The checking of Auto-Hibernation support is used in
many places in the driver, thus re-factor it as
ufshcd_is_auto_hibern8_supported() to make code more
clean.

Signed-off-by: Stanley Chu <stanley....@mediatek.com>
Reviewed-by: Bean Huo <bean...@micron.com>
Reviewed-by: Alim Akhtar <alim.akh...@samsung.com>
---
 drivers/scsi/ufs/ufs-sysfs.c | 6 +++---
 drivers/scsi/ufs/ufshcd.c    | 4 ++--
 drivers/scsi/ufs/ufshcd.h    | 5 +++++
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/scsi/ufs/ufs-sysfs.c
index 8d9332bb7d0c..f478685122ff 100644
--- a/drivers/scsi/ufs/ufs-sysfs.c
+++ b/drivers/scsi/ufs/ufs-sysfs.c
@@ -122,7 +122,7 @@ static void ufshcd_auto_hibern8_update(struct ufs_hba *hba, 
u32 ahit)
 {
        unsigned long flags;
 
-       if (!(hba->capabilities & MASK_AUTO_HIBERN8_SUPPORT))
+       if (!ufshcd_is_auto_hibern8_supported(hba))
                return;
 
        spin_lock_irqsave(hba->host->host_lock, flags);
@@ -164,7 +164,7 @@ static ssize_t auto_hibern8_show(struct device *dev,
 {
        struct ufs_hba *hba = dev_get_drvdata(dev);
 
-       if (!(hba->capabilities & MASK_AUTO_HIBERN8_SUPPORT))
+       if (!ufshcd_is_auto_hibern8_supported(hba))
                return -EOPNOTSUPP;
 
        return snprintf(buf, PAGE_SIZE, "%d\n", ufshcd_ahit_to_us(hba->ahit));
@@ -177,7 +177,7 @@ static ssize_t auto_hibern8_store(struct device *dev,
        struct ufs_hba *hba = dev_get_drvdata(dev);
        unsigned int timer;
 
-       if (!(hba->capabilities & MASK_AUTO_HIBERN8_SUPPORT))
+       if (!ufshcd_is_auto_hibern8_supported(hba))
                return -EOPNOTSUPP;
 
        if (kstrtouint(buf, 0, &timer))
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 8c1c551f2b42..0cf698d05426 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -3907,7 +3907,7 @@ static void ufshcd_auto_hibern8_enable(struct ufs_hba 
*hba)
 {
        unsigned long flags;
 
-       if (!(hba->capabilities & MASK_AUTO_HIBERN8_SUPPORT) || !hba->ahit)
+       if (!ufshcd_is_auto_hibern8_supported(hba) || !hba->ahit)
                return;
 
        spin_lock_irqsave(hba->host->host_lock, flags);
@@ -8312,7 +8312,7 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem 
*mmio_base, unsigned int irq)
                                                UIC_LINK_HIBERN8_STATE);
 
        /* Set the default auto-hiberate idle timer value to 150 ms */
-       if (hba->capabilities & MASK_AUTO_HIBERN8_SUPPORT) {
+       if (ufshcd_is_auto_hibern8_supported(hba)) {
                hba->ahit = FIELD_PREP(UFSHCI_AHIBERN8_TIMER_MASK, 150) |
                            FIELD_PREP(UFSHCI_AHIBERN8_SCALE_MASK, 3);
        }
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index ecfa898b9ccc..994d73d03207 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -740,6 +740,11 @@ return true;
 #endif
 }
 
+static inline bool ufshcd_is_auto_hibern8_supported(struct ufs_hba *hba)
+{
+       return (hba->capabilities & MASK_AUTO_HIBERN8_SUPPORT);
+}
+
 #define ufshcd_writel(hba, val, reg)   \
        writel((val), (hba)->mmio_base + (reg))
 #define ufshcd_readl(hba, reg) \
-- 
2.18.0

Reply via email to