Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: rockchip: i2s-tdm: fix shift config for SND_SOC_DAIFMT_DSP_[AB]

Commit 2f45a4e289779 ("ASoC: rockchip: i2s_tdm: Fixup config for
SND_SOC_DAIFMT_DSP_A/B") applied a partial change to fix the
configuration for DSP A and DSP B formats.

The shift control also needs updating to set the correct offset for
frame data compared to LRCK. Set the correct values.

Fixes: 081068fd64140 ("ASoC: rockchip: add support for i2s-tdm controller")
Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
Link: https://patch.msgid.link/20250204161311.2117240-1-jkeeping@inmusicbrands.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

John Keeping and committed by
Mark Brown
6b24e67b a8c9a453

+2 -2
+2 -2
sound/soc/rockchip/rockchip_i2s_tdm.c
··· 451 451 break; 452 452 case SND_SOC_DAIFMT_DSP_A: 453 453 val = I2S_TXCR_TFS_TDM_PCM; 454 - tdm_val = TDM_SHIFT_CTRL(0); 454 + tdm_val = TDM_SHIFT_CTRL(2); 455 455 break; 456 456 case SND_SOC_DAIFMT_DSP_B: 457 457 val = I2S_TXCR_TFS_TDM_PCM; 458 - tdm_val = TDM_SHIFT_CTRL(2); 458 + tdm_val = TDM_SHIFT_CTRL(4); 459 459 break; 460 460 default: 461 461 ret = -EINVAL;