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 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;
 	}


Cheers
--
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]