Return-Path: Message-ID: <54F6D874.7020907@drcomp.erfurt.thur.de> Date: Wed, 04 Mar 2015 11:03:32 +0100 From: Adrian Knoth MIME-Version: 1.0 To: Greg Kroah-Hartman , linux-kernel@vger.kernel.org CC: stable@vger.kernel.org, Takashi Iwai Subject: Re: [PATCH 3.10 16/53] ALSA: hdspm - Constrain periods to 2 on older cards References: <20150304054609.869052846@linuxfoundation.org> <20150304054612.657368945@linuxfoundation.org> In-Reply-To: <20150304054612.657368945@linuxfoundation.org> Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: 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 > > 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 > Signed-off-by: Takashi Iwai > Signed-off-by: Greg Kroah-Hartman > > --- > 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