[1/2] ASoC: max98090: Enable both DMIC channels also when using mono configuration
diff mbox

Message ID 1411737938-29903-1-git-send-email-jarkko.nikula@linux.intel.com
State Accepted
Commit f69e3caa9e1855737bf1e99e1fe4488e33d74bfe
Headers show

Commit Message

Jarkko Nikula Sept. 26, 2014, 1:25 p.m. UTC
According to MAX98090 specification "Digital microphone clock (DMC) is
enabled once both data channels are enabled.". Therefore both digital
microphone data channels must be enabled also when using mono microphone
configuration.

Fix this by moving "DMICL_ENA" and "DMICR_ENA" supply widgets from "DMICL"
and "DMICR" inputs to "DMIC Mux" in order to enable both data channels
whenever there is active mono or stereo digital microphone input path.

Use of "DMICL" and "DMICR" inputs are retained for informative source and in
case the driver would find use for exact digital microphone configuration in
the future.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
---
for-next, only byt-max98090 uses DMIC and I noticed this after disabling
unused codec pins.
---
 sound/soc/codecs/max98090.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Mark Brown Sept. 28, 2014, 11:04 a.m. UTC | #1
On Fri, Sep 26, 2014 at 04:25:37PM +0300, Jarkko Nikula wrote:
> According to MAX98090 specification "Digital microphone clock (DMC) is
> enabled once both data channels are enabled.". Therefore both digital
> microphone data channels must be enabled also when using mono microphone
> configuration.

Applied, thanks.

Patch
diff mbox

diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
index f2a3f30a5d9f..d519294f57c7 100644
--- a/sound/soc/codecs/max98090.c
+++ b/sound/soc/codecs/max98090.c
@@ -1311,8 +1311,6 @@  static const struct snd_soc_dapm_route max98090_dapm_routes[] = {
 	{"MIC1 Input", NULL, "MIC1"},
 	{"MIC2 Input", NULL, "MIC2"},
 
-	{"DMICL", NULL, "DMICL_ENA"},
-	{"DMICR", NULL, "DMICR_ENA"},
 	{"DMICL", NULL, "AHPF"},
 	{"DMICR", NULL, "AHPF"},
 
@@ -1370,6 +1368,8 @@  static const struct snd_soc_dapm_route max98090_dapm_routes[] = {
 	{"DMIC Mux", "ADC", "ADCR"},
 	{"DMIC Mux", "DMIC", "DMICL"},
 	{"DMIC Mux", "DMIC", "DMICR"},
+	{"DMIC Mux", "DMIC", "DMICL_ENA"},
+	{"DMIC Mux", "DMIC", "DMICR_ENA"},
 
 	{"LBENL Mux", "Normal", "DMIC Mux"},
 	{"LBENL Mux", "Loopback", "LTENL Mux"},