Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1:Update
alsa
0031-pcm-recalculate-all-rules-after-changing-h...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0031-pcm-recalculate-all-rules-after-changing-hw_params-f.patch of Package alsa
From 6dab1a91cbbd40d2f52a0c5a1bd961a1db7bb319 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch <clemens@ladisch.de> Date: Wed, 21 Sep 2011 08:30:20 +0200 Subject: [PATCH 1/5] pcm: recalculate all rules after changing hw_params flags The rules engine avoids recalculating rules that do not depend on any changed parameter, but there is no mechanism to record changed flags. So when we change a flag, we have to ensure that all rules depending on that flag are recalculated; the only method to do this is to force recalculation of all rules. So far, there have been no kernel drivers with rules depending on flags, but rules to disable hardware SRCs by setting SND_PCM_HW_PARAMS_NORESAMPLE are being introduced now. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> --- src/pcm/pcm.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c index 12f8cd0..bc5c6e4 100644 --- a/src/pcm/pcm.c +++ b/src/pcm/pcm.c @@ -4200,6 +4200,7 @@ int snd_pcm_hw_params_set_rate_resample(snd_pcm_t *pcm, snd_pcm_hw_params_t *par params->flags |= SND_PCM_HW_PARAMS_NORESAMPLE; else params->flags &= ~SND_PCM_HW_PARAMS_NORESAMPLE; + params->rmask = ~0; return snd_pcm_hw_refine(pcm, params); } @@ -4231,6 +4232,7 @@ int snd_pcm_hw_params_set_export_buffer(snd_pcm_t *pcm, snd_pcm_hw_params_t *par params->flags |= SND_PCM_HW_PARAMS_EXPORT_BUFFER; else params->flags &= ~SND_PCM_HW_PARAMS_EXPORT_BUFFER; + params->rmask = ~0; return snd_pcm_hw_refine(pcm, params); } @@ -4280,6 +4282,7 @@ int snd_pcm_hw_params_set_period_wakeup(snd_pcm_t *pcm, snd_pcm_hw_params_t *par params->flags |= SND_PCM_HW_PARAMS_NO_PERIOD_WAKEUP; } else params->flags &= ~SND_PCM_HW_PARAMS_NO_PERIOD_WAKEUP; + params->rmask = ~0; return snd_pcm_hw_refine(pcm, params); } -- 1.7.6.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor