diff --git a/asoc/codecs/bolero/rx-macro.c b/asoc/codecs/bolero/rx-macro.c index 92f43439fc..62da031f26 100644 --- a/asoc/codecs/bolero/rx-macro.c +++ b/asoc/codecs/bolero/rx-macro.c @@ -1,5 +1,5 @@ // 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. */ #include @@ -1396,9 +1396,6 @@ static int rx_macro_event_handler(struct snd_soc_component *component, trace_printk("%s, enter SSR down\n", __func__); rx_priv->dev_up = false; if (rx_priv->swr_ctrl_data) { - swrm_wcd_notify( - rx_priv->swr_ctrl_data[0].rx_swr_pdev, - SWR_DEVICE_DOWN, NULL); swrm_wcd_notify( rx_priv->swr_ctrl_data[0].rx_swr_pdev, SWR_DEVICE_SSR_DOWN, NULL); diff --git a/asoc/codecs/bolero/tx-macro.c b/asoc/codecs/bolero/tx-macro.c index d411c274b0..c41e0ab92a 100644 --- a/asoc/codecs/bolero/tx-macro.c +++ b/asoc/codecs/bolero/tx-macro.c @@ -376,9 +376,6 @@ static int tx_macro_event_handler(struct snd_soc_component *component, case BOLERO_MACRO_EVT_SSR_DOWN: trace_printk("%s, enter SSR down\n", __func__); if (tx_priv->swr_ctrl_data) { - swrm_wcd_notify( - tx_priv->swr_ctrl_data[0].tx_swr_pdev, - SWR_DEVICE_DOWN, NULL); swrm_wcd_notify( tx_priv->swr_ctrl_data[0].tx_swr_pdev, SWR_DEVICE_SSR_DOWN, NULL); diff --git a/asoc/codecs/bolero/va-macro.c b/asoc/codecs/bolero/va-macro.c index 0424fe6326..d42aa8c82a 100644 --- a/asoc/codecs/bolero/va-macro.c +++ b/asoc/codecs/bolero/va-macro.c @@ -323,9 +323,6 @@ static int va_macro_event_handler(struct snd_soc_component *component, break; case BOLERO_MACRO_EVT_SSR_DOWN: if (va_priv->swr_ctrl_data) { - swrm_wcd_notify( - va_priv->swr_ctrl_data[0].va_swr_pdev, - SWR_DEVICE_DOWN, NULL); swrm_wcd_notify( va_priv->swr_ctrl_data[0].va_swr_pdev, SWR_DEVICE_SSR_DOWN, NULL); diff --git a/asoc/codecs/bolero/wsa-macro.c b/asoc/codecs/bolero/wsa-macro.c index d5808e7f37..ef062fc8db 100644 --- a/asoc/codecs/bolero/wsa-macro.c +++ b/asoc/codecs/bolero/wsa-macro.c @@ -996,9 +996,6 @@ static int wsa_macro_event_handler(struct snd_soc_component *component, case BOLERO_MACRO_EVT_SSR_DOWN: trace_printk("%s, enter SSR down\n", __func__); if (wsa_priv->swr_ctrl_data) { - swrm_wcd_notify( - wsa_priv->swr_ctrl_data[0].wsa_swr_pdev, - SWR_DEVICE_DOWN, NULL); swrm_wcd_notify( wsa_priv->swr_ctrl_data[0].wsa_swr_pdev, SWR_DEVICE_SSR_DOWN, NULL); diff --git a/asoc/codecs/wsa881x.c b/asoc/codecs/wsa881x.c index aed1d5d23b..adb4d91baf 100644 --- a/asoc/codecs/wsa881x.c +++ b/asoc/codecs/wsa881x.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. */ #include @@ -992,6 +992,9 @@ static void wsa881x_ocp_ctl_work(struct work_struct *work) dwork = to_delayed_work(work); wsa881x = container_of(dwork, struct wsa881x_priv, ocp_ctl_work); + if (wsa881x->state == WSA881X_DEV_DOWN) + return; + component = wsa881x->component; wsa881x_get_temp(wsa881x->tz_pdata.tz_dev, &temp_val); dev_dbg(component->dev, " temp = %d\n", temp_val); @@ -1605,14 +1608,14 @@ static int wsa881x_swr_down(struct swr_device *pdev) dev_err(&pdev->dev, "%s: wsa881x is NULL\n", __func__); return -EINVAL; } - if (delayed_work_pending(&wsa881x->ocp_ctl_work)) - cancel_delayed_work_sync(&wsa881x->ocp_ctl_work); ret = wsa881x_gpio_ctrl(wsa881x, false); if (ret) dev_err(&pdev->dev, "%s: Failed to disable gpio\n", __func__); else wsa881x->state = WSA881X_DEV_DOWN; + if (delayed_work_pending(&wsa881x->ocp_ctl_work)) + cancel_delayed_work_sync(&wsa881x->ocp_ctl_work); return ret; }