On Fri, May 29, 2009 at 04:21:20PM -0400, Daniel Drake wrote: > Joseph Jezak wrote: > > Hi, > > > > Recently, I tested libusb on a PowerPC processor and found that devices > > were not enumerating. This was due to the assumption that the length of > > the configuration descriptor was swapped to big endian, as with other 16 > > bit values in the descriptor. It appears (in core/config.c) that this > > value is actually always left as a little endian value. > > > > A few questions: > > 1. Is this a bug or expected behavior? > > 2. Is it documented anywhere? > > 3. Should user space applications that depend on /dev/bus/usb assume > > that this value is always little endian? > > To clarify, the surprise that we found is that the wTotalLength field > from the device descriptor in (e.g.) /dev/bus/usb/001/001 is bus endian, > not host endian, but the documentation in proc_usb_info.txt says: > > > These files can be read as binary data. The binary data consists > > of first the device descriptor, then the descriptors for each > > configuration of the device. Multi-byte fields in the device and > > configuration descriptors, but not other descriptors, are converted > > to host endianness by the kernel. > > without mention of this exception. Hm, this happened years ago, are you sure this is a new thing? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html