• Jarkko Nikula's avatar
    ASoC: max98090: Fix digital microphone · 4cf703a7
    Jarkko Nikula authored
    Commit e409dfbf ("ASoC: dapm: Add a few supply widget sanity checks")
    broke digital microphone support in max98090.c:
    
    max98090 i2c-193C9890:00: Conditional paths are not supported for supply widgets (DMICL_ENA -> [DMIC] -> DMIC Mux)
    max98090 i2c-193C9890:00: ASoC: no dapm match for DMICL_ENA --> DMIC --> DMIC Mux
    max98090 i2c-193C9890:00: ASoC: Failed to add route DMICL_ENA -> DMIC -> DMIC Mux
    max98090 i2c-193C9890:00: Conditional paths are not supported for supply widgets (DMICR_ENA -> [DMIC] -> DMIC Mux)
    max98090 i2c-193C9890:00: ASoC: no dapm match for DMICR_ENA --> DMIC --> DMIC Mux
    max98090 i2c-193C9890:00: ASoC: Failed to add route DMICR_ENA -> DMIC -> DMIC Mux
    
    Problem is partially caused by commit f69e3caa ("ASoC: max98090: Enable
    both DMIC channels also when using mono configuration") which connects
    "DMICL_ENA" and "DMICR_ENA" supply widgets to "DMIC Mux".
    
    Fix the breakage by reverting f69e3caa and then by adding additional
    "DMICR_ENA" to "DMICL" and "DMICL_ENA" to "DMICR" cross-connections. This
    disconnects these supply widgets from the mux and makes sure that both DMIC
    data channels are still enabled together.
    Signed-off-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    4cf703a7
max98090.c 80.5 KB