[PATCH RFC] scsi: ufs: ufs-qcom: Fix ICC bandwidth votes for DDR path
From: Alexander Koskovich
Date: Tue Oct 06 2026 - 10:44:42 EST
From: Manish Pandey <manish.pandey@xxxxxxxxxxxxxxxx>
The DDR ICC vote was using icc_set_bw(0, mem_bw), which sets only the
peak bandwidth. On Qualcomm NoC, peak votes alone do not guarantee the
required aggregate bandwidth. As a result, when other clients (such as
USB) are removed, the total NoC bandwidth drops and UFS performance
KPIs degrade.
Use mem_bw as the average bandwidth and 0 as the peak value so the DDR
path gets an effective and sustained bandwidth vote.
Signed-off-by: Manish Pandey <manish.pandey@xxxxxxxxxxxxxxxx>
Signed-off-by: Alexander Koskovich <akoskovich@xxxxx>
---
On a downstream 6.6 kernel on Palima, one UFS part (Samsung KLUFG8RHGB-B0E1)
fails hibern8 exit with auto hibernate enabled unless this change is applied,
the other Sandisk UFS part is fine without it. The downstream 5.10 kernel
for the same board voted this path as average bandwidth through DT and did
not have the problem.
I could not reproduce the performance regression from the commit desc on
mainline though on the Nothing Phone (3a) (Milos, SK hynix H9QT1GGCN6X147),
tested without this change applied, dropped USB vote and compared UFS perf,
could just be something wrong with my test though.
Wanted some opinions if this change was correct for mainline regardless.
---
drivers/ufs/host/ufs-qcom.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index 7e6cb6dc42d1..4b23037d571b 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -950,7 +950,7 @@ static int ufs_qcom_icc_set_bw(struct ufs_qcom_host *host, u32 mem_bw, u32 cfg_b
struct device *dev = host->hba->dev;
int ret;
- ret = icc_set_bw(host->icc_ddr, 0, mem_bw);
+ ret = icc_set_bw(host->icc_ddr, mem_bw, 0);
if (ret < 0) {
dev_err(dev, "failed to set bandwidth request: %d\n", ret);
return ret;
---
base-commit: bf1ee2bd5c2da8992f33c8950ef194aaff74ed6c
change-id: 20261006-ufs-icc-bw-e2a8bf90118e
Best regards,
--
Alexander Koskovich <akoskovich@xxxxx>