]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ASoC: fsl_xcvr: clear the channel status control memory
authorShengjiu Wang <shengjiu.wang@nxp.com>
Wed, 26 Nov 2025 06:45:09 +0000 (14:45 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Dec 2025 13:03:20 +0000 (14:03 +0100)
[ Upstream commit 73b97d46dde64fa184d47865d4a532d818c3a007 ]

memset_io() writes memory byte by byte with __raw_writeb() on the arm
platform if the size is word. but XCVR data RAM memory can't be accessed
with byte address, so with memset_io() the channel status control memory
is not really cleared, use writel_relaxed() instead.

Fixes: 28564486866f ("ASoC: fsl_xcvr: Add XCVR ASoC CPU DAI driver")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20251126064509.1900974-1-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/fsl/fsl_xcvr.c

index 5d804860f7d8c8b5094d3475bc28f5d1b6472771..58db4906a01d5052f7cb30da42316bb26b43c954 100644 (file)
@@ -1421,7 +1421,7 @@ static irqreturn_t irq0_isr(int irq, void *devid)
                                                bitrev32(val);
                                }
                                /* clear CS control register */
-                               memset_io(reg_ctrl, 0, sizeof(val));
+                               writel_relaxed(0, reg_ctrl);
                        }
                } else {
                        regmap_read(xcvr->regmap, FSL_XCVR_RX_CS_DATA_0,