OSDN Git Service

ASoC: Intel: cht_bsw_rt5672: Change bus format to I2S 2 channel
authorHans de Goede <hdegoede@redhat.com>
Sun, 28 Jun 2020 15:52:26 +0000 (17:52 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 29 Jun 2020 19:37:18 +0000 (20:37 +0100)
commit0ceb8a36d023d4bb4ffca3474a452fb1dfaa0ef2
tree55a51b7c5bf4a98f5bbcd50e78dca4951532e917
parentb6aa06de7757667bac88997a8807b143b8436035
ASoC: Intel: cht_bsw_rt5672: Change bus format to I2S 2 channel

The default mode for SSP configuration is TDM 4 slot and so far we were
using this for the bus format on cht-bsw-rt56732 boards.

One board, the Lenovo Miix 2 10 uses not 1 but 2 codecs connected to SSP2.
The second piggy-backed, output-only codec is inside the keyboard-dock
(which has extra speakers). Unlike the main rt5672 codec, we cannot
configure this codec, it is hard coded to use 2 channel 24 bit I2S.

Using 4 channel TDM leads to the dock speakers codec (which listens in on
the data send from the SSP to the rt5672 codec) emiting horribly distorted
sound.

Since we only support 2 channels anyways, there is no need for TDM on any
cht-bsw-rt5672 designs. So we can simply use I2S 2ch everywhere.

This commit fixes the Lenovo Miix 2 10 dock speakers issue by changing
the bus format set in cht_codec_fixup() to I2S 2 channel.

This change has been tested on the following devices with a rt5672 codec:

Lenovo Miix 2 10
Lenovo Thinkpad 8
Lenovo Thinkpad 10 (gen 1)

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Cc: stable@vger.kernel.org
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1786723
Link: https://lore.kernel.org/r/20200628155231.71089-2-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/cht_bsw_rt5672.c