On Fri, Aug 13, 2021 at 11:40:22PM +0300, Maxim Devaev wrote: > В Fri, 13 Aug 2021 23:22:12 +0300 > Maxim Devaev <mdevaev@xxxxxxxxx> пишет: > > > Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > > In other words, a device does not need to have an interrupt-OUT > > > endpoint, but if it does have one then the host must use it. > > > > You're right. Although the actual behavior of the hosts is not different > > from what I wrote - they really just ignore out endpoint. > > I will eventually fix this in the patch description. > > It seems that I have confused everything even more, sorry. I will explain. > There are three possible host behaviors: > > (1) The host works with the OUT endpoint as it describes the standard > and transmits reports through it. > > (2) The host works with IN endpoint, but refuses to transmit reports > via OUT endpoint at all. In the case of the keyboard, it will work, > but it will not receive the status of the LEDs. > > (3) The host sees OUT endpoint and either refuses to use such a device at all, > or goes crazy in various ways. > > In both cases (2) and (3), using SETUP/SET_REPORT solves the problem. > Therefore, I offer this as an option to solve compatibility problems. > Yes, in fact, this is not our problem, but it is impossible to fix the drivers > of all these proprietary devices. Moreover, I have never met a keyboard > with OUT endpoint, absolutely all of them use SETUP/SET_REPORT. Okay. I appreciate the more detailed explanations; thanks. Please resubmit the patch with appropriate changes to the description. Alan Stern