summaryrefslogtreecommitdiffstats
path: root/include/ufs/ufshcd.h
diff options
context:
space:
mode:
authorRam Prakash Gupta <quic_rampraka@quicinc.com>2024-06-27 10:37:55 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2024-07-05 04:48:33 +0200
commit50183ac2cfb54e027dd36fb22ea1bd1e91e3a08b (patch)
tree56aaa86ba8d7945687008ddbc4da7c590e39c405 /include/ufs/ufshcd.h
parentscsi: mpi3mr: Correct a test in mpi3mr_sas_port_add() (diff)
downloadlinux-50183ac2cfb54e027dd36fb22ea1bd1e91e3a08b.tar.xz
linux-50183ac2cfb54e027dd36fb22ea1bd1e91e3a08b.zip
scsi: ufs: core: Suspend clk scaling on no request
Currently UFS clk scaling is getting suspended only when the clks are scaled down. When high load is generated, a huge amount of latency is added due to scaling up the clk and completing the request post that. Suspending the scaling in its existing state when high load is generated improves the random performance KPI by 28%. So suspending the scaling when there are no requests. And the clk would be put in low scaled state when the actual request load is low. Make this change optional by having the check enabled using vops since for some devices suspending without bringing the clk in low scaled state might have impact on power consumption of the SoC. Signed-off-by: Ram Prakash Gupta <quic_rampraka@quicinc.com> Link: https://lore.kernel.org/r/20240627083756.25340-2-quic_rampraka@quicinc.com Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'include/ufs/ufshcd.h')
-rw-r--r--include/ufs/ufshcd.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h
index 9e0581115b34..049520bcc6c0 100644
--- a/include/ufs/ufshcd.h
+++ b/include/ufs/ufshcd.h
@@ -459,6 +459,7 @@ struct ufs_clk_scaling {
bool is_initialized;
bool is_busy_started;
bool is_suspended;
+ bool suspend_on_no_request;
};
#define UFS_EVENT_HIST_LENGTH 8