|
@@ -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 <linux/module.h>
|
|
@@ -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);
|