From f04955c97b7fea27a8a9d9ec91b3d12ccf4bcb63 Mon Sep 17 00:00:00 2001 From: Stephen Boyd Date: Thu, 31 May 2012 16:45:49 -0700 Subject: [PATCH] msm: audio: Replace more idle wakelocks with pm_qos Some audio drivers were missing Change-Id: I79b02e528ae225360e617f565b63da120a534a8b Signed-off-by: Stephen Boyd --- sound/soc/msm/msm-mvs.c | 6 +++--- sound/soc/msm/msm-voip.c | 6 +++--- sound/soc/msm/msm_audio_mvs.h | 5 +++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/sound/soc/msm/msm-mvs.c b/sound/soc/msm/msm-mvs.c index 2e7114c94f0..eca9864f741 100644 --- a/sound/soc/msm/msm-mvs.c +++ b/sound/soc/msm/msm-mvs.c @@ -593,7 +593,7 @@ static int msm_pcm_close(struct snd_pcm_substream *substream) mutex_unlock(&audio->lock); wake_unlock(&audio->suspend_lock); - wake_unlock(&audio->idle_lock); + pm_qos_update_request(&audio->pm_qos_req, PM_QOS_DEFAULT_VALUE); /* Release the IO buffers. */ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { mutex_lock(&audio->in_lock); @@ -920,8 +920,8 @@ static int __init msm_mvs_soc_platform_init(void) init_waitqueue_head(&audio_mvs_info.in_wait); wake_lock_init(&audio_mvs_info.suspend_lock, WAKE_LOCK_SUSPEND, "audio_mvs_suspend"); - wake_lock_init(&audio_mvs_info.idle_lock, WAKE_LOCK_IDLE, - "audio_mvs_idle"); + pm_qos_add_request(&audio_mvs_info.pm_qos_req, PM_QOS_CPU_DMA_LATENCY, + PM_QOS_DEFAULT_VALUE); return platform_driver_register(&msm_pcm_driver); } module_init(msm_mvs_soc_platform_init); diff --git a/sound/soc/msm/msm-voip.c b/sound/soc/msm/msm-voip.c index 082c840f9b7..b1bb2c40dc8 100644 --- a/sound/soc/msm/msm-voip.c +++ b/sound/soc/msm/msm-voip.c @@ -133,7 +133,7 @@ static int msm_pcm_close(struct snd_pcm_substream *substream) mutex_unlock(&audio->lock); wake_unlock(&audio->suspend_lock); - wake_unlock(&audio->idle_lock); + pm_qos_update_request(&audio->pm_qos_req, PM_QOS_DEFAULT_VALUE); /* Release the IO buffers. */ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { audio->in_write = 0; @@ -594,8 +594,8 @@ static int __init msm_mvs_soc_platform_init(void) init_waitqueue_head(&audio_voip_info.in_wait); wake_lock_init(&audio_voip_info.suspend_lock, WAKE_LOCK_SUSPEND, "audio_mvs_suspend"); - wake_lock_init(&audio_voip_info.idle_lock, WAKE_LOCK_IDLE, - "audio_mvs_idle"); + pm_qos_add_request(&audio_voip_info.pm_qos_req, PM_QOS_CPU_DMA_LATENCY, + PM_QOS_DEFAULT_VALUE); return platform_driver_register(&msm_pcm_driver); } module_init(msm_mvs_soc_platform_init); diff --git a/sound/soc/msm/msm_audio_mvs.h b/sound/soc/msm/msm_audio_mvs.h index 728621aebd5..2660b770e7d 100644 --- a/sound/soc/msm/msm_audio_mvs.h +++ b/sound/soc/msm/msm_audio_mvs.h @@ -16,6 +16,7 @@ #define __MSM_AUDIO_MVS_H #include #include +#include #include #include #include @@ -286,7 +287,7 @@ struct audio_mvs_info_type { struct mutex out_lock; struct wake_lock suspend_lock; - struct wake_lock idle_lock; + struct pm_qos_request pm_qos_req; struct timer_list timer; unsigned long expiry; int ack_dl_count; @@ -335,7 +336,7 @@ struct audio_voip_info_type { struct mutex prepare_lock; struct wake_lock suspend_lock; - struct wake_lock idle_lock; + struct pm_qos_request pm_qos_req; int playback_start; int capture_start; int instance;