Re: [PATCH] usb: gadget: f_hid: optional SETUP/SET_REPORT mode

From: Maxim Devaev
Date: Fri Aug 13 2021 - 16:40:31 EST


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