]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerMark Brown <broonie@kernel.org>
Wed, 26 Nov 2025 13:24:19 +0000 (13:24 +0000)
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>
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,