]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
ASoC: cs42l42: Always configure both ASP TX channels
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Fri, 15 Oct 2021 13:36:05 +0000 (14:36 +0100)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 4 Jan 2022 08:48:30 +0000 (09:48 +0100)
commita128efb00062397da8c9c919d22a1799af51bc31
tree5818265aa6e09c9e848271a10a50d26476aecfbf
parent7a1973f61e9fc0fca1312d71e8a014f91bc3538d
ASoC: cs42l42: Always configure both ASP TX channels

BugLink: https://bugs.launchpad.net/bugs/1951822
[ Upstream commit 6e6825801ab926360f7f4f2dbcfd107d5ab8f025 ]

An I2S frame always has two slots (left and right) even when sending
mono. The right channel (channel 2) of ASP TX will always have the
same bit width as the left channel and will always be on the high
phase of LRCLK.

The previous implementation always passed the field masks for both
channels to snd_soc_component_update_bits() but for mono the written value
only contained the settings for channel 1. The result was that for mono
channel 2 was set to 8-bit (which is an invalid configuration) with both
channels on the low phase of LRCLK.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 585e7079de0e ("ASoC: cs42l42: Add Capture Support")
Link: https://lore.kernel.org/r/20211015133619.4698-3-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
sound/soc/codecs/cs42l42.c