* [PATCH] soundwire: qcom: enable CPU interrupts only for MMIO controllers
@ 2026-11-09 4:21 Ivan Verbovoy via B4 Relay
2026-11-09 14:26 ` Konrad Dybcio
2026-11-09 14:50 ` Srinivas Kandagatla
0 siblings, 2 replies; 3+ messages in thread
From: Ivan Verbovoy via B4 Relay @ 2026-11-09 4:21 UTC (permalink / raw)
To: Srinivas Kandagatla, Vinod Koul, Bard Liao, Pierre-Louis Bossart,
Mohammad Rafi Shaik
Cc: linux-arm-msm, linux-sound, linux-kernel, Ivan Verbovoy
From: Ivan Verbovoy <ivanverbovoy@gmail.com>
Commit b27be5a85ed3 ("soundwire: qcom: add EE-aware register layout for
Shikra") dropped the ctrl->mmio check around the CPU interrupt enable in
qcom_swrm_init(), which its message does not mention. The enable has
been written for MMIO controllers only since they were added in
commit 82f5c70c2651 ("soundwire: qcom: add support for mmio soundwire
master devices"); a controller inside a codec, reached over SLIMbus, was
left alone.
On a Surface Duo (SM8150, a WCD9340 with one WSA8815 on its SoundWire)
the amplifier no longer enumerates since: "SWR bus clsh detected" at
boot, "link failed to connect" at each resume, and every stream fails
with -110. With the check back it enumerates and plays again. Shikra's
controller is MMIO and keeps the enable.
Fixes: b27be5a85ed3 ("soundwire: qcom: add EE-aware register layout for Shikra")
Signed-off-by: Ivan Verbovoy <ivanverbovoy@gmail.com>
---
drivers/soundwire/qcom.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index 147e55b7a600..99c1b6398894 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -995,8 +995,9 @@ static int qcom_swrm_init(struct qcom_swrm_ctrl *ctrl)
0xFFFFFFFF);
/* enable CPU IRQs for the selected EE window */
- ctrl->reg_write(ctrl, ctrl->reg_layout[SWRM_REG_INTERRUPT_CPU_EN],
- SWRM_INTERRUPT_STATUS_RMSK);
+ if (ctrl->mmio)
+ ctrl->reg_write(ctrl, ctrl->reg_layout[SWRM_REG_INTERRUPT_CPU_EN],
+ SWRM_INTERRUPT_STATUS_RMSK);
/* Set IRQ to PULSE */
ctrl->reg_write(ctrl, SWRM_COMP_CFG_ADDR,
---
base-commit: ddfe51b0a0f5dc9e415cc2c8ad8db17532dd426b
change-id: 20261109-swrm-mmio-irq-d896783a54da
Best regards,
--
Ivan Verbovoy <ivanverbovoy@gmail.com>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] soundwire: qcom: enable CPU interrupts only for MMIO controllers
2026-11-09 4:21 [PATCH] soundwire: qcom: enable CPU interrupts only for MMIO controllers Ivan Verbovoy via B4 Relay
@ 2026-11-09 14:26 ` Konrad Dybcio
2026-11-09 14:50 ` Srinivas Kandagatla
1 sibling, 0 replies; 3+ messages in thread
From: Konrad Dybcio @ 2026-11-09 14:26 UTC (permalink / raw)
To: ivanverbovoy, Srinivas Kandagatla, Vinod Koul, Bard Liao,
Pierre-Louis Bossart, Mohammad Rafi Shaik
Cc: linux-arm-msm, linux-sound, linux-kernel
On 11/9/26 5:21 AM, Ivan Verbovoy via B4 Relay wrote:
> From: Ivan Verbovoy <ivanverbovoy@gmail.com>
>
> Commit b27be5a85ed3 ("soundwire: qcom: add EE-aware register layout for
> Shikra") dropped the ctrl->mmio check around the CPU interrupt enable in
> qcom_swrm_init(), which its message does not mention. The enable has
> been written for MMIO controllers only since they were added in
> commit 82f5c70c2651 ("soundwire: qcom: add support for mmio soundwire
> master devices"); a controller inside a codec, reached over SLIMbus, was
> left alone.
>
> On a Surface Duo (SM8150, a WCD9340 with one WSA8815 on its SoundWire)
> the amplifier no longer enumerates since: "SWR bus clsh detected" at
> boot, "link failed to connect" at each resume, and every stream fails
> with -110. With the check back it enumerates and plays again. Shikra's
> controller is MMIO and keeps the enable.
>
> Fixes: b27be5a85ed3 ("soundwire: qcom: add EE-aware register layout for Shikra")
> Signed-off-by: Ivan Verbovoy <ivanverbovoy@gmail.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] soundwire: qcom: enable CPU interrupts only for MMIO controllers
2026-11-09 4:21 [PATCH] soundwire: qcom: enable CPU interrupts only for MMIO controllers Ivan Verbovoy via B4 Relay
2026-11-09 14:26 ` Konrad Dybcio
@ 2026-11-09 14:50 ` Srinivas Kandagatla
1 sibling, 0 replies; 3+ messages in thread
From: Srinivas Kandagatla @ 2026-11-09 14:50 UTC (permalink / raw)
To: ivanverbovoy, Srinivas Kandagatla, Vinod Koul, Bard Liao,
Pierre-Louis Bossart, Mohammad Rafi Shaik
Cc: linux-arm-msm, linux-sound, linux-kernel
On 11/9/26 4:21 AM, Ivan Verbovoy via B4 Relay wrote:
> From: Ivan Verbovoy <ivanverbovoy@gmail.com>
>
> Commit b27be5a85ed3 ("soundwire: qcom: add EE-aware register layout for
> Shikra") dropped the ctrl->mmio check around the CPU interrupt enable in
> qcom_swrm_init(), which its message does not mention. The enable has
> been written for MMIO controllers only since they were added in
> commit 82f5c70c2651 ("soundwire: qcom: add support for mmio soundwire
> master devices"); a controller inside a codec, reached over SLIMbus, was
> left alone.
>
> On a Surface Duo (SM8150, a WCD9340 with one WSA8815 on its SoundWire)
> the amplifier no longer enumerates since: "SWR bus clsh detected" at
> boot, "link failed to connect" at each resume, and every stream fails
> with -110. With the check back it enumerates and plays again. Shikra's
> controller is MMIO and keeps the enable.
>
> Fixes: b27be5a85ed3 ("soundwire: qcom: add EE-aware register layout for Shikra")
> Signed-off-by: Ivan Verbovoy <ivanverbovoy@gmail.com>
> ---
lgtm,
Reviewed-by: Srinivas Kandagatla<srinivas.kandagatla@oss.qualcomm.com>
--Srini
> drivers/soundwire/qcom.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
> index 147e55b7a600..99c1b6398894 100644
> --- a/drivers/soundwire/qcom.c
> +++ b/drivers/soundwire/qcom.c
> @@ -995,8 +995,9 @@ static int qcom_swrm_init(struct qcom_swrm_ctrl *ctrl)
> 0xFFFFFFFF);
>
> /* enable CPU IRQs for the selected EE window */
> - ctrl->reg_write(ctrl, ctrl->reg_layout[SWRM_REG_INTERRUPT_CPU_EN],
> - SWRM_INTERRUPT_STATUS_RMSK);
> + if (ctrl->mmio)
> + ctrl->reg_write(ctrl, ctrl->reg_layout[SWRM_REG_INTERRUPT_CPU_EN],
> + SWRM_INTERRUPT_STATUS_RMSK);
>
> /* Set IRQ to PULSE */
> ctrl->reg_write(ctrl, SWRM_COMP_CFG_ADDR,
>
> ---
> base-commit: ddfe51b0a0f5dc9e415cc2c8ad8db17532dd426b
> change-id: 20261109-swrm-mmio-irq-d896783a54da
>
> Best regards,
> --
> Ivan Verbovoy <ivanverbovoy@gmail.com>
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-09 14:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-09 4:21 [PATCH] soundwire: qcom: enable CPU interrupts only for MMIO controllers Ivan Verbovoy via B4 Relay
2026-11-09 14:26 ` Konrad Dybcio
2026-11-09 14:50 ` Srinivas Kandagatla
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®