Re: [PATCH 3.10 16/53] ALSA: hdspm - Constrain periods to 2 on older cards

From: Greg Kroah-Hartman
Date: Wed Mar 04 2015 - 13:19:50 EST


On Wed, Mar 04, 2015 at 11:03:32AM +0100, Adrian Knoth wrote:
> 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@xxxxxxxxxxxxxxxxxxxxx>
> >
> >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@xxxxxxxxxxxxxxxxxxxxx>
> >Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
> >Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> >
> >---
> > 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;
> }

Very odd, and very good catch, thanks for this. I've fixed it up now
and pushed out an updated queue.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/