mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
Merge "asoc: wsa-macro: Fix mixing path on WSA"
This commit is contained in:
commit
d187ddf230
1 changed files with 40 additions and 41 deletions
|
|
@ -1180,45 +1180,6 @@ static int wsa_macro_enable_vi_feedback(struct snd_soc_dapm_widget *w,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int wsa_macro_enable_mix_path(struct snd_soc_dapm_widget *w,
|
||||
struct snd_kcontrol *kcontrol, int event)
|
||||
{
|
||||
struct snd_soc_component *component =
|
||||
snd_soc_dapm_to_component(w->dapm);
|
||||
u16 gain_reg;
|
||||
int offset_val = 0;
|
||||
int val = 0;
|
||||
|
||||
dev_dbg(component->dev, "%s %d %s\n", __func__, event, w->name);
|
||||
|
||||
switch (w->reg) {
|
||||
case BOLERO_CDC_WSA_RX0_RX_PATH_MIX_CTL:
|
||||
gain_reg = BOLERO_CDC_WSA_RX0_RX_VOL_MIX_CTL;
|
||||
break;
|
||||
case BOLERO_CDC_WSA_RX1_RX_PATH_MIX_CTL:
|
||||
gain_reg = BOLERO_CDC_WSA_RX1_RX_VOL_MIX_CTL;
|
||||
break;
|
||||
default:
|
||||
dev_err(component->dev, "%s: No gain register avail for %s\n",
|
||||
__func__, w->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_POST_PMU:
|
||||
val = snd_soc_component_read32(component, gain_reg);
|
||||
val += offset_val;
|
||||
snd_soc_component_write(component, gain_reg, val);
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMD:
|
||||
snd_soc_component_update_bits(component,
|
||||
w->reg, 0x20, 0x00);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void wsa_macro_hd2_control(struct snd_soc_component *component,
|
||||
u16 reg, int event)
|
||||
{
|
||||
|
|
@ -1305,6 +1266,44 @@ static int wsa_macro_enable_swr(struct snd_soc_dapm_widget *w,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int wsa_macro_enable_mix_path(struct snd_soc_dapm_widget *w,
|
||||
struct snd_kcontrol *kcontrol, int event)
|
||||
{
|
||||
struct snd_soc_component *component =
|
||||
snd_soc_dapm_to_component(w->dapm);
|
||||
u16 gain_reg;
|
||||
int offset_val = 0;
|
||||
int val = 0;
|
||||
|
||||
dev_dbg(component->dev, "%s %d %s\n", __func__, event, w->name);
|
||||
|
||||
if (!(strcmp(w->name, "WSA_RX0 MIX INP"))) {
|
||||
gain_reg = BOLERO_CDC_WSA_RX0_RX_VOL_MIX_CTL;
|
||||
} else if (!(strcmp(w->name, "WSA_RX1 MIX INP"))) {
|
||||
gain_reg = BOLERO_CDC_WSA_RX1_RX_VOL_MIX_CTL;
|
||||
} else {
|
||||
dev_err(component->dev, "%s: No gain register avail for %s\n",
|
||||
__func__, w->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_PRE_PMU:
|
||||
wsa_macro_enable_swr(w, kcontrol, event);
|
||||
val = snd_soc_component_read32(component, gain_reg);
|
||||
val += offset_val;
|
||||
snd_soc_component_write(component, gain_reg, val);
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMD:
|
||||
snd_soc_component_update_bits(component,
|
||||
w->reg, 0x20, 0x00);
|
||||
wsa_macro_enable_swr(w, kcontrol, event);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int wsa_macro_config_compander(struct snd_soc_component *component,
|
||||
int comp, int event)
|
||||
{
|
||||
|
|
@ -2552,7 +2551,7 @@ static const struct snd_soc_dapm_widget wsa_macro_dapm_widgets[] = {
|
|||
SND_SOC_DAPM_MUX_E("WSA_RX0 INP2", SND_SOC_NOPM, 0, 0,
|
||||
&rx0_prim_inp2_mux, wsa_macro_enable_swr,
|
||||
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
|
||||
SND_SOC_DAPM_MUX_E("WSA_RX0 MIX INP", BOLERO_CDC_WSA_RX0_RX_PATH_MIX_CTL,
|
||||
SND_SOC_DAPM_MUX_E("WSA_RX0 MIX INP", SND_SOC_NOPM,
|
||||
0, 0, &rx0_mix_mux, wsa_macro_enable_mix_path,
|
||||
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
|
||||
SND_SOC_DAPM_MUX_E("WSA_RX1 INP0", SND_SOC_NOPM, 0, 0,
|
||||
|
|
@ -2564,7 +2563,7 @@ static const struct snd_soc_dapm_widget wsa_macro_dapm_widgets[] = {
|
|||
SND_SOC_DAPM_MUX_E("WSA_RX1 INP2", SND_SOC_NOPM, 0, 0,
|
||||
&rx1_prim_inp2_mux, wsa_macro_enable_swr,
|
||||
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
|
||||
SND_SOC_DAPM_MUX_E("WSA_RX1 MIX INP", BOLERO_CDC_WSA_RX1_RX_PATH_MIX_CTL,
|
||||
SND_SOC_DAPM_MUX_E("WSA_RX1 MIX INP", SND_SOC_NOPM,
|
||||
0, 0, &rx1_mix_mux, wsa_macro_enable_mix_path,
|
||||
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
|
||||
SND_SOC_DAPM_MIXER_E("WSA_RX INT0 MIX", SND_SOC_NOPM,
|
||||
|
|
|
|||
Loading…
Reference in a new issue