On 12/19/17 20:32, Sprow wrote:
In article <5fc73ccd-26a2-7919-17e3-8098ccb3f8a1%netbsd.org@localhost>, Nick Hudson <skrll%netbsd.org@localhost> wrote:On 12/17/17 10:40, Nick Hudson wrote:On 12/08/17 18:25, Sprow wrote:I've been having a look on a USB analyser at a class of hubs that don't seem to work on a driver based on src/sys/dev/usb/xhci.c Comparing the dialogue for a non XHCI controller I see the issue is that the cascade of hubs is HS->FS->LS. The GetDescriptor of the LS device never makes it through.Can you try this patch?I think there's a missing '(' on the IS_MTTHUB() macro.
How so?
The check around line 3201 still needs the '!ishub' qualifier in my view, because the else could be reached if the speed/IS_MTTHUB checks fail. Even if it's logically redundant it certainly makes it easier to read, and this is single use non speed critical code.
The "FS/LS" device can be a hub so it's incorrect to test for !ishub, I think.
Functionally though the problematic class of HS->FS->LS devices I have to hand all work now, so it's a nice improvement,
Good stuff. Pullup #459 submitted for netbsd-8. I'll do one for netbsd-7 too. Nick