[alsa-devel] [PATCH 10/10] ASoC: twl6040: Simplify code in out_drv_event for pending work check
Peter Ujfalusi
peter.ujfalusi at ti.com
Mon Sep 26 15:26:33 CEST 2011
Check for pending work before the DAPM event switch case, and return,
if the work is pending.
This way we can remove the two additional checks in POST_PMU, and
PRE_PMD for non pending works.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
---
sound/soc/codecs/twl6040.c | 25 +++++++++++--------------
1 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/sound/soc/codecs/twl6040.c b/sound/soc/codecs/twl6040.c
index 7ad209f..23506d5 100644
--- a/sound/soc/codecs/twl6040.c
+++ b/sound/soc/codecs/twl6040.c
@@ -587,37 +587,34 @@ static int out_drv_event(struct snd_soc_dapm_widget *w,
work = &out->work;
+ if (delayed_work_pending(work))
+ return 0;
+
switch (event) {
case SND_SOC_DAPM_POST_PMU:
if (out->active)
break;
/* don't use volume ramp for power-up */
+ out->ramp = TWL6040_RAMP_UP;
out->left_step = out->left_vol;
out->right_step = out->right_vol;
- if (!delayed_work_pending(work)) {
- out->ramp = TWL6040_RAMP_UP;
- queue_delayed_work(priv->workqueue, work,
- msecs_to_jiffies(1));
- }
+ queue_delayed_work(priv->workqueue, work, msecs_to_jiffies(1));
break;
case SND_SOC_DAPM_PRE_PMD:
if (!out->active)
break;
- if (!delayed_work_pending(work)) {
- /* use volume ramp for power-down */
- out->ramp = TWL6040_RAMP_DOWN;
- INIT_COMPLETION(out->ramp_done);
+ /* use volume ramp for power-down */
+ out->ramp = TWL6040_RAMP_DOWN;
+ INIT_COMPLETION(out->ramp_done);
- queue_delayed_work(priv->workqueue, work,
- msecs_to_jiffies(1));
+ queue_delayed_work(priv->workqueue, work, msecs_to_jiffies(1));
- wait_for_completion_timeout(&out->ramp_done,
- msecs_to_jiffies(2000));
- }
+ wait_for_completion_timeout(&out->ramp_done,
+ msecs_to_jiffies(2000));
break;
}
--
1.7.6.1
More information about the Alsa-devel
mailing list