diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-06-29 22:28:23 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-06-29 22:28:23 +0200 |
commit | 562f1b51ee293e7cef3a577b7409ea5b2caf0494 (patch) | |
tree | b736060ef19c35a5bbf52d25e387f61edf46c1bb /sys/src/cmd/nusb | |
parent | 4aee2b803e7f566f6ec1796fc45bfe0023d3762a (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.c | 13 |
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); } } |