summaryrefslogtreecommitdiff
path: root/sys/src/cmd/nusb
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-06-29 22:28:23 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-06-29 22:28:23 +0200
commit562f1b51ee293e7cef3a577b7409ea5b2caf0494 (patch)
treeb736060ef19c35a5bbf52d25e387f61edf46c1bb /sys/src/cmd/nusb
parent4aee2b803e7f566f6ec1796fc45bfe0023d3762a (diff)
nusb/audio: dont sysfatal on bad endpoint (no altc)
Diffstat (limited to 'sys/src/cmd/nusb')
-rw-r--r--sys/src/cmd/nusb/audio/audio.c13
1 files 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);
}
}