I'm building a USB keyboard using the HID protocol.
I have been said that, in case of a control-in where the request type is 0x01
, I am supposed to reply with the last report. That means that I would have to write the reports both to:
- the USB endpoint,
- when there is a control-in request.
I do not do that: I only write the report to the endpoint, and I ignore all the control-in requests, excepting the one asking for the report descriptor. My keyboard works perfectly well, both on Linux (Fedora, Android) and Windows. I don't own a Mac, so I couldn't test on one.
My questions are:
- Does the spec really ask for the device to send the reports twice, the second times being during a control-in request?
- If yes, can I safely ignore that part, because it seems that it works well without it?