]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2025 12:30:16 +0000 (04:30 -0800)
[ Upstream commit 6b24e67b4056ba83b1e95e005b7e50fdb1cc6cf4 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/rockchip/rockchip_i2s_tdm.c

index acd75e48851fcfd012fb3c2556be8cc6cc1495fc..7feefeb6b876dc61c40c1ca1d5bf0fc27ed8dff1 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;