• Charles Keepax's avatar
    ASoC: wm8998: Correct handling of input muxes · d24e95f8
    Charles Keepax authored
    Currently, wm8998 has two input mux controls on IN1 and attempts to
    switch these together when the A position is configured to be in digital
    mode. This is because the digital mode requires pins from both the L and
    R channels. However, this doesn't work as intended because whilst the
    registers on the chip are changed the corresponding DAPM
    representation is only updated for the mux actually being changed by the
    user. The DAPM graph being out of sync with the hardware can cause some
    odd issues with incorrect things being powered etc.
    
    To avoid this issue and simplify the code somewhat, simply let the user
    set the muxes as they desire. If they set an invalid configuration they
    might not get audio from the DMIC but most of the chip requires you to
    set a valid audio route to get audio.
    Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    d24e95f8
wm8998.c 48.7 KB