[alsa-devel] [PATCH] hiface: Fix sample rate changes

Michael Trimarchi michael at amarulasolutions.com
Mon Nov 28 11:09:25 CET 2016


Hi

On Mon, Nov 28, 2016 at 10:55 AM, Jussi Laako <jussi at sonarnerd.net> wrote:
> Hi,
>
>> Can you please sent it inline? Not having access at the hardware now
>> but Antonio should have it
>
>
> Sure! I have tested this with my hiFace...
>
>
>         - Jussi
>
>
> From f4eec5602d86b5f938abed48a5725f59141d32cd Mon Sep 17 00:00:00 2001
> From: Jussi Laako <jussi at sonarnerd.net>
> Date: Mon, 28 Nov 2016 01:11:46 +0200
> Subject: [PATCH] Fix M2Tech hiFace driver sampling rate change
>
> Sampling rate changes after first set one are not reflected to the
> hardware, while driver and ALSA think the rate has been changed.
>
> Fix the problem by properly stopping the interface at the beginning of
> prepare call, allowing new rate to be set to the hardware. This keeps
> the hardware in sync with the driver.
>
> Signed-off-by: Jussi Laako <jussi at sonarnerd.net>
> ---
>  sound/usb/hiface/pcm.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/sound/usb/hiface/pcm.c b/sound/usb/hiface/pcm.c
> index 2c44139..33db205 100644
> --- a/sound/usb/hiface/pcm.c
> +++ b/sound/usb/hiface/pcm.c
> @@ -445,6 +445,8 @@ static int hiface_pcm_prepare(struct snd_pcm_substream
> *alsa_sub)
>
>         mutex_lock(&rt->stream_mutex);
>
> +       hiface_pcm_stream_stop(rt);
> +

Ok, I was expecting stream already paused on STOP or SUSPEND call. I
have the impression that they enqueue 0 urb still and they don't
really
stop it.

Michael

>         sub->dma_off = 0;
>         sub->period_off = 0;
>
> --
> 2.7.4



-- 
| Michael Nazzareno Trimarchi                     Amarula Solutions BV |
| COO  -  Founder                                      Cruquiuskade 47 |
| +31(0)851119172                                 Amsterdam 1018 AM NL |
|                  [`as] http://www.amarulasolutions.com               |


More information about the Alsa-devel mailing list