From 562f1b51ee293e7cef3a577b7409ea5b2caf0494 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 29 Jun 2015 22:28:23 +0200 Subject: nusb/audio: dont sysfatal on bad endpoint (no altc) --- sys/src/cmd/nusb/audio/audio.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sys/src/cmd/nusb/audio/audio.c b/sys/src/cmd/nusb/audio/audio.c index 08d9f9fc6..0261f3b57 100644 --- a/sys/src/cmd/nusb/audio/audio.c +++ b/sys/src/cmd/nusb/audio/audio.c @@ -193,7 +193,7 @@ main(int argc, char *argv[]) parsedescr(d->usb->ddesc[i]); for(i = 0; i < nelem(d->usb->ep); i++){ e = d->usb->ep[i]; - if(e && e->iface && e->iface->csp == CSP(Claudio, 2, 0)){ + if(e != nil && e->type == Eiso && e->iface != nil && e->iface->csp == CSP(Claudio, 2, 0)){ switch(e->dir){ case Ein: if(audioepin != nil) @@ -214,8 +214,15 @@ main(int argc, char *argv[]) audioepout = e; break; } - if((ed = setupep(audiodev, e, audiofreq)) == nil) - sysfatal("setupep: %r"); + if((ed = setupep(audiodev, e, audiofreq)) == nil){ + fprint(2, "setupep: %r\n"); + + if(e == audioepin) + audioepin = nil; + if(e == audioepout) + audioepout = nil; + continue; + } closedev(ed); } } -- cgit v1.2.3