Loading asoc/codecs/bolero/bolero-cdc.c +7 −3 Original line number Diff line number Diff line Loading @@ -735,7 +735,7 @@ void bolero_unregister_macro(struct device *dev, u16 macro_id) } EXPORT_SYMBOL(bolero_unregister_macro); void bolero_wsa_pa_on(struct device *dev) void bolero_wsa_pa_on(struct device *dev, bool adie_lb) { struct bolero_priv *priv; Loading @@ -753,8 +753,12 @@ void bolero_wsa_pa_on(struct device *dev) dev_err(dev, "%s: priv is null\n", __func__); return; } bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_PA_ON_POST_FSCLK); if (adie_lb) bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_PA_ON_POST_FSCLK_ADIE_LB); else bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_PA_ON_POST_FSCLK); } EXPORT_SYMBOL(bolero_wsa_pa_on); Loading asoc/codecs/bolero/bolero-cdc.h +2 −2 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ int bolero_set_port_map(struct snd_soc_component *component, u32 size, void *dat int bolero_tx_clk_switch(struct snd_soc_component *component, int clk_src); int bolero_register_event_listener(struct snd_soc_component *component, bool enable, bool is_dmic_sva); void bolero_wsa_pa_on(struct device *dev); void bolero_wsa_pa_on(struct device *dev, bool adie_lb); bool bolero_check_core_votes(struct device *dev); int bolero_tx_mclk_enable(struct snd_soc_component *c, bool enable); int bolero_get_version(struct device *dev); Loading Loading @@ -196,7 +196,7 @@ static inline int bolero_register_event_listener( return 0; } static void bolero_wsa_pa_on(struct device *dev) static void bolero_wsa_pa_on(struct device *dev, bool adie_lb) { } Loading asoc/codecs/bolero/internal.h +2 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. */ #ifndef _BOLERO_INTERNAL_H Loading @@ -16,6 +16,7 @@ enum { BOLERO_WCD_EVT_SSR_DOWN, BOLERO_WCD_EVT_SSR_UP, BOLERO_WCD_EVT_PA_ON_POST_FSCLK, BOLERO_WCD_EVT_PA_ON_POST_FSCLK_ADIE_LB, }; enum { Loading asoc/codecs/bolero/wsa-macro.c +7 −4 Original line number Diff line number Diff line Loading @@ -846,6 +846,7 @@ static int wsa_macro_digital_mute(struct snd_soc_dai *dai, int mute) uint16_t j = 0, reg = 0, mix_reg = 0, dsm_reg = 0; u16 int_mux_cfg0 = 0, int_mux_cfg1 = 0; u8 int_mux_cfg0_val = 0, int_mux_cfg1_val = 0; bool adie_lb = false; if (mute) return 0; Loading Loading @@ -882,7 +883,7 @@ static int wsa_macro_digital_mute(struct snd_soc_dai *dai, int mute) } } } bolero_wsa_pa_on(wsa_dev); bolero_wsa_pa_on(wsa_dev, adie_lb); break; default: break; Loading Loading @@ -1473,6 +1474,7 @@ static int wsa_macro_enable_main_path(struct snd_soc_dapm_widget *w, u16 reg = 0; struct device *wsa_dev = NULL; struct wsa_macro_priv *wsa_priv = NULL; bool adie_lb = false; if (!wsa_macro_get_data(component, &wsa_dev, &wsa_priv, __func__)) return -EINVAL; Loading @@ -1483,9 +1485,10 @@ static int wsa_macro_enable_main_path(struct snd_soc_dapm_widget *w, switch (event) { case SND_SOC_DAPM_PRE_PMU: if (wsa_macro_adie_lb(component, w->shift)) { adie_lb = true; snd_soc_component_update_bits(component, reg, 0x20, 0x20); bolero_wsa_pa_on(wsa_dev); bolero_wsa_pa_on(wsa_dev, adie_lb); } break; default: Loading Loading @@ -2567,10 +2570,10 @@ static const struct snd_soc_dapm_widget wsa_macro_dapm_widgets[] = { 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, SND_SOC_DAPM_PGA_E("WSA_RX INT0 MIX", SND_SOC_NOPM, 0, 0, NULL, 0, wsa_macro_enable_main_path, SND_SOC_DAPM_PRE_PMU), SND_SOC_DAPM_MIXER_E("WSA_RX INT1 MIX", SND_SOC_NOPM, SND_SOC_DAPM_PGA_E("WSA_RX INT1 MIX", SND_SOC_NOPM, 1, 0, NULL, 0, wsa_macro_enable_main_path, SND_SOC_DAPM_PRE_PMU), SND_SOC_DAPM_MIXER("WSA_RX INT0 SEC MIX", SND_SOC_NOPM, 0, 0, NULL, 0), Loading asoc/codecs/wsa881x.c +2 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,7 @@ enum { BOLERO_WSA_EVT_SSR_DOWN, BOLERO_WSA_EVT_SSR_UP, BOLERO_WSA_EVT_PA_ON_POST_FSCLK, BOLERO_WSA_EVT_PA_ON_POST_FSCLK_ADIE_LB, }; struct wsa_ctrl_platform_data { Loading Loading @@ -1393,6 +1394,7 @@ static int wsa881x_event_notify(struct notifier_block *nb, 0x80, 0x00); break; case BOLERO_WSA_EVT_PA_ON_POST_FSCLK: case BOLERO_WSA_EVT_PA_ON_POST_FSCLK_ADIE_LB: if ((snd_soc_component_read32(wsa881x->component, WSA881X_SPKR_DAC_CTL) & 0x80) == 0x80) snd_soc_component_update_bits(wsa881x->component, Loading Loading
asoc/codecs/bolero/bolero-cdc.c +7 −3 Original line number Diff line number Diff line Loading @@ -735,7 +735,7 @@ void bolero_unregister_macro(struct device *dev, u16 macro_id) } EXPORT_SYMBOL(bolero_unregister_macro); void bolero_wsa_pa_on(struct device *dev) void bolero_wsa_pa_on(struct device *dev, bool adie_lb) { struct bolero_priv *priv; Loading @@ -753,8 +753,12 @@ void bolero_wsa_pa_on(struct device *dev) dev_err(dev, "%s: priv is null\n", __func__); return; } bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_PA_ON_POST_FSCLK); if (adie_lb) bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_PA_ON_POST_FSCLK_ADIE_LB); else bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_PA_ON_POST_FSCLK); } EXPORT_SYMBOL(bolero_wsa_pa_on); Loading
asoc/codecs/bolero/bolero-cdc.h +2 −2 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ int bolero_set_port_map(struct snd_soc_component *component, u32 size, void *dat int bolero_tx_clk_switch(struct snd_soc_component *component, int clk_src); int bolero_register_event_listener(struct snd_soc_component *component, bool enable, bool is_dmic_sva); void bolero_wsa_pa_on(struct device *dev); void bolero_wsa_pa_on(struct device *dev, bool adie_lb); bool bolero_check_core_votes(struct device *dev); int bolero_tx_mclk_enable(struct snd_soc_component *c, bool enable); int bolero_get_version(struct device *dev); Loading Loading @@ -196,7 +196,7 @@ static inline int bolero_register_event_listener( return 0; } static void bolero_wsa_pa_on(struct device *dev) static void bolero_wsa_pa_on(struct device *dev, bool adie_lb) { } Loading
asoc/codecs/bolero/internal.h +2 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. */ #ifndef _BOLERO_INTERNAL_H Loading @@ -16,6 +16,7 @@ enum { BOLERO_WCD_EVT_SSR_DOWN, BOLERO_WCD_EVT_SSR_UP, BOLERO_WCD_EVT_PA_ON_POST_FSCLK, BOLERO_WCD_EVT_PA_ON_POST_FSCLK_ADIE_LB, }; enum { Loading
asoc/codecs/bolero/wsa-macro.c +7 −4 Original line number Diff line number Diff line Loading @@ -846,6 +846,7 @@ static int wsa_macro_digital_mute(struct snd_soc_dai *dai, int mute) uint16_t j = 0, reg = 0, mix_reg = 0, dsm_reg = 0; u16 int_mux_cfg0 = 0, int_mux_cfg1 = 0; u8 int_mux_cfg0_val = 0, int_mux_cfg1_val = 0; bool adie_lb = false; if (mute) return 0; Loading Loading @@ -882,7 +883,7 @@ static int wsa_macro_digital_mute(struct snd_soc_dai *dai, int mute) } } } bolero_wsa_pa_on(wsa_dev); bolero_wsa_pa_on(wsa_dev, adie_lb); break; default: break; Loading Loading @@ -1473,6 +1474,7 @@ static int wsa_macro_enable_main_path(struct snd_soc_dapm_widget *w, u16 reg = 0; struct device *wsa_dev = NULL; struct wsa_macro_priv *wsa_priv = NULL; bool adie_lb = false; if (!wsa_macro_get_data(component, &wsa_dev, &wsa_priv, __func__)) return -EINVAL; Loading @@ -1483,9 +1485,10 @@ static int wsa_macro_enable_main_path(struct snd_soc_dapm_widget *w, switch (event) { case SND_SOC_DAPM_PRE_PMU: if (wsa_macro_adie_lb(component, w->shift)) { adie_lb = true; snd_soc_component_update_bits(component, reg, 0x20, 0x20); bolero_wsa_pa_on(wsa_dev); bolero_wsa_pa_on(wsa_dev, adie_lb); } break; default: Loading Loading @@ -2567,10 +2570,10 @@ static const struct snd_soc_dapm_widget wsa_macro_dapm_widgets[] = { 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, SND_SOC_DAPM_PGA_E("WSA_RX INT0 MIX", SND_SOC_NOPM, 0, 0, NULL, 0, wsa_macro_enable_main_path, SND_SOC_DAPM_PRE_PMU), SND_SOC_DAPM_MIXER_E("WSA_RX INT1 MIX", SND_SOC_NOPM, SND_SOC_DAPM_PGA_E("WSA_RX INT1 MIX", SND_SOC_NOPM, 1, 0, NULL, 0, wsa_macro_enable_main_path, SND_SOC_DAPM_PRE_PMU), SND_SOC_DAPM_MIXER("WSA_RX INT0 SEC MIX", SND_SOC_NOPM, 0, 0, NULL, 0), Loading
asoc/codecs/wsa881x.c +2 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,7 @@ enum { BOLERO_WSA_EVT_SSR_DOWN, BOLERO_WSA_EVT_SSR_UP, BOLERO_WSA_EVT_PA_ON_POST_FSCLK, BOLERO_WSA_EVT_PA_ON_POST_FSCLK_ADIE_LB, }; struct wsa_ctrl_platform_data { Loading Loading @@ -1393,6 +1394,7 @@ static int wsa881x_event_notify(struct notifier_block *nb, 0x80, 0x00); break; case BOLERO_WSA_EVT_PA_ON_POST_FSCLK: case BOLERO_WSA_EVT_PA_ON_POST_FSCLK_ADIE_LB: if ((snd_soc_component_read32(wsa881x->component, WSA881X_SPKR_DAC_CTL) & 0x80) == 0x80) snd_soc_component_update_bits(wsa881x->component, Loading