ASoC: bolero: Make tx swr gpio as wakeup capable
Do not register afe event listener for shima and make tx swr gpio as wakeup capable. Change-Id: I4d805c2b65e6c424c1c215431caa75f6181a16e8 Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
This commit is contained in:
@@ -180,6 +180,7 @@ struct tx_macro_priv {
|
|||||||
bool lpi_enable;
|
bool lpi_enable;
|
||||||
bool register_event_listener;
|
bool register_event_listener;
|
||||||
u16 current_clk_id;
|
u16 current_clk_id;
|
||||||
|
int disable_afe_wakeup_event_listener;
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool tx_macro_get_data(struct snd_soc_component *component,
|
static bool tx_macro_get_data(struct snd_soc_component *component,
|
||||||
@@ -2645,6 +2646,7 @@ static int tx_macro_register_event_listener(struct snd_soc_component *component,
|
|||||||
if (tx_priv->swr_ctrl_data &&
|
if (tx_priv->swr_ctrl_data &&
|
||||||
(!tx_priv->tx_swr_clk_cnt || !tx_priv->va_swr_clk_cnt)) {
|
(!tx_priv->tx_swr_clk_cnt || !tx_priv->va_swr_clk_cnt)) {
|
||||||
if (enable) {
|
if (enable) {
|
||||||
|
if (!tx_priv->disable_afe_wakeup_event_listener)
|
||||||
ret = swrm_wcd_notify(
|
ret = swrm_wcd_notify(
|
||||||
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
|
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
|
||||||
SWR_REGISTER_WAKEUP, NULL);
|
SWR_REGISTER_WAKEUP, NULL);
|
||||||
@@ -2653,6 +2655,7 @@ static int tx_macro_register_event_listener(struct snd_soc_component *component,
|
|||||||
} else {
|
} else {
|
||||||
msm_cdc_pinctrl_set_wakeup_capable(
|
msm_cdc_pinctrl_set_wakeup_capable(
|
||||||
tx_priv->tx_swr_gpio_p, true);
|
tx_priv->tx_swr_gpio_p, true);
|
||||||
|
if (!tx_priv->disable_afe_wakeup_event_listener)
|
||||||
ret = swrm_wcd_notify(
|
ret = swrm_wcd_notify(
|
||||||
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
|
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
|
||||||
SWR_DEREGISTER_WAKEUP, NULL);
|
SWR_DEREGISTER_WAKEUP, NULL);
|
||||||
@@ -3411,6 +3414,9 @@ static int tx_macro_probe(struct platform_device *pdev)
|
|||||||
const char *dmic_sample_rate = "qcom,tx-dmic-sample-rate";
|
const char *dmic_sample_rate = "qcom,tx-dmic-sample-rate";
|
||||||
u32 is_used_tx_swr_gpio = 1;
|
u32 is_used_tx_swr_gpio = 1;
|
||||||
const char *is_used_tx_swr_gpio_dt = "qcom,is-used-swr-gpio";
|
const char *is_used_tx_swr_gpio_dt = "qcom,is-used-swr-gpio";
|
||||||
|
u32 disable_afe_wakeup_event_listener = 0;
|
||||||
|
const char *disable_afe_wakeup_event_listener_dt =
|
||||||
|
"qcom,disable-afe-wakeup-event-listener";
|
||||||
|
|
||||||
if (!bolero_is_va_macro_registered(&pdev->dev)) {
|
if (!bolero_is_va_macro_registered(&pdev->dev)) {
|
||||||
dev_err(&pdev->dev,
|
dev_err(&pdev->dev,
|
||||||
@@ -3477,6 +3483,19 @@ static int tx_macro_probe(struct platform_device *pdev)
|
|||||||
sample_rate, tx_priv) == TX_MACRO_DMIC_SAMPLE_RATE_UNDEFINED)
|
sample_rate, tx_priv) == TX_MACRO_DMIC_SAMPLE_RATE_UNDEFINED)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (of_find_property(pdev->dev.of_node,
|
||||||
|
disable_afe_wakeup_event_listener_dt, NULL)) {
|
||||||
|
ret = of_property_read_u32(pdev->dev.of_node,
|
||||||
|
disable_afe_wakeup_event_listener_dt,
|
||||||
|
&disable_afe_wakeup_event_listener);
|
||||||
|
if (ret)
|
||||||
|
dev_dbg(&pdev->dev, "%s: error reading %s in dt\n",
|
||||||
|
__func__, disable_afe_wakeup_event_listener_dt);
|
||||||
|
}
|
||||||
|
tx_priv->disable_afe_wakeup_event_listener =
|
||||||
|
disable_afe_wakeup_event_listener;
|
||||||
|
|
||||||
if (is_used_tx_swr_gpio) {
|
if (is_used_tx_swr_gpio) {
|
||||||
tx_priv->reset_swr = true;
|
tx_priv->reset_swr = true;
|
||||||
INIT_WORK(&tx_priv->tx_macro_add_child_devices_work,
|
INIT_WORK(&tx_priv->tx_macro_add_child_devices_work,
|
||||||
|
@@ -173,7 +173,6 @@ struct va_macro_priv {
|
|||||||
bool lpi_enable;
|
bool lpi_enable;
|
||||||
bool register_event_listener;
|
bool register_event_listener;
|
||||||
int dec_mode[VA_MACRO_NUM_DECIMATORS];
|
int dec_mode[VA_MACRO_NUM_DECIMATORS];
|
||||||
int disable_afe_wakeup_event_listener;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool va_macro_get_data(struct snd_soc_component *component,
|
static bool va_macro_get_data(struct snd_soc_component *component,
|
||||||
@@ -493,8 +492,7 @@ static int va_macro_swr_pwr_event(struct snd_soc_dapm_widget *w,
|
|||||||
dev_dbg(va_dev, "%s: clock switch failed\n",
|
dev_dbg(va_dev, "%s: clock switch failed\n",
|
||||||
__func__);
|
__func__);
|
||||||
}
|
}
|
||||||
if (va_priv->lpi_enable &&
|
if (va_priv->lpi_enable) {
|
||||||
!va_priv->disable_afe_wakeup_event_listener) {
|
|
||||||
bolero_register_event_listener(component, true);
|
bolero_register_event_listener(component, true);
|
||||||
va_priv->register_event_listener = true;
|
va_priv->register_event_listener = true;
|
||||||
}
|
}
|
||||||
@@ -3057,10 +3055,7 @@ static int va_macro_probe(struct platform_device *pdev)
|
|||||||
u32 default_clk_id = 0;
|
u32 default_clk_id = 0;
|
||||||
struct clk *lpass_audio_hw_vote = NULL;
|
struct clk *lpass_audio_hw_vote = NULL;
|
||||||
u32 is_used_va_swr_gpio = 0;
|
u32 is_used_va_swr_gpio = 0;
|
||||||
u32 disable_afe_wakeup_event_listener = 0;
|
|
||||||
const char *is_used_va_swr_gpio_dt = "qcom,is-used-swr-gpio";
|
const char *is_used_va_swr_gpio_dt = "qcom,is-used-swr-gpio";
|
||||||
const char *disable_afe_wakeup_event_listener_dt =
|
|
||||||
"qcom,disable-afe-wakeup-event-listener";
|
|
||||||
|
|
||||||
va_priv = devm_kzalloc(&pdev->dev, sizeof(struct va_macro_priv),
|
va_priv = devm_kzalloc(&pdev->dev, sizeof(struct va_macro_priv),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
@@ -3103,18 +3098,6 @@ static int va_macro_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (of_find_property(pdev->dev.of_node,
|
|
||||||
disable_afe_wakeup_event_listener_dt, NULL)) {
|
|
||||||
ret = of_property_read_u32(pdev->dev.of_node,
|
|
||||||
disable_afe_wakeup_event_listener_dt,
|
|
||||||
&disable_afe_wakeup_event_listener);
|
|
||||||
if (ret)
|
|
||||||
dev_dbg(&pdev->dev, "%s: error reading %s in dt\n",
|
|
||||||
__func__, disable_afe_wakeup_event_listener_dt);
|
|
||||||
}
|
|
||||||
va_priv->disable_afe_wakeup_event_listener =
|
|
||||||
disable_afe_wakeup_event_listener;
|
|
||||||
|
|
||||||
va_priv->va_swr_gpio_p = of_parse_phandle(pdev->dev.of_node,
|
va_priv->va_swr_gpio_p = of_parse_phandle(pdev->dev.of_node,
|
||||||
"qcom,va-swr-gpios", 0);
|
"qcom,va-swr-gpios", 0);
|
||||||
if (!va_priv->va_swr_gpio_p && is_used_va_swr_gpio) {
|
if (!va_priv->va_swr_gpio_p && is_used_va_swr_gpio) {
|
||||||
|
Reference in New Issue
Block a user