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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]