Re: [RFC] Change bcdUSB in older kernels to return 0x0310 for SuperSpeed

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

 



Hi,

John Youn <John.Youn@xxxxxxxxxxxx> writes:
> Hi,
>
> I would like to port the following commit from 4.6 to older kernels.
>
> 1a85329171094951956a37acc8abb7e51c1e742e ("usb: gadget: composite:
> Return bcdUSB 0x0310")
>
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1a85329171094951956a37acc8abb7e51c1e742e
>
> There is a some concern that revving the bcdUSB to 0x0310 will cause
> problems for SuperSpeed devices based on older kernels that don't
> otherwise have any USB 3.1 specific code.
>
> On the device side I don't think there will be any problems because
> there aren't really any checks against bcdUSB. We just set it to
> 0x0300 (0x0310 for kernel 4.6+) based on if the gadget tells us it
> supports SuperSpeed or higher.
>
> And I don't think there should be any problems for a host connecting
> to these devices since any SuperSpeed capable host should know about
> bcdUSB = 0x03XX. And I don't think the USB spec defines any different
> functionality based solely on 0x0300 vs 0x0310.

well, there is the actual SuperSpeedPlus speed. And, sure, that won't be
supported by XHCI driver on those older kernels which begs the question:
What's the benefit of backporting that change ?

> The reason for this backport is that the USB CV tool now checks this
> and ostensibly USB IF certification will require this for "new"
> devices. So if you are basing a new device on a kernel older than 4.6,
> it will not pass CV.

Wait, even SuperSpeed GEN1-only devices *must* set bcdUSB to 0x0310 ? Do
you have a reference to that ? I find that pretty odd because this means
that if I take any of my USB3 devices that I already have today, and run
them against latest USBCV, they'll all fail and that's not very nice.

Are you, perhaps, miss-reading the recommendation ? For example, when we
got the LPM ECN, all device were required to set bcdUSB to 0x0210 iff
they supported LPM. This means that you would only fail USBCV if you had
bcdUSB set to 0x0210 and didn't support LPM. You can still certify USB
2.0 without LPM, right ?

-- 
balbi

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux