On Sun, Jan 19, 2020 at 12:52:40AM +0100, Steve Markgraf wrote: > Hi list, > > Commit 3e4f8e21c4f27bcf30a48486b9dcc269512b79ff "USB: core: fix check > for duplicate endpoints" is causing a regression with devices based on > the Fresco Logic FL2000 chip, i.e. it is totally unusable. > > The issue was first reported on the osmocom-sdr mailing list [1] and I > can reproduce it on my machine with 5.5.0-rc6, with rc5 everything is > working fine. By reverting the commit mentioned above, it is working as > well. Thanks for the detailed report. > When connecting the device with rc6, I see the following dmesg output: > https://steve-m.de/files/fl2000_dmesg.txt > > The output of lsusb -v: > https://steve-m.de/files/fl2000_lsusb.txt > > Output of the Windows tool "USB Device Tree Viewer": > https://steve-m.de/files/fl2000_usbtreeview.txt > > Output of the USB-IF USB 3.0 Chapter 9 tests with a version from around > the time the FL2000 was released to market (passing): > https://steve-m.de/files/fl2000_chapter9.html > > By looking at the lsusb output, it almost seems like a descriptor > parsing issue, that now causes trouble after introducing the duplicate > endpoint testing. Looks like you indeed have two interfaces (0 and 1) claiming the same endpoints (0x01 and 0x81), so the new sanity check is working as intended. I just took a quick look at the libosmo-fl2k code and it appears that you claim both interfaces but never set alternate setting 1 for interface 0, which would enable those endpoints. Could you see if that's all that's needed to get your application working again? Johan