• Hans de Goede's avatar
    ASoC: Intel: cht_bsw_rt5672: Change bus format to I2S 2 channel · 0ceb8a36
    Hans de Goede authored
    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: default avatarHans 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.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    0ceb8a36
cht_bsw_rt5672.c 13.2 KB