Hi Federico,
On 2026-07-09 19:00, Federico Amedeo Izzo via B4 Relay wrote:
From: Federico Amedeo Izzo <[email protected]>
The slimbus controller register base was calculated using the
controller ID and the register size, producing wrong results for ID >
1.
The expression reduces to ngd->base = ctrl->base for controller with ID
= 1;
but for ID > 1 the other factors produce a wrong base address.
This bug caused a crash while trying to bring-up the secondary
slimbus controller (ID = 3) on oneplus-enchilada with sdm845.
In practice, the correct base address for each slimbus controller can
be
obtained from the device-tree, so there is no need for further
calculations.
This was validated by reading the version register from the WCN3990
slim
interface on oneplus-enchilada.
---
Please remove the ---, otherwise your S-o-b will be dropped when
applying the patch.
Also Fixes: ?
Signed-off-by: Federico Amedeo Izzo <[email protected]>
---
drivers/slimbus/qcom-ngd-ctrl.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/slimbus/qcom-ngd-ctrl.c
b/drivers/slimbus/qcom-ngd-ctrl.c
index 80877e951849..91932f8d021b 100644
--- a/drivers/slimbus/qcom-ngd-ctrl.c
+++ b/drivers/slimbus/qcom-ngd-ctrl.c
@@ -1547,8 +1547,7 @@ static int of_qcom_slim_ngd_register(struct
device *parent,
kfree(ngd);
return ret;
}
- ngd->base = ctrl->base + ngd->id * data->offset +
- (ngd->id - 1) * data->size;
+ ngd->base = ctrl->base + data->offset;
return 0;
}
---
base-commit: b9810cd75b9fb56a3425d391cba3f608502bd474
change-id: 20260709-qcom-ngd-register-base-fix-a59713a184b8
Best regards,
--
Federico Amedeo Izzo <[email protected]>