[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