|
|
@@ -42,6 +42,11 @@
|
|
|
#define MIN_FRAGMENT_SIZE (50 * 1024)
|
|
|
#define MAX_FRAGMENT_SIZE (1024 * 1024)
|
|
|
#define SST_GET_BYTES_PER_SAMPLE(pcm_wd_sz) (((pcm_wd_sz + 15) >> 4) << 1)
|
|
|
+#ifdef CONFIG_PM
|
|
|
+#define GET_USAGE_COUNT(dev) (atomic_read(&dev->power.usage_count))
|
|
|
+#else
|
|
|
+#define GET_USAGE_COUNT(dev) 1
|
|
|
+#endif
|
|
|
|
|
|
int free_stream_context(struct intel_sst_drv *ctx, unsigned int str_id)
|
|
|
{
|
|
|
@@ -141,15 +146,9 @@ static int sst_power_control(struct device *dev, bool state)
|
|
|
int ret = 0;
|
|
|
int usage_count = 0;
|
|
|
|
|
|
-#ifdef CONFIG_PM
|
|
|
- usage_count = atomic_read(&dev->power.usage_count);
|
|
|
-#else
|
|
|
- usage_count = 1;
|
|
|
-#endif
|
|
|
-
|
|
|
if (state == true) {
|
|
|
ret = pm_runtime_get_sync(dev);
|
|
|
-
|
|
|
+ usage_count = GET_USAGE_COUNT(dev);
|
|
|
dev_dbg(ctx->dev, "Enable: pm usage count: %d\n", usage_count);
|
|
|
if (ret < 0) {
|
|
|
dev_err(ctx->dev, "Runtime get failed with err: %d\n", ret);
|
|
|
@@ -164,6 +163,7 @@ static int sst_power_control(struct device *dev, bool state)
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
+ usage_count = GET_USAGE_COUNT(dev);
|
|
|
dev_dbg(ctx->dev, "Disable: pm usage count: %d\n", usage_count);
|
|
|
return sst_pm_runtime_put(ctx);
|
|
|
}
|