Re: usb:gadget:hid:Add BOOT mode support

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

 



Alan Stern <stern@...> writes:

> 
> On Tue, 26 May 2015, Golmer Palmer wrote:
> 
> > Alan Stern <stern <at> ...> writes:
> > 
> > So please, can you add also some minimal support inside 
Set_Protocol()
> > to "change" from mode "0" to mode "1" (and viceversa) assuming that 
both
> > modes are equal?
> 
> Okay, a revised patch is below.  Let me know how it works out.
> 

Hi Alan,

Thank you for the new patch!
However, a comment:

* At page 74 of the specifications, 
section F.3 Boot Keyboard Requirements,
(http://www.usb.org/developers/hidpage/HID1_11.pdf)
is defined that:
"The Boot Keyboard shall, upon reset, return to the non- boot protocol 
which is
described in its Report descriptor. That is, the Report descriptor for a 
Boot
Keyboard does not necessarily match the boot protocol. The Report 
descriptor
for a Boot Keyboard is the non-boot protocol descriptor. "

This enforces that the default mode (protocol) is REPORT, not BOOT.
So why initialize in the patch to "1" for devices without boot support
and "0" for devices with boot support?

I suggest to always initialize to "1" (=REPORT mode).

Remember that the assumption is that the DESCRIPTOR of the BOOT protocol
is IDENTICAL to the descriptor of the REPORT protocol, so they are the
same. This is the key point!

Moreover, if a device don't supports BOOT mode, then the function
Get_Protocol() needs to be unimplemented. See page 54, section
7.2.5 Get_Protocol Request. So, I suggest to maintain the old behaviour
("goto stall" for returning ERROR) in the Get_Protocol() in case of
bInterfaceSubClass != USB_INTERFACE_SUBCLASS_BOOT. This can be in the
same way as you done in the Set_Protocol function.

Regards!
GP.

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