summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-08-23 17:45:14 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-08-23 17:45:14 +0000
commita60de255f0ae38c9a41e3c83a59eebcde3949fa4 (patch)
treebf9bf008362010124ea7573ec82c661905a87ff0
parentd4a5d0d2139a70d32315f2161bc98f0e2b233887 (diff)
parent0889dd30bd0f647ad07b1c9701628bac597b032a (diff)
downloadmsm-extra-android-msm-eos-5.15-tm-wear-kr3-pixel-watch.tar.gz
Change-Id: I7f7eb1db051180144da7e185b6c71e04fa842518
-rw-r--r--asoc/codecs/bolero/rx-macro.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/asoc/codecs/bolero/rx-macro.c b/asoc/codecs/bolero/rx-macro.c
index c65ba5ab..2465b34c 100644
--- a/asoc/codecs/bolero/rx-macro.c
+++ b/asoc/codecs/bolero/rx-macro.c
@@ -3764,6 +3764,8 @@ static int rx_swrm_clock(void *handle, bool enable)
struct rx_macro_priv *rx_priv = (struct rx_macro_priv *) handle;
struct regmap *regmap = dev_get_regmap(rx_priv->dev->parent, NULL);
int ret = 0;
+ int pm_suspend_ret;
+ int usage_count;
if (regmap == NULL) {
dev_err(rx_priv->dev, "%s: regmap is NULL\n", __func__);
@@ -3838,6 +3840,20 @@ static int rx_swrm_clock(void *handle, bool enable)
__func__);
goto exit;
}
+
+ // By adding a synchronous call to pm_runtime_suspend() here,
+ // swr_mstr_interrupt() now explicitly turns off the clock rather
+ // than relying on autosuspend.
+ pm_suspend_ret = pm_runtime_suspend(rx_priv->dev);
+ if (pm_suspend_ret < 0) {
+ usage_count = atomic_read(&rx_priv->dev->power.usage_count);
+ trace_printk(
+ "%s: pm_runtime_suspend returned %d, usage_count %d\n",
+ __func__, pm_suspend_ret, usage_count);
+ dev_err(rx_priv->dev,
+ "%s: pm_runtime_suspend returned %d, usage_count %d\n",
+ __func__, pm_suspend_ret, usage_count);
+ }
}
}
trace_printk("%s: swrm clock users %d\n",