PM_QOS-to-use-handle-based-requests-pcm-update 5/5
PATCH 1/1 PM_QOS-to-use-handle-based-requests-pcm-update 5/5
Signed-off-by mark gross <[email protected]>
--- include/sound/pcm.h | 3 ++- sound/core/pcm.c | 3 --- sound/core/pcm_native.c | 14 ++++++++------ 3 files changed, 10 insertions(+), 10 deletions(-)
include/sound/pcm.h +2 -1
@@ -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)
@@ -357,7 +358,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;
sound/core/pcm.c +0 -3
@@ -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;
sound/core/pcm_native.c +8 -6
@@ -448,11 +448,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,
@@ -507,8 +509,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; }
Signature · 1 line
1.6.3.3