Messages in this thread Patch in this message | | | Date | Wed, 04 Mar 2015 11:03:32 +0100 | From | Adrian Knoth <> | Subject | Re: [PATCH 3.10 16/53] ALSA: hdspm - Constrain periods to 2 on older cards |
| |
On 03/04/15 07:06, Greg Kroah-Hartman wrote:
Hi!
> 3.10-stable review patch. If anyone has any objections, please let me know.
Right here! ;) Since this is my first interaction with the stable branch, chances are I'm doing it wrong. Just tell me if you need the patch in a different format (read: clone the stable repo)
For some reasons, the 3.10.x version of the patch isn't correct:
> ------------------ > > From: Adrian Knoth <adi@drcomp.erfurt.thur.de> > > commit f0153c3d948c1764f6c920a0675d86fc1d75813e upstream. > > RME RayDAT and AIO use a fixed buffer size of 16384 samples. With period > sizes of 32-4096, this translates to 4-512 periods. > > The older RME cards have a variable buffer size but require exactly two > periods. > > This patch enforces nperiods=2 on those cards. > > Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> > Signed-off-by: Takashi Iwai <tiwai@suse.de> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > --- > sound/pci/rme9652/hdspm.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > --- a/sound/pci/rme9652/hdspm.c > +++ b/sound/pci/rme9652/hdspm.c > @@ -5863,6 +5863,12 @@ static int snd_hdspm_capture_open(struct > snd_pcm_hw_constraint_minmax(runtime, > SNDRV_PCM_HW_PARAM_PERIOD_SIZE, > 64, 8192); > + snd_pcm_hw_constraint_minmax(runtime, > + SNDRV_PCM_HW_PARAM_PERIODS, > + 2, 2); > + snd_pcm_hw_constraint_minmax(runtime, > + SNDRV_PCM_HW_PARAM_PERIODS, > + 2, 2); > break; > }
Obviously, it doesn't make sense to do the same thing twice.
Here's how it should look: one of the constraints goes into snd_hdspm_capture_open(), the other into snd_hdspm_capture_open().
--- 3.10.y/hdspm.c 2015-03-04 10:54:05.120849082 +0100 +++ 3.10.y-new/hdspm.c 2015-03-04 10:56:10.146020714 +0100 @@ -5789,6 +5789,9 @@ static int snd_hdspm_playback_open(struc snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, 64, 8192); + snd_pcm_hw_constraint_minmax(runtime, + SNDRV_PCM_HW_PARAM_PERIODS, + 2, 2); break; }
@@ -5863,6 +5866,9 @@ static int snd_hdspm_capture_open(struct snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, 64, 8192); + snd_pcm_hw_constraint_minmax(runtime, + SNDRV_PCM_HW_PARAM_PERIODS, + 2, 2); break; }
Cheers
| |