https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251784
--- Comment #7 from Greg V <[email protected]> --- So, turns out libusb does its own descriptor parsing, I can fix this in libusb: --- i/lib/libusb/libusb20_desc.c +++ w/lib/libusb/libusb20_desc.c @@ -208,10 +208,9 @@ libusb20_parse_config_desc(const void *config_desc) } /* * Sometimes USB devices have corrupt interface - * descriptors and we need to overwrite the provided - * interface number! + * descriptors. Do not overwrite the provided + * interface number though! */ - last_if->desc.bInterfaceNumber = niface - 1; last_if->extra.ptr = LIBUSB20_ADD_BYTES(ptr, ptr[0]); last_if->extra.len = 0; last_if->extra.type = LIBUSB20_ME_IS_RAW; …aaand huh. This changes the number in usbconfig dump_all_desc too. TIL usbconfig uses libusb :) Now, this shouldn't fix it for uhid/hidraw usage (and I'd like to eventually get hidapi-hidraw working maybe) I guess? But I can't find 'bInterfaceNumber =' in kernel code at all. Who assigns that? -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to "[email protected]"
