Prev: PM_QOS updates 2 of 6
Next: PM_QOS updates 4 of 6
From: 640E9920 on 13 Mar 2010 19:40 On Sat, Mar 13, 2010 at 01:48:57PM -0800, mgross wrote: > Date: Sat, 13 Mar 2010 13:48:57 -0800 > From: 640E9920 <640E9920(a)gmail.com> > To: linux-pm(a)lists.linux-foundation.org, linux-kernel(a)vger.kernel.org, > dwalker(a)codeaurora.org, tiwai(a)suse.de, bruce.w.allan(a)intel.com, > aili(a)codeaurora.org, khilman(a)deeprootsystems.com, pavel(a)ucw.cz, > mgross(a)linux.intel.com > Subject: [PATCH] PM_QOS updates for 2.6.34-rc1 > User-Agent: Mutt/1.5.20 (2009-06-14) > From 4c9730c7043359b99acc0fcc07b3417f6fb65493 Mon Sep 17 00:00:00 2001 From: mgross <mgross(a)linux.intel.com> Date: Sat, 13 Mar 2010 08:23:27 -0800 Subject: [PATCH 5/6] PM_QOS-to-use-handle-based-requests-pcm-update Signed-off-by: Mark Gross <mgross(a)linux.intel.com> --- include/sound/pcm.h | 3 ++- sound/core/pcm.c | 3 --- sound/core/pcm_native.c | 14 ++++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 8b611a5..dd76cde 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h @@ -29,6 +29,7 @@ #include <linux/poll.h> #include <linux/mm.h> #include <linux/bitops.h> +#include <linux/pm_qos_params.h> #define snd_pcm_substream_chip(substream) ((substream)->private_data) #define snd_pcm_chip(pcm) ((pcm)->private_data) @@ -365,7 +366,7 @@ struct snd_pcm_substream { int number; char name[32]; /* substream name */ int stream; /* stream (direction) */ - char latency_id[20]; /* latency identifier */ + struct pm_qos_request_list *latency_pm_qos_req; /* pm_qos request */ size_t buffer_bytes_max; /* limit ring buffer size */ struct snd_dma_buffer dma_buffer; unsigned int dma_buf_id; diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 0d428d0..cbe815d 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c @@ -648,9 +648,6 @@ int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count) substream->number = idx; substream->stream = stream; sprintf(substream->name, "subdevice #%i", idx); - snprintf(substream->latency_id, sizeof(substream->latency_id), - "ALSA-PCM%d-%d%c%d", pcm->card->number, pcm->device, - (stream ? 'c' : 'p'), idx); substream->buffer_bytes_max = UINT_MAX; if (prev == NULL) pstr->substream = substream; diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 8728876..605c86d 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -481,11 +481,13 @@ static int snd_pcm_hw_params(struct snd_pcm_substream *substream, snd_pcm_timer_resolution_change(substream); runtime->status->state = SNDRV_PCM_STATE_SETUP; - pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, - substream->latency_id); + if (substream->latency_pm_qos_req) { + pm_qos_remove_request(substream->latency_pm_qos_req); + substream->latency_pm_qos_req = NULL; + } if ((usecs = period_to_usecs(runtime)) >= 0) - pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, - substream->latency_id, usecs); + substream->latency_pm_qos_req = pm_qos_add_request( + PM_QOS_CPU_DMA_LATENCY, usecs); return 0; _error: /* hardware might be unuseable from this time, @@ -540,8 +542,8 @@ static int snd_pcm_hw_free(struct snd_pcm_substream *substream) if (substream->ops->hw_free) result = substream->ops->hw_free(substream); runtime->status->state = SNDRV_PCM_STATE_OPEN; - pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, - substream->latency_id); + pm_qos_remove_request(substream->latency_pm_qos_req); + substream->latency_pm_qos_req = NULL; return result; } -- 1.6.3.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: PM_QOS updates 2 of 6 Next: PM_QOS updates 4 of 6 |