From 06f7fcd942c21bfc4c9b6193383269c950b2fd6a Mon Sep 17 00:00:00 2001 From: Laxminath Kasam Date: Tue, 14 Apr 2020 18:10:28 +0530 Subject: [PATCH] asoc: bolero: Update rx dc droop register setting For RX DC droop setting, ensure update proper value during powerup/powerdown based on sample rate. Change-Id: I269d41452911e1999b2dbdf4fa22e383aa973848 Signed-off-by: Laxminath Kasam --- asoc/codecs/bolero/rx-macro.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/asoc/codecs/bolero/rx-macro.c b/asoc/codecs/bolero/rx-macro.c index 62da031f269c..61f781f934c8 100644 --- a/asoc/codecs/bolero/rx-macro.c +++ b/asoc/codecs/bolero/rx-macro.c @@ -1709,13 +1709,6 @@ static int rx_macro_config_compander(struct snd_soc_component *component, dev_dbg(component->dev, "%s: event %d compander %d, enabled %d\n", __func__, event, comp + 1, rx_priv->comp_enabled[comp]); - if (!rx_priv->comp_enabled[comp]) - return 0; - - comp_ctl0_reg = BOLERO_CDC_RX_COMPANDER0_CTL0 + - (comp * RX_MACRO_COMP_OFFSET); - rx_path_cfg0_reg = BOLERO_CDC_RX_RX0_RX_PATH_CFG0 + - (comp * RX_MACRO_RX_PATH_OFFSET); rx_path_cfg3_reg = BOLERO_CDC_RX_RX0_RX_PATH_CFG3 + (comp * RX_MACRO_RX_PATH_OFFSET); rx0_path_ctl_reg = BOLERO_CDC_RX_RX0_RX_PATH_CTL + @@ -1731,6 +1724,19 @@ static int rx_macro_config_compander(struct snd_soc_component *component, else val = 0x00; + if (SND_SOC_DAPM_EVENT_ON(event)) + snd_soc_component_update_bits(component, rx_path_cfg3_reg, + 0x03, val); + if (SND_SOC_DAPM_EVENT_OFF(event)) + snd_soc_component_update_bits(component, rx_path_cfg3_reg, + 0x03, 0x03); + if (!rx_priv->comp_enabled[comp]) + return 0; + + comp_ctl0_reg = BOLERO_CDC_RX_COMPANDER0_CTL0 + + (comp * RX_MACRO_COMP_OFFSET); + rx_path_cfg0_reg = BOLERO_CDC_RX_RX0_RX_PATH_CFG0 + + (comp * RX_MACRO_RX_PATH_OFFSET); if (SND_SOC_DAPM_EVENT_ON(event)) { /* Enable Compander Clock */ snd_soc_component_update_bits(component, comp_ctl0_reg, @@ -1741,8 +1747,6 @@ static int rx_macro_config_compander(struct snd_soc_component *component, 0x02, 0x00); snd_soc_component_update_bits(component, rx_path_cfg0_reg, 0x02, 0x02); - snd_soc_component_update_bits(component, rx_path_cfg3_reg, - 0x03, val); } if (SND_SOC_DAPM_EVENT_OFF(event)) { @@ -1754,8 +1758,6 @@ static int rx_macro_config_compander(struct snd_soc_component *component, 0x01, 0x00); snd_soc_component_update_bits(component, comp_ctl0_reg, 0x04, 0x00); - snd_soc_component_update_bits(component, rx_path_cfg3_reg, - 0x03, 0x03); } return 0;