]> 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>
Fri, 7 Mar 2025 15:56:33 +0000 (16:56 +0100)
[ 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 d20438cf8fc4a3400f196aa2ba3a573a10b99262..ff743ba0a94415c940272c31024ecef1e5408f47 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;