[alsa-devel] ALSA: snd-usb-usx2y: remove bogus frame checks

Takashi Iwai tiwai at suse.de
Tue Oct 8 09:08:01 CEST 2013


At Mon, 07 Oct 2013 23:29:50 +0200,
Guido Aulisi wrote:
> 
> Hi,
> I did some more testing on my US122:
> 
> I used my patch (see below) and it worked (with default nrpack=4), but I
> got "should not be here with counts=42" errors, then after some time the
> kernel crashed, but I couldn't copy the trace.

Did you try to disable the "should not here with..." check in the
code?  This looks also bogus for ehci, too.

> Then I set nrpack=1 and I got no "should not be here..." and it was more
> stable, no crash. I only checked playback, not recording, nor MIDI, with
> aplay I played some songs for about one hour...
> 
> I hope this can be useful. But I think there are other bugs in this
> driver.

Yeah, there can be :)  The driver was developed for ohci and uhci, but
not fully tested with ehci, AFAIK.

Meanwhile, we may add a workaround to force nrpack=1 in the case of
HIGHSPEED controller if it's confirmed to work in general.


thanks,

Takashi

> 
> Ciao
> Guido Aulisi
> 
> The patch is:
> 
> diff --git a/sound/usb/usx2y/usbusx2yaudio.c b/sound/usb/usx2y/usbusx2yaudio.c
> index 63fb521..cd16fcc 100644
> --- a/sound/usb/usx2y/usbusx2yaudio.c
> +++ b/sound/usb/usx2y/usbusx2yaudio.c
> @@ -328,7 +328,7 @@ static void i_usX2Y_urb_complete(struct urb *urb)
>                 usX2Y_error_urb_status(usX2Y, subs, urb);
>                 return;
>         }
> -       if (likely((urb->start_frame & 0xFFFF) == (usX2Y->wait_iso_frame & 0xFFFF)))
> +       if (likely((urb->start_frame & 0x03FF) == (usX2Y->wait_iso_frame & 0x03FF)))
>                 subs->completed_urb = urb;
>         else {
>                 usX2Y_error_sequence(usX2Y, subs, urb);
> 
> 


More information about the Alsa-devel mailing list