]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: rockchip: i2s-tdm: fix shift config for SND_SOC_DAIFMT_DSP_[AB]
authorJohn Keeping <jkeeping@inmusicbrands.com>
Tue, 4 Feb 2025 16:13:10 +0000 (16:13 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 4 Feb 2025 16:26:48 +0000 (16:26 +0000)
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>
sound/soc/rockchip/rockchip_i2s_tdm.c

index 7f5fcaecee4b628a4d53c9405859a6ad68729a40..78ab88843f8613a4cf06391a1121f61165515405 100644 (file)
@@ -451,11 +451,11 @@ static int rockchip_i2s_tdm_set_fmt(struct snd_soc_dai *cpu_dai,
                        break;
                case SND_SOC_DAIFMT_DSP_A:
                        val = I2S_TXCR_TFS_TDM_PCM;
-                       tdm_val = TDM_SHIFT_CTRL(0);
+                       tdm_val = TDM_SHIFT_CTRL(2);
                        break;
                case SND_SOC_DAIFMT_DSP_B:
                        val = I2S_TXCR_TFS_TDM_PCM;
-                       tdm_val = TDM_SHIFT_CTRL(2);
+                       tdm_val = TDM_SHIFT_CTRL(4);
                        break;
                default:
                        ret = -EINVAL;