Loading asoc/codecs/bolero/tx-macro.c +22 −12 Original line number Diff line number Diff line Loading @@ -433,23 +433,31 @@ static int tx_macro_reg_wake_irq(struct snd_soc_component *component, return ret; } static int is_amic_enabled(struct snd_soc_component *component, int decimator) static bool is_amic_enabled(struct snd_soc_component *component, int decimator) { u16 adc_mux_reg = 0, adc_reg = 0; u16 adc_n = BOLERO_ADC_MAX; bool ret = false; struct device *tx_dev = NULL; struct tx_macro_priv *tx_priv = NULL; if (!tx_macro_get_data(component, &tx_dev, &tx_priv, __func__)) return ret; adc_mux_reg = BOLERO_CDC_TX_INP_MUX_ADC_MUX0_CFG1 + TX_MACRO_ADC_MUX_CFG_OFFSET * decimator; if (snd_soc_component_read32(component, adc_mux_reg) & SWR_MIC) { if (tx_priv->version == BOLERO_VERSION_2_1) return true; adc_reg = BOLERO_CDC_TX_INP_MUX_ADC_MUX0_CFG0 + TX_MACRO_ADC_MUX_CFG_OFFSET * decimator; adc_n = snd_soc_component_read32(component, adc_reg) & TX_MACRO_SWR_MIC_MUX_SEL_MASK; if (adc_n >= BOLERO_ADC_MAX) adc_n = BOLERO_ADC_MAX; if (adc_n < BOLERO_ADC_MAX) return true; } return adc_n; return ret; } static void tx_macro_tx_hpf_corner_freq_callback(struct work_struct *work) Loading @@ -460,7 +468,7 @@ static void tx_macro_tx_hpf_corner_freq_callback(struct work_struct *work) struct snd_soc_component *component = NULL; u16 dec_cfg_reg = 0, hpf_gate_reg = 0; u8 hpf_cut_off_freq = 0; u16 adc_n = 0; u16 adc_reg = 0, adc_n = 0; hpf_delayed_work = to_delayed_work(work); hpf_work = container_of(hpf_delayed_work, struct hpf_work, dwork); Loading @@ -476,8 +484,11 @@ static void tx_macro_tx_hpf_corner_freq_callback(struct work_struct *work) dev_dbg(component->dev, "%s: decimator %u hpf_cut_of_freq 0x%x\n", __func__, hpf_work->decimator, hpf_cut_off_freq); adc_n = is_amic_enabled(component, hpf_work->decimator); if (adc_n < BOLERO_ADC_MAX) { if (is_amic_enabled(component, hpf_work->decimator)) { adc_reg = BOLERO_CDC_TX_INP_MUX_ADC_MUX0_CFG0 + TX_MACRO_ADC_MUX_CFG_OFFSET * hpf_work->decimator; adc_n = snd_soc_component_read32(component, adc_reg) & TX_MACRO_SWR_MIC_MUX_SEL_MASK; /* analog mic clear TX hold */ bolero_clear_amic_tx_hold(component->dev, adc_n); snd_soc_component_update_bits(component, Loading Loading @@ -882,7 +893,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_POST_PMU: snd_soc_component_update_bits(component, tx_vol_ctl_reg, 0x20, 0x20); if (!(is_amic_enabled(component, decimator) < BOLERO_ADC_MAX)) { if (!is_amic_enabled(component, decimator)) { snd_soc_component_update_bits(component, hpf_gate_reg, 0x01, 0x00); /* Loading @@ -902,7 +913,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, TX_HPF_CUT_OFF_FREQ_MASK, CF_MIN_3DB_150HZ << 5); if (is_amic_enabled(component, decimator) < BOLERO_ADC_MAX) { if (is_amic_enabled(component, decimator)) { hpf_delay = TX_MACRO_AMIC_HPF_DELAY_MS; unmute_delay = TX_MACRO_AMIC_UNMUTE_DELAY_MS; } Loading @@ -918,8 +929,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, msecs_to_jiffies(hpf_delay)); snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x02); if (!(is_amic_enabled(component, decimator) < BOLERO_ADC_MAX)) if (!is_amic_enabled(component, decimator)) snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x00); /* Loading Loading @@ -959,7 +969,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, component, dec_cfg_reg, TX_HPF_CUT_OFF_FREQ_MASK, hpf_cut_off_freq << 5); if (is_amic_enabled(component, decimator) < BOLERO_ADC_MAX) if (is_amic_enabled(component, decimator)) snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x02); Loading asoc/codecs/bolero/va-macro.c +22 −12 Original line number Diff line number Diff line Loading @@ -781,23 +781,31 @@ static int va_macro_swrm_clock(void *handle, bool enable) return ret; } static int is_amic_enabled(struct snd_soc_component *component, int decimator) static bool is_amic_enabled(struct snd_soc_component *component, int decimator) { u16 adc_mux_reg = 0, adc_reg = 0; u16 adc_n = BOLERO_ADC_MAX; bool ret = false; struct device *va_dev = NULL; struct va_macro_priv *va_priv = NULL; if (!va_macro_get_data(component, &va_dev, &va_priv, __func__)) return ret; adc_mux_reg = BOLERO_CDC_VA_INP_MUX_ADC_MUX0_CFG1 + VA_MACRO_ADC_MUX_CFG_OFFSET * decimator; if (snd_soc_component_read32(component, adc_mux_reg) & SWR_MIC) { if (va_priv->version == BOLERO_VERSION_2_1) return true; adc_reg = BOLERO_CDC_VA_INP_MUX_ADC_MUX0_CFG0 + VA_MACRO_ADC_MUX_CFG_OFFSET * decimator; adc_n = snd_soc_component_read32(component, adc_reg) & VA_MACRO_SWR_MIC_MUX_SEL_MASK; if (adc_n >= BOLERO_ADC_MAX) adc_n = BOLERO_ADC_MAX; if (adc_n < BOLERO_ADC_MAX) return true; } return adc_n; return ret; } static void va_macro_tx_hpf_corner_freq_callback(struct work_struct *work) Loading @@ -808,7 +816,7 @@ static void va_macro_tx_hpf_corner_freq_callback(struct work_struct *work) struct snd_soc_component *component; u16 dec_cfg_reg, hpf_gate_reg; u8 hpf_cut_off_freq; u16 adc_n = 0; u16 adc_reg = 0, adc_n = 0; hpf_delayed_work = to_delayed_work(work); hpf_work = container_of(hpf_delayed_work, struct hpf_work, dwork); Loading @@ -824,8 +832,11 @@ static void va_macro_tx_hpf_corner_freq_callback(struct work_struct *work) dev_dbg(va_priv->dev, "%s: decimator %u hpf_cut_of_freq 0x%x\n", __func__, hpf_work->decimator, hpf_cut_off_freq); adc_n = is_amic_enabled(component, hpf_work->decimator); if (adc_n < BOLERO_ADC_MAX) { if (is_amic_enabled(component, hpf_work->decimator)) { adc_reg = BOLERO_CDC_VA_INP_MUX_ADC_MUX0_CFG0 + VA_MACRO_ADC_MUX_CFG_OFFSET * hpf_work->decimator; adc_n = snd_soc_component_read32(component, adc_reg) & VA_MACRO_SWR_MIC_MUX_SEL_MASK; /* analog mic clear TX hold */ bolero_clear_amic_tx_hold(component->dev, adc_n); snd_soc_component_update_bits(component, Loading Loading @@ -1125,7 +1136,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w, /* Enable TX CLK */ snd_soc_component_update_bits(component, tx_vol_ctl_reg, 0x20, 0x20); if (!(is_amic_enabled(component, decimator) < BOLERO_ADC_MAX)) { if (!is_amic_enabled(component, decimator)) { snd_soc_component_update_bits(component, hpf_gate_reg, 0x01, 0x00); /* Loading @@ -1144,7 +1155,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w, TX_HPF_CUT_OFF_FREQ_MASK, CF_MIN_3DB_150HZ << 5); } if (is_amic_enabled(component, decimator) < BOLERO_ADC_MAX) { if (is_amic_enabled(component, decimator)) { hpf_delay = BOLERO_CDC_VA_TX_AMIC_HPF_DELAY_MS; unmute_delay = BOLERO_CDC_VA_TX_AMIC_UNMUTE_DELAY_MS; if (va_tx_unmute_delay < unmute_delay) Loading @@ -1152,7 +1163,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w, } snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x02); if (!(is_amic_enabled(component, decimator) < BOLERO_ADC_MAX)) if (!is_amic_enabled(component, decimator)) snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x00); /* Loading Loading @@ -1189,8 +1200,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w, dec_cfg_reg, TX_HPF_CUT_OFF_FREQ_MASK, hpf_cut_off_freq << 5); if (is_amic_enabled(component, decimator) < BOLERO_ADC_MAX) if (is_amic_enabled(component, decimator)) snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x02); Loading asoc/codecs/msm-cdc-pinctrl.c +35 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. */ #include <linux/kernel.h> Loading @@ -21,6 +21,7 @@ struct msm_cdc_pinctrl_info { struct pinctrl *pinctrl; struct pinctrl_state *pinctrl_active; struct pinctrl_state *pinctrl_sleep; struct pinctrl_state *pinctrl_alt_active; int gpio; bool state; u32 tlmm_gpio[MAX_GPIOS]; Loading Loading @@ -104,6 +105,31 @@ int msm_cdc_pinctrl_select_sleep_state(struct device_node *np) } EXPORT_SYMBOL(msm_cdc_pinctrl_select_sleep_state); /* * msm_cdc_pinctrl_select_alt_active_state: select pinctrl alt_active state * @np: pointer to struct device_node * * Returns error code for failure */ int msm_cdc_pinctrl_select_alt_active_state(struct device_node *np) { struct msm_cdc_pinctrl_info *gpio_data; gpio_data = msm_cdc_pinctrl_get_gpiodata(np); if (!gpio_data) return -EINVAL; if (!gpio_data->pinctrl_alt_active) { pr_err("%s: pinctrl alt_active state is null\n", __func__); return -EINVAL; } gpio_data->state = true; return pinctrl_select_state(gpio_data->pinctrl, gpio_data->pinctrl_alt_active); } EXPORT_SYMBOL(msm_cdc_pinctrl_select_alt_active_state); /* * msm_cdc_pinctrl_select_active_state: select pinctrl active state * @np: pointer to struct device_node Loading Loading @@ -231,6 +257,14 @@ static int msm_cdc_pinctrl_probe(struct platform_device *pdev) ret = PTR_ERR(gpio_data->pinctrl_sleep); goto err_lookup_state; } gpio_data->pinctrl_alt_active = pinctrl_lookup_state( gpio_data->pinctrl, "aud_alt_active"); if (IS_ERR_OR_NULL(gpio_data->pinctrl_alt_active)) { dev_dbg(&pdev->dev, "%s: Cannot get aud_alt_active pinctrl state:%ld\n", __func__, PTR_ERR(gpio_data->pinctrl_alt_active)); } /* skip setting to sleep state for LPI_TLMM GPIOs */ if (!of_property_read_bool(pdev->dev.of_node, "qcom,lpi-gpios")) { /* Set pinctrl state to aud_sleep by default */ Loading asoc/msm-lsm-client.c +1 −1 Original line number Diff line number Diff line Loading @@ -2477,7 +2477,6 @@ static int msm_lsm_open(struct snd_pcm_substream *substream) init_waitqueue_head(&prtd->event_wait); init_waitqueue_head(&prtd->period_wait); prtd->substream = substream; wakeup_source_init(&prtd->ws, "lsm-client"); runtime->private_data = prtd; runtime->hw = msm_pcm_hardware_capture; Loading Loading @@ -2530,6 +2529,7 @@ static int msm_lsm_open(struct snd_pcm_substream *substream) prtd->lsm_client->fe_id = rtd->dai_link->id; prtd->lsm_client->unprocessed_data = 0; wakeup_source_init(&prtd->ws, "lsm-client"); return 0; } Loading asoc/msm-pcm-routing-v2.c +6 −1 Original line number Diff line number Diff line Loading @@ -5513,6 +5513,10 @@ static int get_ec_ref_port_id(int value, int *index) *index = 39; port_id = AFE_PORT_ID_SENARY_MI2S_TX; break; case 40: *index = 40; port_id = AFE_PORT_ID_QUINARY_TDM_TX; break; default: *index = 0; /* NONE */ pr_err("%s: Invalid value %d\n", __func__, value); Loading Loading @@ -5570,7 +5574,7 @@ static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2", "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0", "DISPLAY_PORT1", "SEN_MI2S_RX", "SENARY_MI2S_TX", "DISPLAY_PORT1", "SEN_MI2S_RX", "SENARY_MI2S_TX", "QUIN_TDM_TX_0", }; static const struct soc_enum msm_route_ec_ref_rx_enum[] = { Loading Loading @@ -27426,6 +27430,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"}, {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"}, {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"}, {"AUDIO_REF_EC_UL1 MUX", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"}, {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"}, {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"}, Loading
asoc/codecs/bolero/tx-macro.c +22 −12 Original line number Diff line number Diff line Loading @@ -433,23 +433,31 @@ static int tx_macro_reg_wake_irq(struct snd_soc_component *component, return ret; } static int is_amic_enabled(struct snd_soc_component *component, int decimator) static bool is_amic_enabled(struct snd_soc_component *component, int decimator) { u16 adc_mux_reg = 0, adc_reg = 0; u16 adc_n = BOLERO_ADC_MAX; bool ret = false; struct device *tx_dev = NULL; struct tx_macro_priv *tx_priv = NULL; if (!tx_macro_get_data(component, &tx_dev, &tx_priv, __func__)) return ret; adc_mux_reg = BOLERO_CDC_TX_INP_MUX_ADC_MUX0_CFG1 + TX_MACRO_ADC_MUX_CFG_OFFSET * decimator; if (snd_soc_component_read32(component, adc_mux_reg) & SWR_MIC) { if (tx_priv->version == BOLERO_VERSION_2_1) return true; adc_reg = BOLERO_CDC_TX_INP_MUX_ADC_MUX0_CFG0 + TX_MACRO_ADC_MUX_CFG_OFFSET * decimator; adc_n = snd_soc_component_read32(component, adc_reg) & TX_MACRO_SWR_MIC_MUX_SEL_MASK; if (adc_n >= BOLERO_ADC_MAX) adc_n = BOLERO_ADC_MAX; if (adc_n < BOLERO_ADC_MAX) return true; } return adc_n; return ret; } static void tx_macro_tx_hpf_corner_freq_callback(struct work_struct *work) Loading @@ -460,7 +468,7 @@ static void tx_macro_tx_hpf_corner_freq_callback(struct work_struct *work) struct snd_soc_component *component = NULL; u16 dec_cfg_reg = 0, hpf_gate_reg = 0; u8 hpf_cut_off_freq = 0; u16 adc_n = 0; u16 adc_reg = 0, adc_n = 0; hpf_delayed_work = to_delayed_work(work); hpf_work = container_of(hpf_delayed_work, struct hpf_work, dwork); Loading @@ -476,8 +484,11 @@ static void tx_macro_tx_hpf_corner_freq_callback(struct work_struct *work) dev_dbg(component->dev, "%s: decimator %u hpf_cut_of_freq 0x%x\n", __func__, hpf_work->decimator, hpf_cut_off_freq); adc_n = is_amic_enabled(component, hpf_work->decimator); if (adc_n < BOLERO_ADC_MAX) { if (is_amic_enabled(component, hpf_work->decimator)) { adc_reg = BOLERO_CDC_TX_INP_MUX_ADC_MUX0_CFG0 + TX_MACRO_ADC_MUX_CFG_OFFSET * hpf_work->decimator; adc_n = snd_soc_component_read32(component, adc_reg) & TX_MACRO_SWR_MIC_MUX_SEL_MASK; /* analog mic clear TX hold */ bolero_clear_amic_tx_hold(component->dev, adc_n); snd_soc_component_update_bits(component, Loading Loading @@ -882,7 +893,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_POST_PMU: snd_soc_component_update_bits(component, tx_vol_ctl_reg, 0x20, 0x20); if (!(is_amic_enabled(component, decimator) < BOLERO_ADC_MAX)) { if (!is_amic_enabled(component, decimator)) { snd_soc_component_update_bits(component, hpf_gate_reg, 0x01, 0x00); /* Loading @@ -902,7 +913,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, TX_HPF_CUT_OFF_FREQ_MASK, CF_MIN_3DB_150HZ << 5); if (is_amic_enabled(component, decimator) < BOLERO_ADC_MAX) { if (is_amic_enabled(component, decimator)) { hpf_delay = TX_MACRO_AMIC_HPF_DELAY_MS; unmute_delay = TX_MACRO_AMIC_UNMUTE_DELAY_MS; } Loading @@ -918,8 +929,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, msecs_to_jiffies(hpf_delay)); snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x02); if (!(is_amic_enabled(component, decimator) < BOLERO_ADC_MAX)) if (!is_amic_enabled(component, decimator)) snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x00); /* Loading Loading @@ -959,7 +969,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, component, dec_cfg_reg, TX_HPF_CUT_OFF_FREQ_MASK, hpf_cut_off_freq << 5); if (is_amic_enabled(component, decimator) < BOLERO_ADC_MAX) if (is_amic_enabled(component, decimator)) snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x02); Loading
asoc/codecs/bolero/va-macro.c +22 −12 Original line number Diff line number Diff line Loading @@ -781,23 +781,31 @@ static int va_macro_swrm_clock(void *handle, bool enable) return ret; } static int is_amic_enabled(struct snd_soc_component *component, int decimator) static bool is_amic_enabled(struct snd_soc_component *component, int decimator) { u16 adc_mux_reg = 0, adc_reg = 0; u16 adc_n = BOLERO_ADC_MAX; bool ret = false; struct device *va_dev = NULL; struct va_macro_priv *va_priv = NULL; if (!va_macro_get_data(component, &va_dev, &va_priv, __func__)) return ret; adc_mux_reg = BOLERO_CDC_VA_INP_MUX_ADC_MUX0_CFG1 + VA_MACRO_ADC_MUX_CFG_OFFSET * decimator; if (snd_soc_component_read32(component, adc_mux_reg) & SWR_MIC) { if (va_priv->version == BOLERO_VERSION_2_1) return true; adc_reg = BOLERO_CDC_VA_INP_MUX_ADC_MUX0_CFG0 + VA_MACRO_ADC_MUX_CFG_OFFSET * decimator; adc_n = snd_soc_component_read32(component, adc_reg) & VA_MACRO_SWR_MIC_MUX_SEL_MASK; if (adc_n >= BOLERO_ADC_MAX) adc_n = BOLERO_ADC_MAX; if (adc_n < BOLERO_ADC_MAX) return true; } return adc_n; return ret; } static void va_macro_tx_hpf_corner_freq_callback(struct work_struct *work) Loading @@ -808,7 +816,7 @@ static void va_macro_tx_hpf_corner_freq_callback(struct work_struct *work) struct snd_soc_component *component; u16 dec_cfg_reg, hpf_gate_reg; u8 hpf_cut_off_freq; u16 adc_n = 0; u16 adc_reg = 0, adc_n = 0; hpf_delayed_work = to_delayed_work(work); hpf_work = container_of(hpf_delayed_work, struct hpf_work, dwork); Loading @@ -824,8 +832,11 @@ static void va_macro_tx_hpf_corner_freq_callback(struct work_struct *work) dev_dbg(va_priv->dev, "%s: decimator %u hpf_cut_of_freq 0x%x\n", __func__, hpf_work->decimator, hpf_cut_off_freq); adc_n = is_amic_enabled(component, hpf_work->decimator); if (adc_n < BOLERO_ADC_MAX) { if (is_amic_enabled(component, hpf_work->decimator)) { adc_reg = BOLERO_CDC_VA_INP_MUX_ADC_MUX0_CFG0 + VA_MACRO_ADC_MUX_CFG_OFFSET * hpf_work->decimator; adc_n = snd_soc_component_read32(component, adc_reg) & VA_MACRO_SWR_MIC_MUX_SEL_MASK; /* analog mic clear TX hold */ bolero_clear_amic_tx_hold(component->dev, adc_n); snd_soc_component_update_bits(component, Loading Loading @@ -1125,7 +1136,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w, /* Enable TX CLK */ snd_soc_component_update_bits(component, tx_vol_ctl_reg, 0x20, 0x20); if (!(is_amic_enabled(component, decimator) < BOLERO_ADC_MAX)) { if (!is_amic_enabled(component, decimator)) { snd_soc_component_update_bits(component, hpf_gate_reg, 0x01, 0x00); /* Loading @@ -1144,7 +1155,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w, TX_HPF_CUT_OFF_FREQ_MASK, CF_MIN_3DB_150HZ << 5); } if (is_amic_enabled(component, decimator) < BOLERO_ADC_MAX) { if (is_amic_enabled(component, decimator)) { hpf_delay = BOLERO_CDC_VA_TX_AMIC_HPF_DELAY_MS; unmute_delay = BOLERO_CDC_VA_TX_AMIC_UNMUTE_DELAY_MS; if (va_tx_unmute_delay < unmute_delay) Loading @@ -1152,7 +1163,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w, } snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x02); if (!(is_amic_enabled(component, decimator) < BOLERO_ADC_MAX)) if (!is_amic_enabled(component, decimator)) snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x00); /* Loading Loading @@ -1189,8 +1200,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w, dec_cfg_reg, TX_HPF_CUT_OFF_FREQ_MASK, hpf_cut_off_freq << 5); if (is_amic_enabled(component, decimator) < BOLERO_ADC_MAX) if (is_amic_enabled(component, decimator)) snd_soc_component_update_bits(component, hpf_gate_reg, 0x03, 0x02); Loading
asoc/codecs/msm-cdc-pinctrl.c +35 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. */ #include <linux/kernel.h> Loading @@ -21,6 +21,7 @@ struct msm_cdc_pinctrl_info { struct pinctrl *pinctrl; struct pinctrl_state *pinctrl_active; struct pinctrl_state *pinctrl_sleep; struct pinctrl_state *pinctrl_alt_active; int gpio; bool state; u32 tlmm_gpio[MAX_GPIOS]; Loading Loading @@ -104,6 +105,31 @@ int msm_cdc_pinctrl_select_sleep_state(struct device_node *np) } EXPORT_SYMBOL(msm_cdc_pinctrl_select_sleep_state); /* * msm_cdc_pinctrl_select_alt_active_state: select pinctrl alt_active state * @np: pointer to struct device_node * * Returns error code for failure */ int msm_cdc_pinctrl_select_alt_active_state(struct device_node *np) { struct msm_cdc_pinctrl_info *gpio_data; gpio_data = msm_cdc_pinctrl_get_gpiodata(np); if (!gpio_data) return -EINVAL; if (!gpio_data->pinctrl_alt_active) { pr_err("%s: pinctrl alt_active state is null\n", __func__); return -EINVAL; } gpio_data->state = true; return pinctrl_select_state(gpio_data->pinctrl, gpio_data->pinctrl_alt_active); } EXPORT_SYMBOL(msm_cdc_pinctrl_select_alt_active_state); /* * msm_cdc_pinctrl_select_active_state: select pinctrl active state * @np: pointer to struct device_node Loading Loading @@ -231,6 +257,14 @@ static int msm_cdc_pinctrl_probe(struct platform_device *pdev) ret = PTR_ERR(gpio_data->pinctrl_sleep); goto err_lookup_state; } gpio_data->pinctrl_alt_active = pinctrl_lookup_state( gpio_data->pinctrl, "aud_alt_active"); if (IS_ERR_OR_NULL(gpio_data->pinctrl_alt_active)) { dev_dbg(&pdev->dev, "%s: Cannot get aud_alt_active pinctrl state:%ld\n", __func__, PTR_ERR(gpio_data->pinctrl_alt_active)); } /* skip setting to sleep state for LPI_TLMM GPIOs */ if (!of_property_read_bool(pdev->dev.of_node, "qcom,lpi-gpios")) { /* Set pinctrl state to aud_sleep by default */ Loading
asoc/msm-lsm-client.c +1 −1 Original line number Diff line number Diff line Loading @@ -2477,7 +2477,6 @@ static int msm_lsm_open(struct snd_pcm_substream *substream) init_waitqueue_head(&prtd->event_wait); init_waitqueue_head(&prtd->period_wait); prtd->substream = substream; wakeup_source_init(&prtd->ws, "lsm-client"); runtime->private_data = prtd; runtime->hw = msm_pcm_hardware_capture; Loading Loading @@ -2530,6 +2529,7 @@ static int msm_lsm_open(struct snd_pcm_substream *substream) prtd->lsm_client->fe_id = rtd->dai_link->id; prtd->lsm_client->unprocessed_data = 0; wakeup_source_init(&prtd->ws, "lsm-client"); return 0; } Loading
asoc/msm-pcm-routing-v2.c +6 −1 Original line number Diff line number Diff line Loading @@ -5513,6 +5513,10 @@ static int get_ec_ref_port_id(int value, int *index) *index = 39; port_id = AFE_PORT_ID_SENARY_MI2S_TX; break; case 40: *index = 40; port_id = AFE_PORT_ID_QUINARY_TDM_TX; break; default: *index = 0; /* NONE */ pr_err("%s: Invalid value %d\n", __func__, value); Loading Loading @@ -5570,7 +5574,7 @@ static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2", "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0", "DISPLAY_PORT1", "SEN_MI2S_RX", "SENARY_MI2S_TX", "DISPLAY_PORT1", "SEN_MI2S_RX", "SENARY_MI2S_TX", "QUIN_TDM_TX_0", }; static const struct soc_enum msm_route_ec_ref_rx_enum[] = { Loading Loading @@ -27426,6 +27430,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"}, {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"}, {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"}, {"AUDIO_REF_EC_UL1 MUX", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"}, {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"}, {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},