BACKPORT: audio-kernel: Disable clock voting logs
trace_printk is recommended for debugging purpose as it requires temporary memory to handle strings. If used anywhere within the kernel, memory will be allocated to it. Hence removed it to avoid any unnecessary memory allocation. Change-Id: If7b0cada91c97b21987f91e0ff7b7a15ce2145e2 Signed-off-by: Faiz Nabi Kuchay <quic_fkuchay@quicinc.com> Signed-off-by: Hridaya Prajapati <info.hridayaprajapati@gmail.com>
This commit is contained in:
committed by
Hridaya Prajapati
parent
b3b4b3bcd6
commit
1dfa39a8de
@@ -76,8 +76,6 @@ static int audio_ext_clk_prepare(struct clk_hw *hw)
|
|||||||
if ((clk_priv->clk_src >= AUDIO_EXT_CLK_LPASS) &&
|
if ((clk_priv->clk_src >= AUDIO_EXT_CLK_LPASS) &&
|
||||||
(clk_priv->clk_src < AUDIO_EXT_CLK_LPASS_MAX)) {
|
(clk_priv->clk_src < AUDIO_EXT_CLK_LPASS_MAX)) {
|
||||||
clk_priv->clk_cfg.enable = 1;
|
clk_priv->clk_cfg.enable = 1;
|
||||||
trace_printk("%s: vote for %d clock\n",
|
|
||||||
__func__, clk_priv->clk_src);
|
|
||||||
ret = afe_set_lpass_clk_cfg(IDX_RSVD_3, &clk_priv->clk_cfg);
|
ret = afe_set_lpass_clk_cfg(IDX_RSVD_3, &clk_priv->clk_cfg);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err_ratelimited("%s afe_set_digital_codec_core_clock failed\n",
|
pr_err_ratelimited("%s afe_set_digital_codec_core_clock failed\n",
|
||||||
@@ -120,8 +118,6 @@ static void audio_ext_clk_unprepare(struct clk_hw *hw)
|
|||||||
if ((clk_priv->clk_src >= AUDIO_EXT_CLK_LPASS) &&
|
if ((clk_priv->clk_src >= AUDIO_EXT_CLK_LPASS) &&
|
||||||
(clk_priv->clk_src < AUDIO_EXT_CLK_LPASS_MAX)) {
|
(clk_priv->clk_src < AUDIO_EXT_CLK_LPASS_MAX)) {
|
||||||
clk_priv->clk_cfg.enable = 0;
|
clk_priv->clk_cfg.enable = 0;
|
||||||
trace_printk("%s: unvote for %d clock\n",
|
|
||||||
__func__, clk_priv->clk_src);
|
|
||||||
ret = afe_set_lpass_clk_cfg(IDX_RSVD_3, &clk_priv->clk_cfg);
|
ret = afe_set_lpass_clk_cfg(IDX_RSVD_3, &clk_priv->clk_cfg);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
pr_err_ratelimited("%s: afe_set_lpass_clk_cfg failed, ret = %d\n",
|
pr_err_ratelimited("%s: afe_set_lpass_clk_cfg failed, ret = %d\n",
|
||||||
@@ -156,7 +152,7 @@ static int lpass_hw_vote_prepare(struct clk_hw *hw)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (clk_priv->clk_src == AUDIO_EXT_CLK_LPASS_CORE_HW_VOTE) {
|
if (clk_priv->clk_src == AUDIO_EXT_CLK_LPASS_CORE_HW_VOTE) {
|
||||||
trace_printk("%s: vote for %d clock\n",
|
pr_debug("%s: vote for %d clock\n",
|
||||||
__func__, clk_priv->clk_src);
|
__func__, clk_priv->clk_src);
|
||||||
ret = afe_vote_lpass_core_hw(AFE_LPASS_CORE_HW_MACRO_BLOCK,
|
ret = afe_vote_lpass_core_hw(AFE_LPASS_CORE_HW_MACRO_BLOCK,
|
||||||
"LPASS_HW_MACRO",
|
"LPASS_HW_MACRO",
|
||||||
@@ -169,7 +165,7 @@ static int lpass_hw_vote_prepare(struct clk_hw *hw)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (clk_priv->clk_src == AUDIO_EXT_CLK_LPASS_AUDIO_HW_VOTE) {
|
if (clk_priv->clk_src == AUDIO_EXT_CLK_LPASS_AUDIO_HW_VOTE) {
|
||||||
trace_printk("%s: vote for %d clock\n",
|
pr_debug("%s: vote for %d clock\n",
|
||||||
__func__, clk_priv->clk_src);
|
__func__, clk_priv->clk_src);
|
||||||
ret = afe_vote_lpass_core_hw(AFE_LPASS_CORE_HW_DCODEC_BLOCK,
|
ret = afe_vote_lpass_core_hw(AFE_LPASS_CORE_HW_DCODEC_BLOCK,
|
||||||
"LPASS_HW_DCODEC",
|
"LPASS_HW_DCODEC",
|
||||||
@@ -190,7 +186,7 @@ static void lpass_hw_vote_unprepare(struct clk_hw *hw)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (clk_priv->clk_src == AUDIO_EXT_CLK_LPASS_CORE_HW_VOTE) {
|
if (clk_priv->clk_src == AUDIO_EXT_CLK_LPASS_CORE_HW_VOTE) {
|
||||||
trace_printk("%s: unvote for %d clock\n",
|
pr_debug("%s: unvote for %d clock\n",
|
||||||
__func__, clk_priv->clk_src);
|
__func__, clk_priv->clk_src);
|
||||||
ret = afe_unvote_lpass_core_hw(
|
ret = afe_unvote_lpass_core_hw(
|
||||||
AFE_LPASS_CORE_HW_MACRO_BLOCK,
|
AFE_LPASS_CORE_HW_MACRO_BLOCK,
|
||||||
@@ -202,7 +198,7 @@ static void lpass_hw_vote_unprepare(struct clk_hw *hw)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (clk_priv->clk_src == AUDIO_EXT_CLK_LPASS_AUDIO_HW_VOTE) {
|
if (clk_priv->clk_src == AUDIO_EXT_CLK_LPASS_AUDIO_HW_VOTE) {
|
||||||
trace_printk("%s: unvote for %d clock\n",
|
pr_debug("%s: unvote for %d clock\n",
|
||||||
__func__, clk_priv->clk_src);
|
__func__, clk_priv->clk_src);
|
||||||
ret = afe_unvote_lpass_core_hw(
|
ret = afe_unvote_lpass_core_hw(
|
||||||
AFE_LPASS_CORE_HW_DCODEC_BLOCK,
|
AFE_LPASS_CORE_HW_DCODEC_BLOCK,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/of_platform.h>
|
#include <linux/of_platform.h>
|
||||||
@@ -879,7 +880,7 @@ static int bolero_ssr_enable(struct device *dev, void *data)
|
|||||||
priv->component,
|
priv->component,
|
||||||
BOLERO_MACRO_EVT_CLK_RESET, 0x0);
|
BOLERO_MACRO_EVT_CLK_RESET, 0x0);
|
||||||
}
|
}
|
||||||
trace_printk("%s: clk count reset\n", __func__);
|
pr_debug("%s: clk count reset\n", __func__);
|
||||||
|
|
||||||
if (priv->rsc_clk_cb)
|
if (priv->rsc_clk_cb)
|
||||||
priv->rsc_clk_cb(priv->clk_dev, BOLERO_MACRO_EVT_SSR_GFMUX_UP);
|
priv->rsc_clk_cb(priv->clk_dev, BOLERO_MACRO_EVT_SSR_GFMUX_UP);
|
||||||
@@ -902,7 +903,6 @@ static int bolero_ssr_enable(struct device *dev, void *data)
|
|||||||
/* Add a 100usec sleep to ensure last register write is done */
|
/* Add a 100usec sleep to ensure last register write is done */
|
||||||
usleep_range(100,110);
|
usleep_range(100,110);
|
||||||
bolero_clk_rsc_enable_all_clocks(priv->clk_dev, false);
|
bolero_clk_rsc_enable_all_clocks(priv->clk_dev, false);
|
||||||
trace_printk("%s: regcache_sync done\n", __func__);
|
|
||||||
/* call ssr event for supported macros */
|
/* call ssr event for supported macros */
|
||||||
for (macro_idx = START_MACRO; macro_idx < MAX_MACRO; macro_idx++) {
|
for (macro_idx = START_MACRO; macro_idx < MAX_MACRO; macro_idx++) {
|
||||||
if (!priv->macro_params[macro_idx].event_handler)
|
if (!priv->macro_params[macro_idx].event_handler)
|
||||||
@@ -911,7 +911,6 @@ static int bolero_ssr_enable(struct device *dev, void *data)
|
|||||||
priv->component,
|
priv->component,
|
||||||
BOLERO_MACRO_EVT_SSR_UP, 0x0);
|
BOLERO_MACRO_EVT_SSR_UP, 0x0);
|
||||||
}
|
}
|
||||||
trace_printk("%s: SSR up events processed by all macros\n", __func__);
|
|
||||||
bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_SSR_UP);
|
bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_SSR_UP);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1441,8 +1440,6 @@ int bolero_runtime_resume(struct device *dev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
priv->core_hw_vote_count++;
|
priv->core_hw_vote_count++;
|
||||||
trace_printk("%s: hw vote count %d\n",
|
|
||||||
__func__, priv->core_hw_vote_count);
|
|
||||||
|
|
||||||
audio_vote:
|
audio_vote:
|
||||||
if (priv->lpass_audio_hw_vote == NULL) {
|
if (priv->lpass_audio_hw_vote == NULL) {
|
||||||
@@ -1459,8 +1456,6 @@ int bolero_runtime_resume(struct device *dev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
priv->core_audio_vote_count++;
|
priv->core_audio_vote_count++;
|
||||||
trace_printk("%s: audio vote count %d\n",
|
|
||||||
__func__, priv->core_audio_vote_count);
|
|
||||||
|
|
||||||
done:
|
done:
|
||||||
mutex_unlock(&priv->vote_lock);
|
mutex_unlock(&priv->vote_lock);
|
||||||
@@ -1484,8 +1479,6 @@ int bolero_runtime_suspend(struct device *dev)
|
|||||||
dev_dbg(dev, "%s: Invalid lpass core hw node\n",
|
dev_dbg(dev, "%s: Invalid lpass core hw node\n",
|
||||||
__func__);
|
__func__);
|
||||||
}
|
}
|
||||||
trace_printk("%s: hw vote count %d\n",
|
|
||||||
__func__, priv->core_hw_vote_count);
|
|
||||||
|
|
||||||
if (priv->lpass_audio_hw_vote != NULL) {
|
if (priv->lpass_audio_hw_vote != NULL) {
|
||||||
if (--priv->core_audio_vote_count == 0)
|
if (--priv->core_audio_vote_count == 0)
|
||||||
@@ -1497,8 +1490,6 @@ int bolero_runtime_suspend(struct device *dev)
|
|||||||
dev_dbg(dev, "%s: Invalid lpass audio hw node\n",
|
dev_dbg(dev, "%s: Invalid lpass audio hw node\n",
|
||||||
__func__);
|
__func__);
|
||||||
}
|
}
|
||||||
trace_printk("%s: audio vote count %d\n",
|
|
||||||
__func__, priv->core_audio_vote_count);
|
|
||||||
|
|
||||||
mutex_unlock(&priv->vote_lock);
|
mutex_unlock(&priv->vote_lock);
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/of_platform.h>
|
#include <linux/of_platform.h>
|
||||||
@@ -135,7 +136,6 @@ int bolero_rsc_clk_reset(struct device *dev, int clk_id)
|
|||||||
dev_dbg(priv->dev,
|
dev_dbg(priv->dev,
|
||||||
"%s: clock reset after ssr, count %d\n", __func__, count);
|
"%s: clock reset after ssr, count %d\n", __func__, count);
|
||||||
|
|
||||||
trace_printk("%s: clock reset after ssr, count %d\n", __func__, count);
|
|
||||||
while (count--) {
|
while (count--) {
|
||||||
clk_prepare_enable(priv->clk[clk_id]);
|
clk_prepare_enable(priv->clk[clk_id]);
|
||||||
clk_prepare_enable(priv->clk[clk_id + NPL_CLK_OFFSET]);
|
clk_prepare_enable(priv->clk[clk_id + NPL_CLK_OFFSET]);
|
||||||
@@ -290,8 +290,6 @@ static int bolero_clk_rsc_mux1_clk_request(struct bolero_clk_rsc *priv,
|
|||||||
if (priv->dev_up_gfmux) {
|
if (priv->dev_up_gfmux) {
|
||||||
iowrite32(0x1, clk_muxsel);
|
iowrite32(0x1, clk_muxsel);
|
||||||
muxsel = ioread32(clk_muxsel);
|
muxsel = ioread32(clk_muxsel);
|
||||||
trace_printk("%s: muxsel value after enable: %d\n",
|
|
||||||
__func__, muxsel);
|
|
||||||
}
|
}
|
||||||
bolero_clk_rsc_mux0_clk_request(priv,
|
bolero_clk_rsc_mux0_clk_request(priv,
|
||||||
default_clk_id,
|
default_clk_id,
|
||||||
@@ -323,8 +321,6 @@ static int bolero_clk_rsc_mux1_clk_request(struct bolero_clk_rsc *priv,
|
|||||||
if (priv->dev_up_gfmux) {
|
if (priv->dev_up_gfmux) {
|
||||||
iowrite32(0x0, clk_muxsel);
|
iowrite32(0x0, clk_muxsel);
|
||||||
muxsel = ioread32(clk_muxsel);
|
muxsel = ioread32(clk_muxsel);
|
||||||
trace_printk("%s: muxsel value after disable: %d\n",
|
|
||||||
__func__, muxsel);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -547,7 +543,6 @@ int bolero_clk_rsc_request_clock(struct device *dev,
|
|||||||
if (!priv->dev_up && enable) {
|
if (!priv->dev_up && enable) {
|
||||||
dev_err_ratelimited(priv->dev, "%s: SSR is in progress..\n",
|
dev_err_ratelimited(priv->dev, "%s: SSR is in progress..\n",
|
||||||
__func__);
|
__func__);
|
||||||
trace_printk("%s: SSR is in progress..\n", __func__);
|
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
@@ -577,9 +572,6 @@ int bolero_clk_rsc_request_clock(struct device *dev,
|
|||||||
dev_dbg(priv->dev, "%s: clk_cnt: %d for requested clk: %d, enable: %d\n",
|
dev_dbg(priv->dev, "%s: clk_cnt: %d for requested clk: %d, enable: %d\n",
|
||||||
__func__, priv->clk_cnt[clk_id_req], clk_id_req,
|
__func__, priv->clk_cnt[clk_id_req], clk_id_req,
|
||||||
enable);
|
enable);
|
||||||
trace_printk("%s: clk_cnt: %d for requested clk: %d, enable: %d\n",
|
|
||||||
__func__, priv->clk_cnt[clk_id_req], clk_id_req,
|
|
||||||
enable);
|
|
||||||
|
|
||||||
mutex_unlock(&priv->rsc_clk_lock);
|
mutex_unlock(&priv->rsc_clk_lock);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
@@ -1296,7 +1297,7 @@ static int rx_macro_mclk_enable(struct rx_macro_priv *rx_priv,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
exit:
|
exit:
|
||||||
trace_printk("%s: mclk_enable = %u, dapm = %d clk_users= %d\n",
|
dev_dbg(rx_priv->dev, "%s: mclk_enable = %u, dapm = %d clk_users= %d\n",
|
||||||
__func__, mclk_enable, dapm, rx_priv->rx_mclk_users);
|
__func__, mclk_enable, dapm, rx_priv->rx_mclk_users);
|
||||||
mutex_unlock(&rx_priv->mclk_lock);
|
mutex_unlock(&rx_priv->mclk_lock);
|
||||||
return ret;
|
return ret;
|
||||||
@@ -1383,7 +1384,6 @@ static int rx_macro_event_handler(struct snd_soc_component *component,
|
|||||||
rx_macro_wcd_clsh_imped_config(component, data, false);
|
rx_macro_wcd_clsh_imped_config(component, data, false);
|
||||||
break;
|
break;
|
||||||
case BOLERO_MACRO_EVT_SSR_DOWN:
|
case BOLERO_MACRO_EVT_SSR_DOWN:
|
||||||
trace_printk("%s, enter SSR down\n", __func__);
|
|
||||||
rx_priv->dev_up = false;
|
rx_priv->dev_up = false;
|
||||||
if (rx_priv->swr_ctrl_data) {
|
if (rx_priv->swr_ctrl_data) {
|
||||||
swrm_wcd_notify(
|
swrm_wcd_notify(
|
||||||
@@ -1418,7 +1418,6 @@ static int rx_macro_event_handler(struct snd_soc_component *component,
|
|||||||
rx_macro_core_vote(rx_priv, false);
|
rx_macro_core_vote(rx_priv, false);
|
||||||
break;
|
break;
|
||||||
case BOLERO_MACRO_EVT_SSR_UP:
|
case BOLERO_MACRO_EVT_SSR_UP:
|
||||||
trace_printk("%s, enter SSR up\n", __func__);
|
|
||||||
rx_priv->dev_up = true;
|
rx_priv->dev_up = true;
|
||||||
/* reset swr after ssr/pdr */
|
/* reset swr after ssr/pdr */
|
||||||
rx_priv->reset_swr = true;
|
rx_priv->reset_swr = true;
|
||||||
@@ -3715,8 +3714,6 @@ static int rx_swrm_clock(void *handle, bool enable)
|
|||||||
|
|
||||||
mutex_lock(&rx_priv->swr_clk_lock);
|
mutex_lock(&rx_priv->swr_clk_lock);
|
||||||
|
|
||||||
trace_printk("%s: swrm clock %s\n",
|
|
||||||
__func__, (enable ? "enable" : "disable"));
|
|
||||||
dev_dbg(rx_priv->dev, "%s: swrm clock %s\n",
|
dev_dbg(rx_priv->dev, "%s: swrm clock %s\n",
|
||||||
__func__, (enable ? "enable" : "disable"));
|
__func__, (enable ? "enable" : "disable"));
|
||||||
if (enable) {
|
if (enable) {
|
||||||
@@ -3783,8 +3780,6 @@ static int rx_swrm_clock(void *handle, bool enable)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
trace_printk("%s: swrm clock users %d\n",
|
|
||||||
__func__, rx_priv->swr_clk_users);
|
|
||||||
dev_dbg(rx_priv->dev, "%s: swrm clock users %d\n",
|
dev_dbg(rx_priv->dev, "%s: swrm clock users %d\n",
|
||||||
__func__, rx_priv->swr_clk_users);
|
__func__, rx_priv->swr_clk_users);
|
||||||
exit:
|
exit:
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
@@ -374,7 +375,6 @@ static int tx_macro_event_handler(struct snd_soc_component *component,
|
|||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case BOLERO_MACRO_EVT_SSR_DOWN:
|
case BOLERO_MACRO_EVT_SSR_DOWN:
|
||||||
trace_printk("%s, enter SSR down\n", __func__);
|
|
||||||
if (tx_priv->swr_ctrl_data) {
|
if (tx_priv->swr_ctrl_data) {
|
||||||
swrm_wcd_notify(
|
swrm_wcd_notify(
|
||||||
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
|
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
|
||||||
@@ -391,7 +391,6 @@ static int tx_macro_event_handler(struct snd_soc_component *component,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BOLERO_MACRO_EVT_SSR_UP:
|
case BOLERO_MACRO_EVT_SSR_UP:
|
||||||
trace_printk("%s, enter SSR up\n", __func__);
|
|
||||||
/* reset swr after ssr/pdr */
|
/* reset swr after ssr/pdr */
|
||||||
tx_priv->reset_swr = true;
|
tx_priv->reset_swr = true;
|
||||||
if (tx_priv->swr_ctrl_data)
|
if (tx_priv->swr_ctrl_data)
|
||||||
@@ -2461,9 +2460,6 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv,
|
|||||||
{
|
{
|
||||||
int ret = 0, clk_tx_ret = 0;
|
int ret = 0, clk_tx_ret = 0;
|
||||||
|
|
||||||
trace_printk("%s: clock type %s, enable: %s tx_mclk_users: %d\n",
|
|
||||||
__func__, (clk_type ? "VA_MCLK" : "TX_MCLK"),
|
|
||||||
(enable ? "enable" : "disable"), tx_priv->tx_mclk_users);
|
|
||||||
dev_dbg(tx_priv->dev,
|
dev_dbg(tx_priv->dev,
|
||||||
"%s: clock type %s, enable: %s tx_mclk_users: %d\n",
|
"%s: clock type %s, enable: %s tx_mclk_users: %d\n",
|
||||||
__func__, (clk_type ? "VA_MCLK" : "TX_MCLK"),
|
__func__, (clk_type ? "VA_MCLK" : "TX_MCLK"),
|
||||||
@@ -2471,7 +2467,6 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv,
|
|||||||
|
|
||||||
if (enable) {
|
if (enable) {
|
||||||
if (tx_priv->swr_clk_users == 0) {
|
if (tx_priv->swr_clk_users == 0) {
|
||||||
trace_printk("%s: tx swr clk users 0\n", __func__);
|
|
||||||
ret = msm_cdc_pinctrl_select_active_state(
|
ret = msm_cdc_pinctrl_select_active_state(
|
||||||
tx_priv->tx_swr_gpio_p);
|
tx_priv->tx_swr_gpio_p);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@@ -2489,7 +2484,6 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv,
|
|||||||
TX_CORE_CLK,
|
TX_CORE_CLK,
|
||||||
true);
|
true);
|
||||||
if (clk_type == TX_MCLK) {
|
if (clk_type == TX_MCLK) {
|
||||||
trace_printk("%s: requesting TX_MCLK\n", __func__);
|
|
||||||
ret = tx_macro_mclk_enable(tx_priv, 1);
|
ret = tx_macro_mclk_enable(tx_priv, 1);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
if (tx_priv->swr_clk_users == 0)
|
if (tx_priv->swr_clk_users == 0)
|
||||||
@@ -2502,7 +2496,6 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (clk_type == VA_MCLK) {
|
if (clk_type == VA_MCLK) {
|
||||||
trace_printk("%s: requesting VA_MCLK\n", __func__);
|
|
||||||
ret = bolero_clk_rsc_request_clock(tx_priv->dev,
|
ret = bolero_clk_rsc_request_clock(tx_priv->dev,
|
||||||
TX_CORE_CLK,
|
TX_CORE_CLK,
|
||||||
VA_CORE_CLK,
|
VA_CORE_CLK,
|
||||||
@@ -2534,8 +2527,6 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv,
|
|||||||
if (tx_priv->swr_clk_users == 0) {
|
if (tx_priv->swr_clk_users == 0) {
|
||||||
dev_dbg(tx_priv->dev, "%s: reset_swr: %d\n",
|
dev_dbg(tx_priv->dev, "%s: reset_swr: %d\n",
|
||||||
__func__, tx_priv->reset_swr);
|
__func__, tx_priv->reset_swr);
|
||||||
trace_printk("%s: reset_swr: %d\n",
|
|
||||||
__func__, tx_priv->reset_swr);
|
|
||||||
if (tx_priv->reset_swr)
|
if (tx_priv->reset_swr)
|
||||||
regmap_update_bits(regmap,
|
regmap_update_bits(regmap,
|
||||||
BOLERO_CDC_TX_CLK_RST_CTRL_SWR_CONTROL,
|
BOLERO_CDC_TX_CLK_RST_CTRL_SWR_CONTROL,
|
||||||
@@ -2631,7 +2622,6 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv,
|
|||||||
TX_CORE_CLK,
|
TX_CORE_CLK,
|
||||||
false);
|
false);
|
||||||
exit:
|
exit:
|
||||||
trace_printk("%s: exit\n", __func__);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2711,10 +2701,6 @@ static int tx_macro_swrm_clock(void *handle, bool enable)
|
|||||||
}
|
}
|
||||||
|
|
||||||
mutex_lock(&tx_priv->swr_clk_lock);
|
mutex_lock(&tx_priv->swr_clk_lock);
|
||||||
trace_printk("%s: swrm clock %s tx_swr_clk_cnt: %d va_swr_clk_cnt: %d\n",
|
|
||||||
__func__,
|
|
||||||
(enable ? "enable" : "disable"),
|
|
||||||
tx_priv->tx_swr_clk_cnt, tx_priv->va_swr_clk_cnt);
|
|
||||||
dev_dbg(tx_priv->dev,
|
dev_dbg(tx_priv->dev,
|
||||||
"%s: swrm clock %s tx_swr_clk_cnt: %d va_swr_clk_cnt: %d\n",
|
"%s: swrm clock %s tx_swr_clk_cnt: %d va_swr_clk_cnt: %d\n",
|
||||||
__func__, (enable ? "enable" : "disable"),
|
__func__, (enable ? "enable" : "disable"),
|
||||||
@@ -2777,9 +2763,6 @@ static int tx_macro_swrm_clock(void *handle, bool enable)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_printk("%s: swrm clock users %d tx_clk_sts_cnt: %d va_clk_sts_cnt: %d\n",
|
|
||||||
__func__, tx_priv->swr_clk_users, tx_priv->tx_clk_status,
|
|
||||||
tx_priv->va_clk_status);
|
|
||||||
dev_dbg(tx_priv->dev,
|
dev_dbg(tx_priv->dev,
|
||||||
"%s: swrm clock users %d tx_clk_sts_cnt: %d va_clk_sts_cnt: %d\n",
|
"%s: swrm clock users %d tx_clk_sts_cnt: %d va_clk_sts_cnt: %d\n",
|
||||||
__func__, tx_priv->swr_clk_users, tx_priv->tx_clk_status,
|
__func__, tx_priv->swr_clk_users, tx_priv->tx_clk_status,
|
||||||
|
|||||||
@@ -314,7 +314,6 @@ static int va_macro_event_handler(struct snd_soc_component *component,
|
|||||||
VA_CORE_CLK, false);
|
VA_CORE_CLK, false);
|
||||||
break;
|
break;
|
||||||
case BOLERO_MACRO_EVT_SSR_UP:
|
case BOLERO_MACRO_EVT_SSR_UP:
|
||||||
trace_printk("%s, enter SSR up\n", __func__);
|
|
||||||
/* reset swr after ssr/pdr */
|
/* reset swr after ssr/pdr */
|
||||||
va_priv->reset_swr = true;
|
va_priv->reset_swr = true;
|
||||||
if (va_priv->swr_ctrl_data)
|
if (va_priv->swr_ctrl_data)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
@@ -1007,7 +1008,6 @@ static int wsa_macro_event_handler(struct snd_soc_component *component,
|
|||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case BOLERO_MACRO_EVT_SSR_DOWN:
|
case BOLERO_MACRO_EVT_SSR_DOWN:
|
||||||
trace_printk("%s, enter SSR down\n", __func__);
|
|
||||||
if (wsa_priv->swr_ctrl_data) {
|
if (wsa_priv->swr_ctrl_data) {
|
||||||
swrm_wcd_notify(
|
swrm_wcd_notify(
|
||||||
wsa_priv->swr_ctrl_data[0].wsa_swr_pdev,
|
wsa_priv->swr_ctrl_data[0].wsa_swr_pdev,
|
||||||
@@ -1038,7 +1038,6 @@ static int wsa_macro_event_handler(struct snd_soc_component *component,
|
|||||||
WSA_CORE_CLK, false);
|
WSA_CORE_CLK, false);
|
||||||
break;
|
break;
|
||||||
case BOLERO_MACRO_EVT_SSR_UP:
|
case BOLERO_MACRO_EVT_SSR_UP:
|
||||||
trace_printk("%s, enter SSR up\n", __func__);
|
|
||||||
/* reset swr after ssr/pdr */
|
/* reset swr after ssr/pdr */
|
||||||
wsa_priv->reset_swr = true;
|
wsa_priv->reset_swr = true;
|
||||||
if (wsa_priv->swr_ctrl_data)
|
if (wsa_priv->swr_ctrl_data)
|
||||||
@@ -2862,9 +2861,6 @@ static int wsa_swrm_clock(void *handle, bool enable)
|
|||||||
|
|
||||||
mutex_lock(&wsa_priv->swr_clk_lock);
|
mutex_lock(&wsa_priv->swr_clk_lock);
|
||||||
|
|
||||||
trace_printk("%s: %s swrm clock %s\n",
|
|
||||||
dev_name(wsa_priv->dev), __func__,
|
|
||||||
(enable ? "enable" : "disable"));
|
|
||||||
dev_dbg(wsa_priv->dev, "%s: swrm clock %s\n",
|
dev_dbg(wsa_priv->dev, "%s: swrm clock %s\n",
|
||||||
__func__, (enable ? "enable" : "disable"));
|
__func__, (enable ? "enable" : "disable"));
|
||||||
if (enable) {
|
if (enable) {
|
||||||
@@ -2930,9 +2926,6 @@ static int wsa_swrm_clock(void *handle, bool enable)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
trace_printk("%s: %s swrm clock users: %d\n",
|
|
||||||
dev_name(wsa_priv->dev), __func__,
|
|
||||||
wsa_priv->swr_clk_users);
|
|
||||||
dev_dbg(wsa_priv->dev, "%s: swrm clock users %d\n",
|
dev_dbg(wsa_priv->dev, "%s: swrm clock users %d\n",
|
||||||
__func__, wsa_priv->swr_clk_users);
|
__func__, wsa_priv->swr_clk_users);
|
||||||
exit:
|
exit:
|
||||||
|
|||||||
@@ -1287,7 +1287,6 @@ static int msm_dai_q6_island_mode_put(struct snd_kcontrol *kcontrol,
|
|||||||
u16 port_id = (u16)kcontrol->private_value;
|
u16 port_id = (u16)kcontrol->private_value;
|
||||||
|
|
||||||
pr_debug("%s: island mode = %d\n", __func__, value);
|
pr_debug("%s: island mode = %d\n", __func__, value);
|
||||||
trace_printk("%s: island mode = %d\n", __func__, value);
|
|
||||||
|
|
||||||
afe_set_island_mode_cfg(port_id, value);
|
afe_set_island_mode_cfg(port_id, value);
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
@@ -33,7 +34,6 @@ int digital_cdc_rsc_mgr_hw_vote_enable(struct clk* vote_handle)
|
|||||||
mutex_unlock(&hw_vote_lock);
|
mutex_unlock(&hw_vote_lock);
|
||||||
|
|
||||||
pr_debug("%s: return %d\n", __func__, ret);
|
pr_debug("%s: return %d\n", __func__, ret);
|
||||||
trace_printk("%s: return %d\n", __func__, ret);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(digital_cdc_rsc_mgr_hw_vote_enable);
|
EXPORT_SYMBOL(digital_cdc_rsc_mgr_hw_vote_enable);
|
||||||
@@ -55,7 +55,7 @@ void digital_cdc_rsc_mgr_hw_vote_disable(struct clk* vote_handle)
|
|||||||
mutex_lock(&hw_vote_lock);
|
mutex_lock(&hw_vote_lock);
|
||||||
clk_disable_unprepare(vote_handle);
|
clk_disable_unprepare(vote_handle);
|
||||||
mutex_unlock(&hw_vote_lock);
|
mutex_unlock(&hw_vote_lock);
|
||||||
trace_printk("%s\n", __func__);
|
pr_debug("%s\n", __func__);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(digital_cdc_rsc_mgr_hw_vote_disable);
|
EXPORT_SYMBOL(digital_cdc_rsc_mgr_hw_vote_disable);
|
||||||
|
|
||||||
@@ -79,7 +79,6 @@ void digital_cdc_rsc_mgr_hw_vote_reset(struct clk* vote_handle)
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
pr_debug("%s: Vote count after SSR: %d\n", __func__, count);
|
pr_debug("%s: Vote count after SSR: %d\n", __func__, count);
|
||||||
trace_printk("%s: Vote count after SSR: %d\n", __func__, count);
|
|
||||||
|
|
||||||
while (count--)
|
while (count--)
|
||||||
clk_prepare_enable(vote_handle);
|
clk_prepare_enable(vote_handle);
|
||||||
|
|||||||
@@ -1543,8 +1543,6 @@ static int afe_apr_send_pkt(void *data, wait_queue_head_t *wait)
|
|||||||
pr_err_ratelimited("%s: request timedout\n",
|
pr_err_ratelimited("%s: request timedout\n",
|
||||||
__func__);
|
__func__);
|
||||||
ret = -ETIMEDOUT;
|
ret = -ETIMEDOUT;
|
||||||
trace_printk("%s: wait for ADSP response timed out\n",
|
|
||||||
__func__);
|
|
||||||
} else if (atomic_read(&this_afe.status) > 0) {
|
} else if (atomic_read(&this_afe.status) > 0) {
|
||||||
pr_err("%s: DSP returned error[%s]\n", __func__,
|
pr_err("%s: DSP returned error[%s]\n", __func__,
|
||||||
adsp_err_get_err_str(atomic_read(
|
adsp_err_get_err_str(atomic_read(
|
||||||
@@ -3335,8 +3333,6 @@ int afe_send_port_island_mode(u16 port_id)
|
|||||||
}
|
}
|
||||||
pr_debug("%s: AFE set island mode 0x%x enable for port 0x%x ret %d\n",
|
pr_debug("%s: AFE set island mode 0x%x enable for port 0x%x ret %d\n",
|
||||||
__func__, island_mode, port_id, ret);
|
__func__, island_mode, port_id, ret);
|
||||||
trace_printk("%s: AFE set island mode 0x%x enable for port 0x%x ret %d\n",
|
|
||||||
__func__, island_mode, port_id, ret);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(afe_send_port_island_mode);
|
EXPORT_SYMBOL(afe_send_port_island_mode);
|
||||||
@@ -4659,8 +4655,6 @@ void afe_set_island_mode_cfg(u16 port_id, u32 enable_flag)
|
|||||||
port_index = afe_get_port_index(port_id);
|
port_index = afe_get_port_index(port_id);
|
||||||
this_afe.island_mode[port_index] = enable_flag;
|
this_afe.island_mode[port_index] = enable_flag;
|
||||||
|
|
||||||
trace_printk("%s: set island mode cfg 0x%x for port 0x%x\n",
|
|
||||||
__func__, this_afe.island_mode[port_index], port_id);
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(afe_set_island_mode_cfg);
|
EXPORT_SYMBOL(afe_set_island_mode_cfg);
|
||||||
|
|
||||||
@@ -8852,15 +8846,6 @@ int afe_set_lpass_clock(u16 port_id, struct afe_clk_cfg *cfg)
|
|||||||
cfg->clk_root, cfg->clk_set_mode,
|
cfg->clk_root, cfg->clk_set_mode,
|
||||||
cfg->reserved, q6audio_get_port_id(port_id));
|
cfg->reserved, q6audio_get_port_id(port_id));
|
||||||
|
|
||||||
trace_printk("%s: Minor version =0x%x clk val1 = %d\n"
|
|
||||||
"clk val2 = %d, clk src = 0x%x\n"
|
|
||||||
"clk root = 0x%x clk mode = 0x%x resrv = 0x%x\n"
|
|
||||||
"port id = 0x%x\n",
|
|
||||||
__func__, cfg->i2s_cfg_minor_version,
|
|
||||||
cfg->clk_val1, cfg->clk_val2, cfg->clk_src,
|
|
||||||
cfg->clk_root, cfg->clk_set_mode,
|
|
||||||
cfg->reserved, q6audio_get_port_id(port_id));
|
|
||||||
|
|
||||||
ret = q6afe_pack_and_set_param_in_band(port_id,
|
ret = q6afe_pack_and_set_param_in_band(port_id,
|
||||||
q6audio_get_port_index(port_id),
|
q6audio_get_port_index(port_id),
|
||||||
param_hdr, (u8 *) &clk_cfg);
|
param_hdr, (u8 *) &clk_cfg);
|
||||||
@@ -9195,20 +9180,11 @@ int afe_set_lpass_clk_cfg(int index, struct afe_clk_set *cfg)
|
|||||||
cfg->clk_id, cfg->clk_freq_in_hz, cfg->clk_attri,
|
cfg->clk_id, cfg->clk_freq_in_hz, cfg->clk_attri,
|
||||||
cfg->clk_root, cfg->enable);
|
cfg->clk_root, cfg->enable);
|
||||||
|
|
||||||
trace_printk("%s: Minor version =0x%x clk id = %d\n"
|
|
||||||
"clk freq (Hz) = %d, clk attri = 0x%x\n"
|
|
||||||
"clk root = 0x%x clk enable = 0x%x\n",
|
|
||||||
__func__, cfg->clk_set_minor_version,
|
|
||||||
cfg->clk_id, cfg->clk_freq_in_hz, cfg->clk_attri,
|
|
||||||
cfg->clk_root, cfg->enable);
|
|
||||||
|
|
||||||
ret = q6afe_svc_pack_and_set_param_in_band(index, param_hdr,
|
ret = q6afe_svc_pack_and_set_param_in_band(index, param_hdr,
|
||||||
(u8 *) cfg);
|
(u8 *) cfg);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err_ratelimited("%s: AFE clk cfg failed with ret %d\n",
|
pr_err_ratelimited("%s: AFE clk cfg failed with ret %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
trace_printk("%s: AFE clk cfg failed with ret %d\n",
|
|
||||||
__func__, ret);
|
|
||||||
}
|
}
|
||||||
mutex_unlock(&this_afe.afe_clk_lock);
|
mutex_unlock(&this_afe.afe_clk_lock);
|
||||||
return ret;
|
return ret;
|
||||||
@@ -11282,8 +11258,6 @@ int afe_vote_lpass_core_hw(uint32_t hw_block_id, char *client_name,
|
|||||||
pr_debug("%s: lpass core hw vote opcode[0x%x] hw id[0x%x]\n",
|
pr_debug("%s: lpass core hw vote opcode[0x%x] hw id[0x%x]\n",
|
||||||
__func__, cmd_ptr->hdr.opcode, cmd_ptr->hw_block_id);
|
__func__, cmd_ptr->hdr.opcode, cmd_ptr->hw_block_id);
|
||||||
|
|
||||||
trace_printk("%s: lpass core hw vote opcode[0x%x] hw id[0x%x]\n",
|
|
||||||
__func__, cmd_ptr->hdr.opcode, cmd_ptr->hw_block_id);
|
|
||||||
*client_handle = 0;
|
*client_handle = 0;
|
||||||
|
|
||||||
ret = afe_apr_send_clk_pkt((uint32_t *)cmd_ptr,
|
ret = afe_apr_send_clk_pkt((uint32_t *)cmd_ptr,
|
||||||
@@ -11323,7 +11297,6 @@ int afe_unvote_lpass_core_hw(uint32_t hw_block_id, uint32_t client_handle)
|
|||||||
|
|
||||||
if (!this_afe.lpass_hw_core_client_hdl[hw_block_id]) {
|
if (!this_afe.lpass_hw_core_client_hdl[hw_block_id]) {
|
||||||
pr_debug("%s: SSR in progress, return\n", __func__);
|
pr_debug("%s: SSR in progress, return\n", __func__);
|
||||||
trace_printk("%s: SSR in progress, return\n", __func__);
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11343,9 +11316,6 @@ int afe_unvote_lpass_core_hw(uint32_t hw_block_id, uint32_t client_handle)
|
|||||||
pr_debug("%s: lpass core hw unvote opcode[0x%x] hw id[0x%x]\n",
|
pr_debug("%s: lpass core hw unvote opcode[0x%x] hw id[0x%x]\n",
|
||||||
__func__, cmd_ptr->hdr.opcode, cmd_ptr->hw_block_id);
|
__func__, cmd_ptr->hdr.opcode, cmd_ptr->hw_block_id);
|
||||||
|
|
||||||
trace_printk("%s: lpass core hw unvote opcode[0x%x] hw id[0x%x]\n",
|
|
||||||
__func__, cmd_ptr->hdr.opcode, cmd_ptr->hw_block_id);
|
|
||||||
|
|
||||||
if (cmd_ptr->client_handle <= 0) {
|
if (cmd_ptr->client_handle <= 0) {
|
||||||
pr_err("%s: invalid client handle\n", __func__);
|
pr_err("%s: invalid client handle\n", __func__);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
|
|||||||
@@ -516,7 +516,6 @@ int lpi_pinctrl_suspend(struct device *dev)
|
|||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
trace_printk("%s: system suspend\n", __func__);
|
|
||||||
dev_dbg(dev, "%s: system suspend\n", __func__);
|
dev_dbg(dev, "%s: system suspend\n", __func__);
|
||||||
|
|
||||||
if ((!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev))) {
|
if ((!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev))) {
|
||||||
@@ -553,7 +552,6 @@ static struct notifier_block service_nb = {
|
|||||||
|
|
||||||
static void lpi_pinctrl_ssr_disable(struct device *dev, void *data)
|
static void lpi_pinctrl_ssr_disable(struct device *dev, void *data)
|
||||||
{
|
{
|
||||||
trace_printk("%s: enter\n", __func__);
|
|
||||||
lpi_dev_up = false;
|
lpi_dev_up = false;
|
||||||
lpi_pinctrl_suspend(dev);
|
lpi_pinctrl_suspend(dev);
|
||||||
}
|
}
|
||||||
@@ -878,7 +876,6 @@ int lpi_pinctrl_runtime_resume(struct device *dev)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct clk *hw_vote = state->lpass_core_hw_vote;
|
struct clk *hw_vote = state->lpass_core_hw_vote;
|
||||||
|
|
||||||
trace_printk("%s: enter\n", __func__);
|
|
||||||
if (state->lpass_core_hw_vote == NULL) {
|
if (state->lpass_core_hw_vote == NULL) {
|
||||||
dev_dbg(dev, "%s: Invalid core hw node\n", __func__);
|
dev_dbg(dev, "%s: Invalid core hw node\n", __func__);
|
||||||
if (state->lpass_audio_hw_vote == NULL) {
|
if (state->lpass_audio_hw_vote == NULL) {
|
||||||
@@ -904,7 +901,6 @@ int lpi_pinctrl_runtime_resume(struct device *dev)
|
|||||||
|
|
||||||
exit:
|
exit:
|
||||||
mutex_unlock(&state->core_hw_vote_lock);
|
mutex_unlock(&state->core_hw_vote_lock);
|
||||||
trace_printk("%s: exit\n", __func__);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -913,7 +909,6 @@ int lpi_pinctrl_runtime_suspend(struct device *dev)
|
|||||||
struct lpi_gpio_state *state = dev_get_drvdata(dev);
|
struct lpi_gpio_state *state = dev_get_drvdata(dev);
|
||||||
struct clk *hw_vote = state->lpass_core_hw_vote;
|
struct clk *hw_vote = state->lpass_core_hw_vote;
|
||||||
|
|
||||||
trace_printk("%s: enter\n", __func__);
|
|
||||||
if (state->lpass_core_hw_vote == NULL) {
|
if (state->lpass_core_hw_vote == NULL) {
|
||||||
dev_dbg(dev, "%s: Invalid core hw node\n", __func__);
|
dev_dbg(dev, "%s: Invalid core hw node\n", __func__);
|
||||||
if (state->lpass_audio_hw_vote == NULL) {
|
if (state->lpass_audio_hw_vote == NULL) {
|
||||||
@@ -929,7 +924,6 @@ int lpi_pinctrl_runtime_suspend(struct device *dev)
|
|||||||
state->core_hw_vote_status = false;
|
state->core_hw_vote_status = false;
|
||||||
}
|
}
|
||||||
mutex_unlock(&state->core_hw_vote_lock);
|
mutex_unlock(&state->core_hw_vote_lock);
|
||||||
trace_printk("%s: exit\n", __func__);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -381,8 +381,6 @@ static int swrm_request_hw_vote(struct swr_mstr_ctrl *swrm,
|
|||||||
if (!swrm->dev_up) {
|
if (!swrm->dev_up) {
|
||||||
dev_dbg(swrm->dev, "%s: device is down or SSR state\n",
|
dev_dbg(swrm->dev, "%s: device is down or SSR state\n",
|
||||||
__func__);
|
__func__);
|
||||||
trace_printk("%s: device is down or SSR state\n",
|
|
||||||
__func__);
|
|
||||||
mutex_unlock(&swrm->devlock);
|
mutex_unlock(&swrm->devlock);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
@@ -413,8 +411,6 @@ static int swrm_request_hw_vote(struct swr_mstr_ctrl *swrm,
|
|||||||
if (!swrm->dev_up) {
|
if (!swrm->dev_up) {
|
||||||
dev_dbg(swrm->dev, "%s: device is down or SSR state\n",
|
dev_dbg(swrm->dev, "%s: device is down or SSR state\n",
|
||||||
__func__);
|
__func__);
|
||||||
trace_printk("%s: device is down or SSR state\n",
|
|
||||||
__func__);
|
|
||||||
mutex_unlock(&swrm->devlock);
|
mutex_unlock(&swrm->devlock);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
@@ -443,8 +439,6 @@ static int swrm_request_hw_vote(struct swr_mstr_ctrl *swrm,
|
|||||||
mutex_unlock(&swrm->devlock);
|
mutex_unlock(&swrm->devlock);
|
||||||
dev_dbg(swrm->dev, "%s: hw_clk_en: %d audio_core_clk_en: %d\n",
|
dev_dbg(swrm->dev, "%s: hw_clk_en: %d audio_core_clk_en: %d\n",
|
||||||
__func__, swrm->hw_core_clk_en, swrm->aud_core_clk_en);
|
__func__, swrm->hw_core_clk_en, swrm->aud_core_clk_en);
|
||||||
trace_printk("%s: hw_clk_en: %d audio_core_clk_en: %d\n",
|
|
||||||
__func__, swrm->hw_core_clk_en, swrm->aud_core_clk_en);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -510,8 +504,6 @@ static int swrm_clk_request(struct swr_mstr_ctrl *swrm, bool enable)
|
|||||||
}
|
}
|
||||||
swrm->clk_ref_count++;
|
swrm->clk_ref_count++;
|
||||||
if (swrm->clk_ref_count == 1) {
|
if (swrm->clk_ref_count == 1) {
|
||||||
trace_printk("%s: clock enable count %d",
|
|
||||||
__func__, swrm->clk_ref_count);
|
|
||||||
ret = swrm->clk(swrm->handle, true);
|
ret = swrm->clk(swrm->handle, true);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err_ratelimited(swrm->dev,
|
dev_err_ratelimited(swrm->dev,
|
||||||
@@ -521,8 +513,6 @@ static int swrm_clk_request(struct swr_mstr_ctrl *swrm, bool enable)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (--swrm->clk_ref_count == 0) {
|
} else if (--swrm->clk_ref_count == 0) {
|
||||||
trace_printk("%s: clock disable count %d",
|
|
||||||
__func__, swrm->clk_ref_count);
|
|
||||||
swrm->clk(swrm->handle, false);
|
swrm->clk(swrm->handle, false);
|
||||||
complete(&swrm->clk_off_complete);
|
complete(&swrm->clk_off_complete);
|
||||||
}
|
}
|
||||||
@@ -1835,7 +1825,6 @@ static irqreturn_t swr_mstr_interrupt(int irq, void *dev)
|
|||||||
struct swr_device *swr_dev;
|
struct swr_device *swr_dev;
|
||||||
struct swr_master *mstr = &swrm->master;
|
struct swr_master *mstr = &swrm->master;
|
||||||
|
|
||||||
trace_printk("%s enter\n", __func__);
|
|
||||||
if (unlikely(swrm_lock_sleep(swrm) == false)) {
|
if (unlikely(swrm_lock_sleep(swrm) == false)) {
|
||||||
dev_err(swrm->dev, "%s Failed to hold suspend\n", __func__);
|
dev_err(swrm->dev, "%s Failed to hold suspend\n", __func__);
|
||||||
return IRQ_NONE;
|
return IRQ_NONE;
|
||||||
@@ -1853,7 +1842,6 @@ static irqreturn_t swr_mstr_interrupt(int irq, void *dev)
|
|||||||
intr_sts = swr_master_read(swrm, SWRM_INTERRUPT_STATUS);
|
intr_sts = swr_master_read(swrm, SWRM_INTERRUPT_STATUS);
|
||||||
intr_sts_masked = intr_sts & swrm->intr_mask;
|
intr_sts_masked = intr_sts & swrm->intr_mask;
|
||||||
|
|
||||||
trace_printk("%s: status: 0x%x \n", __func__, intr_sts_masked);
|
|
||||||
handle_irq:
|
handle_irq:
|
||||||
for (i = 0; i < SWRM_INTERRUPT_MAX; i++) {
|
for (i = 0; i < SWRM_INTERRUPT_MAX; i++) {
|
||||||
value = intr_sts_masked & (1 << i);
|
value = intr_sts_masked & (1 << i);
|
||||||
@@ -1998,7 +1986,6 @@ static irqreturn_t swr_mstr_interrupt(int irq, void *dev)
|
|||||||
mutex_unlock(&swrm->reslock);
|
mutex_unlock(&swrm->reslock);
|
||||||
exit:
|
exit:
|
||||||
swrm_unlock_sleep(swrm);
|
swrm_unlock_sleep(swrm);
|
||||||
trace_printk("%s exit\n", __func__);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2013,7 +2000,6 @@ static irqreturn_t swr_mstr_interrupt_v2(int irq, void *dev)
|
|||||||
struct swr_device *swr_dev;
|
struct swr_device *swr_dev;
|
||||||
struct swr_master *mstr = &swrm->master;
|
struct swr_master *mstr = &swrm->master;
|
||||||
|
|
||||||
trace_printk("%s enter\n", __func__);
|
|
||||||
if (unlikely(swrm_lock_sleep(swrm) == false)) {
|
if (unlikely(swrm_lock_sleep(swrm) == false)) {
|
||||||
dev_err(swrm->dev, "%s Failed to hold suspend\n", __func__);
|
dev_err(swrm->dev, "%s Failed to hold suspend\n", __func__);
|
||||||
return IRQ_NONE;
|
return IRQ_NONE;
|
||||||
@@ -2040,7 +2026,6 @@ static irqreturn_t swr_mstr_interrupt_v2(int irq, void *dev)
|
|||||||
intr_sts_masked = intr_sts & swrm->intr_mask;
|
intr_sts_masked = intr_sts & swrm->intr_mask;
|
||||||
|
|
||||||
dev_dbg(swrm->dev, "%s: status: 0x%x \n", __func__, intr_sts_masked);
|
dev_dbg(swrm->dev, "%s: status: 0x%x \n", __func__, intr_sts_masked);
|
||||||
trace_printk("%s: status: 0x%x \n", __func__, intr_sts_masked);
|
|
||||||
handle_irq:
|
handle_irq:
|
||||||
for (i = 0; i < SWRM_INTERRUPT_MAX; i++) {
|
for (i = 0; i < SWRM_INTERRUPT_MAX; i++) {
|
||||||
value = intr_sts_masked & (1 << i);
|
value = intr_sts_masked & (1 << i);
|
||||||
@@ -2245,7 +2230,6 @@ static irqreturn_t swr_mstr_interrupt_v2(int irq, void *dev)
|
|||||||
exit:
|
exit:
|
||||||
mutex_unlock(&swrm->reslock);
|
mutex_unlock(&swrm->reslock);
|
||||||
swrm_unlock_sleep(swrm);
|
swrm_unlock_sleep(swrm);
|
||||||
trace_printk("%s exit\n", __func__);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2259,7 +2243,6 @@ static irqreturn_t swrm_wakeup_interrupt(int irq, void *dev)
|
|||||||
return IRQ_NONE;
|
return IRQ_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_printk("%s enter\n", __func__);
|
|
||||||
mutex_lock(&swrm->devlock);
|
mutex_lock(&swrm->devlock);
|
||||||
if (!swrm->dev_up) {
|
if (!swrm->dev_up) {
|
||||||
if (swrm->wake_irq > 0) {
|
if (swrm->wake_irq > 0) {
|
||||||
@@ -2298,7 +2281,6 @@ static irqreturn_t swrm_wakeup_interrupt(int irq, void *dev)
|
|||||||
pm_runtime_put_autosuspend(swrm->dev);
|
pm_runtime_put_autosuspend(swrm->dev);
|
||||||
swrm_unlock_sleep(swrm);
|
swrm_unlock_sleep(swrm);
|
||||||
exit:
|
exit:
|
||||||
trace_printk("%s exit\n", __func__);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2313,7 +2295,6 @@ static void swrm_wakeup_work(struct work_struct *work)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_printk("%s enter\n", __func__);
|
|
||||||
mutex_lock(&swrm->devlock);
|
mutex_lock(&swrm->devlock);
|
||||||
if (!swrm->dev_up) {
|
if (!swrm->dev_up) {
|
||||||
mutex_unlock(&swrm->devlock);
|
mutex_unlock(&swrm->devlock);
|
||||||
@@ -2329,7 +2310,6 @@ static void swrm_wakeup_work(struct work_struct *work)
|
|||||||
pm_runtime_put_autosuspend(swrm->dev);
|
pm_runtime_put_autosuspend(swrm->dev);
|
||||||
swrm_unlock_sleep(swrm);
|
swrm_unlock_sleep(swrm);
|
||||||
exit:
|
exit:
|
||||||
trace_printk("%s exit\n", __func__);
|
|
||||||
pm_relax(swrm->dev);
|
pm_relax(swrm->dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3041,8 +3021,6 @@ static int swrm_runtime_resume(struct device *dev)
|
|||||||
|
|
||||||
dev_dbg(dev, "%s: pm_runtime: resume, state:%d\n",
|
dev_dbg(dev, "%s: pm_runtime: resume, state:%d\n",
|
||||||
__func__, swrm->state);
|
__func__, swrm->state);
|
||||||
trace_printk("%s: pm_runtime: resume, state:%d\n",
|
|
||||||
__func__, swrm->state);
|
|
||||||
mutex_lock(&swrm->reslock);
|
mutex_lock(&swrm->reslock);
|
||||||
|
|
||||||
if (swrm_request_hw_vote(swrm, LPASS_HW_CORE, true)) {
|
if (swrm_request_hw_vote(swrm, LPASS_HW_CORE, true)) {
|
||||||
@@ -3093,9 +3071,6 @@ static int swrm_runtime_resume(struct device *dev)
|
|||||||
dev_dbg(dev,
|
dev_dbg(dev,
|
||||||
"%s slave device up not implemented\n",
|
"%s slave device up not implemented\n",
|
||||||
__func__);
|
__func__);
|
||||||
trace_printk(
|
|
||||||
"%s slave device up not implemented\n",
|
|
||||||
__func__);
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
} else if (ret) {
|
} else if (ret) {
|
||||||
dev_err(dev,
|
dev_err(dev,
|
||||||
@@ -3153,8 +3128,6 @@ static int swrm_runtime_resume(struct device *dev)
|
|||||||
swrm->req_clk_switch = false;
|
swrm->req_clk_switch = false;
|
||||||
mutex_unlock(&swrm->reslock);
|
mutex_unlock(&swrm->reslock);
|
||||||
|
|
||||||
trace_printk("%s: pm_runtime: resume done, state:%d\n",
|
|
||||||
__func__, swrm->state);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3170,8 +3143,6 @@ static int swrm_runtime_suspend(struct device *dev)
|
|||||||
int current_state = 0;
|
int current_state = 0;
|
||||||
struct irq_data *irq_data = NULL;
|
struct irq_data *irq_data = NULL;
|
||||||
|
|
||||||
trace_printk("%s: pm_runtime: suspend state: %d\n",
|
|
||||||
__func__, swrm->state);
|
|
||||||
dev_dbg(dev, "%s: pm_runtime: suspend state: %d\n",
|
dev_dbg(dev, "%s: pm_runtime: suspend state: %d\n",
|
||||||
__func__, swrm->state);
|
__func__, swrm->state);
|
||||||
if (swrm->state == SWR_MSTR_SSR_RESET) {
|
if (swrm->state == SWR_MSTR_SSR_RESET) {
|
||||||
@@ -3200,7 +3171,6 @@ static int swrm_runtime_suspend(struct device *dev)
|
|||||||
if ((current_state != SWR_MSTR_SSR) &&
|
if ((current_state != SWR_MSTR_SSR) &&
|
||||||
swrm_is_port_en(&swrm->master)) {
|
swrm_is_port_en(&swrm->master)) {
|
||||||
dev_dbg(dev, "%s ports are enabled\n", __func__);
|
dev_dbg(dev, "%s ports are enabled\n", __func__);
|
||||||
trace_printk("%s ports are enabled\n", __func__);
|
|
||||||
ret = -EBUSY;
|
ret = -EBUSY;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
@@ -3234,22 +3204,14 @@ static int swrm_runtime_suspend(struct device *dev)
|
|||||||
dev_dbg_ratelimited(dev,
|
dev_dbg_ratelimited(dev,
|
||||||
"%s slave device down not implemented\n",
|
"%s slave device down not implemented\n",
|
||||||
__func__);
|
__func__);
|
||||||
trace_printk(
|
|
||||||
"%s slave device down not implemented\n",
|
|
||||||
__func__);
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
} else if (ret) {
|
} else if (ret) {
|
||||||
dev_err(dev,
|
dev_err(dev,
|
||||||
"%s: failed to shutdown swr dev %d\n",
|
"%s: failed to shutdown swr dev %d\n",
|
||||||
__func__, swr_dev->dev_num);
|
__func__, swr_dev->dev_num);
|
||||||
trace_printk(
|
|
||||||
"%s: failed to shutdown swr dev %d\n",
|
|
||||||
__func__, swr_dev->dev_num);
|
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
trace_printk("%s: clk stop mode not supported or SSR exit\n",
|
|
||||||
__func__);
|
|
||||||
} else {
|
} else {
|
||||||
/* Mask bus clash interrupt */
|
/* Mask bus clash interrupt */
|
||||||
swrm->intr_mask &= ~((u32)0x08);
|
swrm->intr_mask &= ~((u32)0x08);
|
||||||
@@ -3297,8 +3259,6 @@ static int swrm_runtime_suspend(struct device *dev)
|
|||||||
if (!hw_core_err)
|
if (!hw_core_err)
|
||||||
swrm_request_hw_vote(swrm, LPASS_HW_CORE, false);
|
swrm_request_hw_vote(swrm, LPASS_HW_CORE, false);
|
||||||
mutex_unlock(&swrm->reslock);
|
mutex_unlock(&swrm->reslock);
|
||||||
trace_printk("%s: pm_runtime: suspend done state: %d\n",
|
|
||||||
__func__, swrm->state);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_PM */
|
#endif /* CONFIG_PM */
|
||||||
@@ -3310,7 +3270,6 @@ static int swrm_device_suspend(struct device *dev)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
dev_dbg(dev, "%s: swrm state: %d\n", __func__, swrm->state);
|
dev_dbg(dev, "%s: swrm state: %d\n", __func__, swrm->state);
|
||||||
trace_printk("%s: swrm state: %d\n", __func__, swrm->state);
|
|
||||||
if (!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev)) {
|
if (!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev)) {
|
||||||
ret = swrm_runtime_suspend(dev);
|
ret = swrm_runtime_suspend(dev);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
@@ -3329,7 +3288,6 @@ static int swrm_device_down(struct device *dev)
|
|||||||
struct swr_mstr_ctrl *swrm = platform_get_drvdata(pdev);
|
struct swr_mstr_ctrl *swrm = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
dev_dbg(dev, "%s: swrm state: %d\n", __func__, swrm->state);
|
dev_dbg(dev, "%s: swrm state: %d\n", __func__, swrm->state);
|
||||||
trace_printk("%s: swrm state: %d\n", __func__, swrm->state);
|
|
||||||
|
|
||||||
mutex_lock(&swrm->force_down_lock);
|
mutex_lock(&swrm->force_down_lock);
|
||||||
swrm->state = SWR_MSTR_SSR;
|
swrm->state = SWR_MSTR_SSR;
|
||||||
@@ -3507,7 +3465,6 @@ int swrm_wcd_notify(struct platform_device *pdev, u32 id, void *data)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SWR_DEVICE_SSR_DOWN:
|
case SWR_DEVICE_SSR_DOWN:
|
||||||
trace_printk("%s: swr device down called\n", __func__);
|
|
||||||
mutex_lock(&swrm->mlock);
|
mutex_lock(&swrm->mlock);
|
||||||
if (swrm->state == SWR_MSTR_DOWN)
|
if (swrm->state == SWR_MSTR_DOWN)
|
||||||
dev_dbg(swrm->dev, "%s:SWR master is already Down:%d\n",
|
dev_dbg(swrm->dev, "%s:SWR master is already Down:%d\n",
|
||||||
@@ -3526,7 +3483,6 @@ int swrm_wcd_notify(struct platform_device *pdev, u32 id, void *data)
|
|||||||
break;
|
break;
|
||||||
case SWR_DEVICE_SSR_UP:
|
case SWR_DEVICE_SSR_UP:
|
||||||
/* wait for clk voting to be zero */
|
/* wait for clk voting to be zero */
|
||||||
trace_printk("%s: swr device up called\n", __func__);
|
|
||||||
reinit_completion(&swrm->clk_off_complete);
|
reinit_completion(&swrm->clk_off_complete);
|
||||||
if (swrm->clk_ref_count &&
|
if (swrm->clk_ref_count &&
|
||||||
!wait_for_completion_timeout(&swrm->clk_off_complete,
|
!wait_for_completion_timeout(&swrm->clk_off_complete,
|
||||||
@@ -3552,7 +3508,6 @@ int swrm_wcd_notify(struct platform_device *pdev, u32 id, void *data)
|
|||||||
break;
|
break;
|
||||||
case SWR_DEVICE_DOWN:
|
case SWR_DEVICE_DOWN:
|
||||||
dev_dbg(swrm->dev, "%s: swr master down called\n", __func__);
|
dev_dbg(swrm->dev, "%s: swr master down called\n", __func__);
|
||||||
trace_printk("%s: swr master down called\n", __func__);
|
|
||||||
mutex_lock(&swrm->mlock);
|
mutex_lock(&swrm->mlock);
|
||||||
if (swrm->state == SWR_MSTR_DOWN)
|
if (swrm->state == SWR_MSTR_DOWN)
|
||||||
dev_dbg(swrm->dev, "%s:SWR master is already Down:%d\n",
|
dev_dbg(swrm->dev, "%s:SWR master is already Down:%d\n",
|
||||||
@@ -3563,7 +3518,6 @@ int swrm_wcd_notify(struct platform_device *pdev, u32 id, void *data)
|
|||||||
break;
|
break;
|
||||||
case SWR_DEVICE_UP:
|
case SWR_DEVICE_UP:
|
||||||
dev_dbg(swrm->dev, "%s: swr master up called\n", __func__);
|
dev_dbg(swrm->dev, "%s: swr master up called\n", __func__);
|
||||||
trace_printk("%s: swr master up called\n", __func__);
|
|
||||||
mutex_lock(&swrm->devlock);
|
mutex_lock(&swrm->devlock);
|
||||||
if (!swrm->dev_up) {
|
if (!swrm->dev_up) {
|
||||||
dev_dbg(swrm->dev, "SSR not complete yet\n");
|
dev_dbg(swrm->dev, "SSR not complete yet\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user