* [PATCH RESEND] ASoC: fsl: imx-card: Do not force slot width to sample width
@ 2026-01-18 20:50 Fabio Estevam
2026-01-20 7:14 ` Shengjiu Wang
2026-01-20 19:21 ` Mark Brown
0 siblings, 2 replies; 3+ messages in thread
From: Fabio Estevam @ 2026-01-18 20:50 UTC (permalink / raw)
To: broonie; +Cc: shengjiu.wang, linux-sound, imx, Fabio Estevam, stable
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>
---
sound/soc/fsl/imx-card.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/sound/soc/fsl/imx-card.c b/sound/soc/fsl/imx-card.c
index 28699d7b75ca..05b4e971a366 100644
--- a/sound/soc/fsl/imx-card.c
+++ b/sound/soc/fsl/imx-card.c
@@ -346,7 +346,6 @@ static int imx_aif_hw_params(struct snd_pcm_substream *substream,
SND_SOC_DAIFMT_PDM;
} else {
slots = 2;
- slot_width = params_physical_width(params);
fmt = (rtd->dai_link->dai_fmt & ~SND_SOC_DAIFMT_FORMAT_MASK) |
SND_SOC_DAIFMT_I2S;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH RESEND] ASoC: fsl: imx-card: Do not force slot width to sample width
2026-01-18 20:50 [PATCH RESEND] ASoC: fsl: imx-card: Do not force slot width to sample width Fabio Estevam
@ 2026-01-20 7:14 ` Shengjiu Wang
2026-01-20 19:21 ` Mark Brown
1 sibling, 0 replies; 3+ messages in thread
From: Shengjiu Wang @ 2026-01-20 7:14 UTC (permalink / raw)
To: Fabio Estevam; +Cc: broonie, linux-sound, imx, stable
On Mon, Jan 19, 2026 at 4:50 AM Fabio Estevam <festevam@gmail.com> wrote:
>
> 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>
Best regards
Shengjiu Wang
> ---
> sound/soc/fsl/imx-card.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/sound/soc/fsl/imx-card.c b/sound/soc/fsl/imx-card.c
> index 28699d7b75ca..05b4e971a366 100644
> --- a/sound/soc/fsl/imx-card.c
> +++ b/sound/soc/fsl/imx-card.c
> @@ -346,7 +346,6 @@ static int imx_aif_hw_params(struct snd_pcm_substream *substream,
> SND_SOC_DAIFMT_PDM;
> } else {
> slots = 2;
> - slot_width = params_physical_width(params);
> fmt = (rtd->dai_link->dai_fmt & ~SND_SOC_DAIFMT_FORMAT_MASK) |
> SND_SOC_DAIFMT_I2S;
> }
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH RESEND] ASoC: fsl: imx-card: Do not force slot width to sample width
2026-01-18 20:50 [PATCH RESEND] ASoC: fsl: imx-card: Do not force slot width to sample width Fabio Estevam
2026-01-20 7:14 ` Shengjiu Wang
@ 2026-01-20 19:21 ` Mark Brown
1 sibling, 0 replies; 3+ messages in thread
From: Mark Brown @ 2026-01-20 19:21 UTC (permalink / raw)
To: Fabio Estevam; +Cc: shengjiu.wang, linux-sound, imx, stable
On Sun, 18 Jan 2026 17:50:30 -0300, Fabio Estevam wrote:
> 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.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: fsl: imx-card: Do not force slot width to sample width
commit: 9210f5ff6318163835d9e42ee68006be4da0f531
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-01-20 19:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-18 20:50 [PATCH RESEND] ASoC: fsl: imx-card: Do not force slot width to sample width Fabio Estevam
2026-01-20 7:14 ` Shengjiu Wang
2026-01-20 19:21 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox