]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ASoC: fsl: imx-card: Do not force slot width to sample width
authorFabio Estevam <festevam@gmail.com>
Sun, 18 Jan 2026 20:50:30 +0000 (17:50 -0300)
committerMark Brown <broonie@kernel.org>
Tue, 20 Jan 2026 12:56:02 +0000 (12:56 +0000)
commit9210f5ff6318163835d9e42ee68006be4da0f531
tree333510f1bb0e939d0720f8be26d85097d7c80be6
parent2e48020fd7ced9e9953c55b57a5cb608e64deee0
ASoC: fsl: imx-card: Do not force slot width to sample width

imx-card currently sets the slot width to the physical sample width
for I2S links. This breaks controllers that use fixed-width slots
(e.g. 32-bit FIFO words), causing the unused bits in the slot to
contain undefined data when playing 16-bit streams.

Do not override the slot width in the machine driver and let the CPU
DAI select an appropriate default instead. This matches the behavior
of simple-audio-card and avoids embedding controller-specific policy
in the machine driver.

On an i.MX8MP-based board using SAI as the I2S master with 32-bit slots,
playing 16-bit audio resulted in spurious frequencies and an incorrect
SAI data waveform, as the slot width was forced to 16 bits. After this
change, audio artifacts are eliminated and the 16-bit samples correctly
occupy the first half of the 32-bit slot, with the remaining bits padded
with zeroes.

Cc: stable@vger.kernel.org
Fixes: aa736700f42f ("ASoC: imx-card: Add imx-card machine driver")
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com>
Link: https://patch.msgid.link/20260118205030.1532696-1-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/imx-card.c