From 2e025248a2e9dc36c441aadd65ac1ed869be347d Mon Sep 17 00:00:00 2001 From: Laxminath Kasam Date: Wed, 1 Apr 2020 10:45:30 +0530 Subject: [PATCH] asoc: codecs: Set EAR compander if mixer ctl set Enable compander based on mixer ctl set for ear path. Change-Id: Ie6287469f1baa9dba239d369bd5a29ed8e44522f Signed-off-by: Laxminath Kasam --- asoc/codecs/wcd937x/wcd937x.c | 7 ++++++- asoc/codecs/wcd938x/wcd938x.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/asoc/codecs/wcd937x/wcd937x.c b/asoc/codecs/wcd937x/wcd937x.c index 725fef85b4..f380f54e83 100644 --- a/asoc/codecs/wcd937x/wcd937x.c +++ b/asoc/codecs/wcd937x/wcd937x.c @@ -577,7 +577,8 @@ static int wcd937x_codec_ear_dac_event(struct snd_soc_dapm_widget *w, snd_soc_component_update_bits(component, WCD937X_HPH_NEW_INT_RDAC_HD2_CTL_L, 0x0F, 0x06); - snd_soc_component_update_bits(component, + if (wcd937x->comp1_enable) + snd_soc_component_update_bits(component, WCD937X_DIGITAL_CDC_COMP_CTL_0, 0x02, 0x02); usleep_range(5000, 5010); @@ -595,6 +596,10 @@ static int wcd937x_codec_ear_dac_event(struct snd_soc_dapm_widget *w, snd_soc_component_update_bits(component, WCD937X_HPH_NEW_INT_RDAC_HD2_CTL_L, 0x0F, 0x01); + if (wcd937x->comp1_enable) + snd_soc_component_update_bits(component, + WCD937X_DIGITAL_CDC_COMP_CTL_0, + 0x02, 0x00); break; }; return 0; diff --git a/asoc/codecs/wcd938x/wcd938x.c b/asoc/codecs/wcd938x/wcd938x.c index 9682207e97..b18b7e0224 100644 --- a/asoc/codecs/wcd938x/wcd938x.c +++ b/asoc/codecs/wcd938x/wcd938x.c @@ -681,8 +681,10 @@ static int wcd938x_codec_ear_dac_event(struct snd_soc_dapm_widget *w, WCD938X_DIGITAL_CDC_HPH_GAIN_CTL, 0x04, 0x04); snd_soc_component_update_bits(component, WCD938X_DIGITAL_CDC_DIG_CLK_CTL, 0x01, 0x01); - snd_soc_component_update_bits(component, - WCD938X_DIGITAL_CDC_COMP_CTL_0, 0x02, 0x02); + if (wcd938x->comp1_enable) + snd_soc_component_update_bits(component, + WCD938X_DIGITAL_CDC_COMP_CTL_0, + 0x02, 0x02); } /* 5 msec delay as per HW requirement */ usleep_range(5000, 5010); @@ -707,8 +709,10 @@ static int wcd938x_codec_ear_dac_event(struct snd_soc_dapm_widget *w, WCD938X_DIGITAL_CDC_HPH_GAIN_CTL, 0x04, 0x00); snd_soc_component_update_bits(component, WCD938X_DIGITAL_CDC_DIG_CLK_CTL, 0x01, 0x00); - snd_soc_component_update_bits(component, - WCD938X_DIGITAL_CDC_COMP_CTL_0, 0x02, 0x00); + if (wcd938x->comp1_enable) + snd_soc_component_update_bits(component, + WCD938X_DIGITAL_CDC_COMP_CTL_0, + 0x02, 0x00); } snd_soc_component_update_bits(component, WCD938X_ANA_EAR_COMPANDER_CTL, 0x80, 0x00);