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

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

 



On 4/11/2016 11:25 PM, Felipe Balbi wrote:
> 
> 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

SuperSpeedPlus support is determined by the SSP Dev Cap
Descriptor. You can have bcdUSB 0x0310 and not have SuperSpeedPlus.

> supported by XHCI driver on those older kernels which begs the question:
> What's the benefit of backporting that change ?

To fix CV test failure for devices based on those kernels.

> 
>> 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.

Yup, that is exactly what happens. See 9.6.1 in the USB 3.1
specification. Also the CV tool and compliance test specification from
USB IF say this as well. If you test with any existing SuperSpeed
device it will fail.

> 
> 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 ?

Yes that's correct for 2.0.

John

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux