From: Daniel Carter <yass27106@gmail.com>
To: krzk@kernel.org, andersson@kernel.org, broonie@kernel.org,
srini@kernel.org, konradybcio@kernel.org
Cc: robh@kernel.org, conor+dt@kernel.org, vkoul@kernel.org,
tiwai@suse.com, perex@perex.cz, lgirdwood@gmail.com,
pierre-louis.bossart@linux.dev, yung-chuan.liao@linux.intel.com,
abelvesa@kernel.org, linux-arm-msm@vger.kernel.org,
linux-sound@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, yass27106@gmail.com
Subject: [PATCH v4 3/3] soundwire: qcom: check clk_prepare_enable() return values
Date: Sat, 14 Nov 2026 00:30:33 -0800 (PST) [thread overview]
Message-ID: <d5888e6336644236bcb3dad4e28fdb5f@gmail.com> (raw)
In-Reply-To: <6ffb6f7ab9794a49a50771d23b3a1e1f@gmail.com>
clk_prepare_enable() can fail; unchecked, the driver proceeds to
touch registers with the interface clock off, which aborts on arm64.
Check the return value in the interrupt handler (returning IRQ_NONE,
as the interrupt status is not read or cleared on that path), in
probe, and in the runtime resume path (returning the error without
unmasking the level-high wake IRQ, which would storm while the slave
keeps driving the line).
Fixes: 02efb49aa805 ("soundwire: qcom: add support for SoundWire controller")
Fixes: 74e79da9fd46 ("soundwire: qcom: add runtime pm support")
Signed-off-by: Daniel Carter <yass27106@gmail.com>
---
drivers/soundwire/qcom.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index 6e0c5fb10ef..62a44f64dd8 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -778,7 +778,9 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id)
u32 i;
int devnum;
int ret = IRQ_HANDLED;
- clk_prepare_enable(ctrl->hclk);
+
+ if (clk_prepare_enable(ctrl->hclk))
+ return IRQ_NONE;
ctrl->reg_read(ctrl, ctrl->reg_layout[SWRM_REG_INTERRUPT_STATUS],
&intr_sts);
@@ -1675,7 +1677,11 @@ static int qcom_swrm_probe(struct platform_device *pdev)
goto err_init;
}
- clk_prepare_enable(ctrl->hclk);
+ ret = clk_prepare_enable(ctrl->hclk);
+ if (ret) {
+ dev_err(dev, "unable to enable iface clock\n");
+ goto err_init;
+ }
ctrl->dev = dev;
dev_set_drvdata(&pdev->dev, ctrl);
@@ -1800,7 +1806,9 @@ static int __maybe_unused swrm_runtime_resume(struct device *dev)
disable_irq_nosync(ctrl->wake_irq);
}
- clk_prepare_enable(ctrl->hclk);
+ ret = clk_prepare_enable(ctrl->hclk);
+ if (ret)
+ return ret;
if (ctrl->clock_stop_not_supported) {
reinit_completion(&ctrl->enumeration);
--
2.55.0
next prev parent reply other threads:[~2026-11-14 8:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-14 8:30 [PATCH v4 0/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA Daniel Carter
2026-11-14 8:30 ` [PATCH v4 1/3] dt-bindings: arm: qcom: document " Daniel Carter
2026-11-14 8:30 ` [PATCH v4 2/3] arm64: dts: qcom: add device tree for " Daniel Carter
2026-11-14 8:30 ` Daniel Carter [this message]
2026-11-14 8:41 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d5888e6336644236bcb3dad4e28fdb5f@gmail.com \
--to=yass27106@gmail.com \
--cc=abelvesa@kernel.org \
--cc=andersson@kernel.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=pierre-louis.bossart@linux.dev \
--cc=robh@kernel.org \
--cc=srini@kernel.org \
--cc=tiwai@suse.com \
--cc=vkoul@kernel.org \
--cc=yung-chuan.liao@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.