ref: 98a56122422f69eb692ac6b5a41696b6262f163b
parent: 25b7ae0b253516ec099d01e5c9d1401f1613e1b3
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Mon Jun 29 18:28:23 EDT 2015
nusb/audio: dont sysfatal on bad endpoint (no altc)
--- a/sys/src/cmd/nusb/audio/audio.c
+++ b/sys/src/cmd/nusb/audio/audio.c
@@ -193,7 +193,7 @@
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 @@
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);
}
}
--
⑨