git: 9front

Download patch

ref: e3e91f0b2f2338ea3b1174a7748f5939472d64e4
parent: 943d7a42afa4c6e98a6a8e61c69969fc352a8f14
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Thu Sep 6 01:25:23 EDT 2012

nusb: handle 0 csp value on iface, remove unneeded configdev() calls after getdev()

--- a/sys/src/cmd/nusb/audio/audio.c
+++ b/sys/src/cmd/nusb/audio/audio.c
@@ -186,8 +186,6 @@
 
 	if((d = getdev(atoi(*argv))) == nil)
 		sysfatal("getdev: %r");
-	if(configdev(d) < 0)
-		sysfatal("configdev: %r");
 	audiodev = d;
 
 	/* parse descriptors, mark valid altc */
--- a/sys/src/cmd/nusb/ether/ether.c
+++ b/sys/src/cmd/nusb/ether/ether.c
@@ -853,8 +853,6 @@
 		usage();
 
 	d = getdev(atoi(*argv));
-	if(configdev(d) < 0)
-		sysfatal("configdev: %r");
 	if(findendpoints(d, &ei, &eo)  < 0)
 		sysfatal("no endpoints found");
 	if(getmac(d) < 0)
--- a/sys/src/cmd/nusb/lib/parse.c
+++ b/sys/src/cmd/nusb/lib/parse.c
@@ -71,6 +71,8 @@
 	subclass = dip->bInterfaceSubClass;
 	proto = dip->bInterfaceProtocol;
 	ip->csp = CSP(class, subclass, proto);
+	if(ip->csp == 0)
+		ip->csp = d->csp;
 	if(d->csp == 0)				/* use csp from 1st iface */
 		d->csp = ip->csp;		/* if device has none */
 	if(d->class == 0)
--- a/sys/src/cmd/nusb/ptp/ptp.c
+++ b/sys/src/cmd/nusb/ptp/ptp.c
@@ -1017,8 +1017,6 @@
 		usage();
 	if((d = getdev(atoi(*argv))) == nil)
 		sysfatal("opendev: %r");
-	if(configdev(d) < 0)
-		sysfatal("configdev: %r");
 	if(findendpoints(d, &epin, &epout, &epint)  < 0)
 		sysfatal("findendpoints: %r");
 
--