diff --git a/asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c b/asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c index 9ce4c68c89..d34209e958 100644 --- a/asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c +++ b/asoc/codecs/lpass-cdc/lpass-cdc-wsa-macro.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. - * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2022-2024, Qualcomm Innovation Center, Inc. All rights reserved. */ #include @@ -1343,19 +1343,22 @@ static int lpass_cdc_wsa_macro_enable_mix_path(struct snd_soc_dapm_widget *w, if (!(strcmp(w->name, "WSA_RX0 MIX INP"))) { gain_reg = LPASS_CDC_WSA_RX0_RX_VOL_MIX_CTL; + reg = LPASS_CDC_WSA_RX0_RX_PATH_CTL + + (LPASS_CDC_WSA_MACRO_RX_PATH_OFFSET * w->shift); + mix_reg = LPASS_CDC_WSA_RX0_RX_PATH_MIX_CTL + + LPASS_CDC_WSA_MACRO_RX_PATH_OFFSET * w->shift; } else if (!(strcmp(w->name, "WSA_RX1 MIX INP"))) { gain_reg = LPASS_CDC_WSA_RX1_RX_VOL_MIX_CTL; + reg = LPASS_CDC_WSA_RX1_RX_PATH_CTL + + (LPASS_CDC_WSA_MACRO_RX_PATH_OFFSET * w->shift); + mix_reg = LPASS_CDC_WSA_RX1_RX_PATH_MIX_CTL + + LPASS_CDC_WSA_MACRO_RX_PATH_OFFSET * w->shift; } else { dev_err_ratelimited(component->dev, "%s: No gain register avail for %s\n", __func__, w->name); return 0; } - reg = LPASS_CDC_WSA_RX0_RX_PATH_CTL + - (LPASS_CDC_WSA_MACRO_RX_PATH_OFFSET * w->shift); - mix_reg = LPASS_CDC_WSA_RX0_RX_PATH_MIX_CTL + - LPASS_CDC_WSA_MACRO_RX_PATH_OFFSET * w->shift; - switch (event) { case SND_SOC_DAPM_PRE_PMU: snd_soc_component_update_bits(component, mix_reg, 0x40, 0x40);