tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xhci spec (mis?)interpretation on hubs



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


Home | Main Index | Thread Index | Old Index