On Mon, Sep 21, 2020 at 01:49:14PM +0200, Oliver Neukum wrote:
Am Montag, den 21.09.2020, 13:36 +0200 schrieb Johan Hovold:
On Mon, Sep 21, 2020 at 12:29:16PM +0200, Oliver Neukum wrote:
Hi,
I meant that instead of falling back to "combined-interface" probing we could assume that all interfaces with three endpoints are "combined" and simply ignore the union and call managementy. descriptors and all the ways that devices may have gotten those wrong.
I am afraid we would break the spec. I cannot recall a prohibition on having more endpoints than necessary. Heuristics and ignoring invalid descriptors is one things. Ignoring valid descriptors is something else.
That depends on how you read the spec (see "3.3.1 Communication Class Interface"). But sure, it's probably be better to err on the safe-side.
I was thinking more of the individual entries in the device-id table whose control interfaces may not even be of the Communication class. But hopefully that was verified when adding them.
Now you are confusing me. In case of a quirky device, why change the current logic?
Just because they have a quirk defined, doesn't mean they don't rely on the generic probe algorithm (e.g. a USB_DEVICE entry which matches all interface classes and only specifies SEND_ZERO_PACKET).
Johan