lkml.org 
[lkml]   [2015]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 3.2 042/221] ALSA: hdspm - Constrain periods to 2 on older cards
    On 05/05/15 03:16, Ben Hutchings wrote:

    > 3.2.69-rc1 review patch. If anyone has any objections, please let me know.

    I do! :)

    >
    > 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: Ben Hutchings <ben@decadent.org.uk>
    > ---
    > sound/pci/rme9652/hdspm.c | 6 ++++++
    > 1 file changed, 6 insertions(+)
    >
    > --- a/sound/pci/rme9652/hdspm.c
    > +++ b/sound/pci/rme9652/hdspm.c
    > @@ -6040,6 +6040,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;
    > }

    This is not correct, those lines need to go to two different functions
    (snd_hdspm_playback_open and snd_hdspm_capture_open)

    Here is how the patch should look like:


    --- old/hdspm.c 2015-05-05 14:37:06.265978237 +0200
    +++ new/hdspm.c 2015-05-05 14:42:43.670742548 +0200
    @@ -5966,6 +5966,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;
    }

    @@ -6040,6 +6043,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

    PS: This exact same problem happened to GregKH for one of his stable
    branches. Not sure what's the root cause and if it's worth
    investigating.


    \
     
     \ /
      Last update: 2015-05-05 15:21    [W:4.073 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site