aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/pcm.c3
-rw-r--r--sound/core/pcm_native.c14
2 files changed, 8 insertions, 9 deletions
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 0d428d0896d..cbe815dfbdc 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)
648 substream->number = idx; 648 substream->number = idx;
649 substream->stream = stream; 649 substream->stream = stream;
650 sprintf(substream->name, "subdevice #%i", idx); 650 sprintf(substream->name, "subdevice #%i", idx);
651 snprintf(substream->latency_id, sizeof(substream->latency_id),
652 "ALSA-PCM%d-%d%c%d", pcm->card->number, pcm->device,
653 (stream ? 'c' : 'p'), idx);
654 substream->buffer_bytes_max = UINT_MAX; 651 substream->buffer_bytes_max = UINT_MAX;
655 if (prev == NULL) 652 if (prev == NULL)
656 pstr->substream = substream; 653 pstr->substream = substream;
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 20b5982c996..192dd407512 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -484,11 +484,13 @@ static int snd_pcm_hw_params(struct snd_pcm_substream *substream,
484 snd_pcm_timer_resolution_change(substream); 484 snd_pcm_timer_resolution_change(substream);
485 runtime->status->state = SNDRV_PCM_STATE_SETUP; 485 runtime->status->state = SNDRV_PCM_STATE_SETUP;
486 486
487 pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, 487 if (substream->latency_pm_qos_req) {
488 substream->latency_id); 488 pm_qos_remove_request(substream->latency_pm_qos_req);
489 substream->latency_pm_qos_req = NULL;
490 }
489 if ((usecs = period_to_usecs(runtime)) >= 0) 491 if ((usecs = period_to_usecs(runtime)) >= 0)
490 pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, 492 substream->latency_pm_qos_req = pm_qos_add_request(
491 substream->latency_id, usecs); 493 PM_QOS_CPU_DMA_LATENCY, usecs);
492 return 0; 494 return 0;
493 _error: 495 _error:
494 /* hardware might be unuseable from this time, 496 /* hardware might be unuseable from this time,
@@ -543,8 +545,8 @@ static int snd_pcm_hw_free(struct snd_pcm_substream *substream)
543 if (substream->ops->hw_free) 545 if (substream->ops->hw_free)
544 result = substream->ops->hw_free(substream); 546 result = substream->ops->hw_free(substream);
545 runtime->status->state = SNDRV_PCM_STATE_OPEN; 547 runtime->status->state = SNDRV_PCM_STATE_OPEN;
546 pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, 548 pm_qos_remove_request(substream->latency_pm_qos_req);
547 substream->latency_id); 549 substream->latency_pm_qos_req = NULL;
548 return result; 550 return result;
549} 551}
550 552