ASoC: wcd938x: Disable ADC mode for tx at power down after record

ADC mode for tx 0,1,2,3 is not disabled at power down after record
causing noise during next headset record. Disable ADC mode
to resolve noise.

Change-Id: I0a98b06318b55cfce20c6a90fecd71d83dce28c5
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
This commit is contained in:
Vatsal Bucha 2019-10-18 12:40:47 +05:30
commit a267a11e94

View file

@ -1626,18 +1626,30 @@ static int wcd938x_enable_req(struct snd_soc_dapm_widget *w,
case SND_SOC_DAPM_POST_PMD:
switch (w->shift) {
case 0:
snd_soc_component_update_bits(component,
WCD938X_DIGITAL_CDC_TX_ANA_MODE_0_1, 0x0F,
0x00);
snd_soc_component_update_bits(component,
WCD938X_DIGITAL_CDC_DIG_CLK_CTL, 0x10, 0x00);
break;
case 1:
snd_soc_component_update_bits(component,
WCD938X_DIGITAL_CDC_TX_ANA_MODE_0_1, 0xF0,
0x00);
snd_soc_component_update_bits(component,
WCD938X_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x00);
break;
case 2:
snd_soc_component_update_bits(component,
WCD938X_DIGITAL_CDC_TX_ANA_MODE_2_3, 0x0F,
0x00);
snd_soc_component_update_bits(component,
WCD938X_DIGITAL_CDC_DIG_CLK_CTL, 0x40, 0x00);
break;
case 3:
snd_soc_component_update_bits(component,
WCD938X_DIGITAL_CDC_TX_ANA_MODE_2_3, 0xF0,
0x00);
snd_soc_component_update_bits(component,
WCD938X_DIGITAL_CDC_DIG_CLK_CTL, 0x80, 0x00);
break;