]> 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:10:47 +0000 (04:10 -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 14e5c53e697b0e0deedd9358e9a8e30a6e2dadbf..7ae93cbaea9a7771749e70b7de7ba96b8bcae107 100644 (file)
@@ -453,11 +453,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;