code: plan9front

Download patch

ref: 562f1b51ee293e7cef3a577b7409ea5b2caf0494
parent: 4aee2b803e7f566f6ec1796fc45bfe0023d3762a
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);
 		}
 	}