[PATCH] slimbus: qcom-ngd-ctrl: match downstream DEF_ACT_CHAN encoding
Casey Tunturi via B4 Relay <[email protected]>
| Newsgroups | gmane.linux.kernel.stable,gmane.linux.ports.arm.msm,gmane.linux.sound,gmane.linux.kernel |
|---|---|
| Message-ID | <20260807-slimbus-def-act-chan-v1-1-fd542efb3d30@samaritansolutions.net> |
From: Casey Tunturi <[email protected]> During my investigations, and some rather incessant cross-checking of blueline's SLIMbus path, I found that Qualcomm's downstream driver packs the first DEF_ACT_CHAN byte differently from mainline. Bits [7:5] hold the data format; bits [4:0] hold the five-bit client number. I changed ours to match. It made no immediate difference on my own hardware: blueline's current values produce 0x0f either way. The downstream layout is correct and should help devices that use upper logical-address bits or a non-zero data format. Fixes: 52490169cddf ("slimbus: ngd: add stream support") Cc: [email protected] Signed-off-by: Casey Tunturi <[email protected]> --- drivers/slimbus/qcom-ngd-ctrl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c index 3071e46d0..14192380d 100644 --- a/drivers/slimbus/qcom-ngd-ctrl.c +++ b/drivers/slimbus/qcom-ngd-ctrl.c @@ -1018,7 +1018,8 @@ static int qcom_slim_ngd_enable_stream(struct slim_stream_runtime *rt) if (txn.msg->num_bytes == 0) { int exp = 0, coef = 0; - wbuf[txn.msg->num_bytes++] = sdev->laddr; + wbuf[txn.msg->num_bytes++] = + (port->ch.data_fmt << 5) | (sdev->laddr & 0x1f); wbuf[txn.msg->num_bytes] = rt->bps >> 2 | (port->ch.aux_fmt << 6); --- base-commit: 55f2ea9ff83cc27a85526b14bc9b32f96a08d6ec change-id: 20260807-slimbus-def-act-chan-b70e4fb7abb1 Best regards, -- Casey Tunturi <[email protected]>