From: Yue Hu <[email protected]>
There are several redundant calls to ufshcd_is_wb_allowed() as below:
ufshcd_wb_config()
|-> ufshcd_is_wb_allowed()
|-> ufshcd_wb_toggle() -> ufshcd_is_wb_allowed()
|-> ufshcd_wb_toggle_flush() -> ufshcd_is_wb_allowed()
wb_on_store()
|-> ufshcd_is_wb_allowed()
|-> ufshcd_wb_toggle() -> ufshcd_is_wb_allowed()
Considering code handling in wb_on_store(), let's remove needless
ufshcd_is_wb_allowed() in ufshcd_wb_toggle(). Meanwhile, keep the
check in caller ufshcd_devfreq_scale(). Accordingly, also remove
the redundant check in ufshcd_wb_toggle_flush().
Signed-off-by: Yue Hu <[email protected]>
---
drivers/scsi/ufs/ufshcd.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index b6bfc80..ee71cba 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -1260,7 +1260,8 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up)
/* Enable Write Booster if we have scaled up else disable it */
downgrade_write(&hba->clk_scaling_lock);
is_writelock = false;
- ufshcd_wb_toggle(hba, scale_up);
+ if (ufshcd_is_wb_allowed(hba))
+ ufshcd_wb_toggle(hba, scale_up);
out_unprepare:
ufshcd_clock_scaling_unprepare(hba, is_writelock);
@@ -5438,9 +5439,6 @@ int ufshcd_wb_toggle(struct ufs_hba *hba, bool enable)
{
int ret;
- if (!ufshcd_is_wb_allowed(hba))
- return 0;
-
if (!(enable ^ hba->dev_info.wb_enabled))
return 0;
@@ -5477,8 +5475,7 @@ static inline void ufshcd_wb_toggle_flush(struct ufs_hba *hba, bool enable)
{
int ret;
- if (!ufshcd_is_wb_allowed(hba) ||
- hba->dev_info.wb_buf_flush_enabled == enable)
+ if (hba->dev_info.wb_buf_flush_enabled == enable)
return;
ret = __ufshcd_wb_toggle(hba, enable, QUERY_FLAG_IDN_WB_BUFF_FLUSH_EN);
--
1.9.1