From: Linus Walleij <linusw@kernel.org>
To: Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
Philipp Zabel <p.zabel@pengutronix.de>
Cc: linux-sound@vger.kernel.org, Linus Walleij <linusw@kernel.org>
Subject: [PATCH 5/9] ASoC: ux500: Deassert the MSP reset during probe
Date: Wed, 02 Sep 2026 00:43:48 +0200 [thread overview]
Message-ID: <20260902-ux500-msp-fixes-v1-5-da1447fd9f7b@kernel.org> (raw)
In-Reply-To: <20260902-ux500-msp-fixes-v1-0-da1447fd9f7b@kernel.org>
The devicetree has described each MSP reset line since the PRCC reset
controller was added, but the driver never acquires or deasserts it. The
block can consequently remain inaccessible when firmware has left it in
reset.
Acquire the reset exclusively and keep it deasserted for the lifetime of
the bound device.
Fixes: 95f04048325c ("ARM: dts: ux500: Add reset lines to IP blocks")
Assisted-by: LLM
Signed-off-by: Linus Walleij <linusw@kernel.org>
---
sound/soc/ux500/ux500_msp_dai.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sound/soc/ux500/ux500_msp_dai.c b/sound/soc/ux500/ux500_msp_dai.c
index 599de5de23dd..8450a4799c0f 100644
--- a/sound/soc/ux500/ux500_msp_dai.c
+++ b/sound/soc/ux500/ux500_msp_dai.c
@@ -14,6 +14,7 @@
#include <linux/clk.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
+#include <linux/reset.h>
#include <linux/mfd/dbx500-prcmu.h>
#include <sound/soc.h>
@@ -686,6 +687,7 @@ static const struct snd_soc_component_driver ux500_msp_component = {
static int ux500_msp_drv_probe(struct platform_device *pdev)
{
struct ux500_msp_i2s_drvdata *drvdata;
+ struct reset_control *reset;
int ret = 0;
drvdata = devm_kzalloc(&pdev->dev,
@@ -733,6 +735,11 @@ static int ux500_msp_drv_probe(struct platform_device *pdev)
return -EINVAL;
}
+ reset = devm_reset_control_get_exclusive_deasserted(&pdev->dev, NULL);
+ if (IS_ERR(reset))
+ return dev_err_probe(&pdev->dev, PTR_ERR(reset),
+ "Failed to deassert MSP reset\n");
+
ret = ux500_msp_i2s_init_msp(pdev, &drvdata->msp);
if (ret) {
dev_err(&pdev->dev,
--
2.55.0
next prev parent reply other threads:[~2026-09-01 22:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-01 22:43 [PATCH 0/9] ASoC: ux500: Fix MSP lifecycle, clocking and resources Linus Walleij
2026-09-01 22:43 ` [PATCH 1/9] ASoC: ux500: Fix MSP stream lifecycle handling Linus Walleij
2026-09-01 22:43 ` [PATCH 2/9] ASoC: ux500: Propagate MSP setup errors Linus Walleij
2026-09-01 22:43 ` [PATCH 3/9] ASoC: ux500: Correct MSP frame and bit clock setup Linus Walleij
2026-09-01 22:43 ` [PATCH 4/9] ASoC: ux500: Validate MSP DAI configuration Linus Walleij
2026-09-01 22:43 ` Linus Walleij [this message]
2026-09-01 22:43 ` [PATCH 6/9] ASoC: ux500: Request the MSP MMIO resource Linus Walleij
2026-09-01 22:43 ` [PATCH 7/9] ASoC: ux500: Remove obsolete PRCMU QoS calls Linus Walleij
2026-09-01 22:43 ` [PATCH 8/9] ASoC: ux500: Allow repeated MSP prepare calls Linus Walleij
2026-09-01 22:43 ` [PATCH 9/9] ASoC: ux500: Program the MSP FIFO watermarks Linus Walleij
2026-09-01 23:09 ` [PATCH 0/9] ASoC: ux500: Fix MSP lifecycle, clocking and resources Mark Brown
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=20260902-ux500-msp-fixes-v1-5-da1447fd9f7b@kernel.org \
--to=linusw@kernel.org \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-sound@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=perex@perex.cz \
--cc=tiwai@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox