On 29/10/2023 21.04, Marek Vasut wrote: > On 10/29/23 08:24, Hector Martin wrote: >> We currently do not really handle altsettings properly, and no driver >> uses them. Ignore the respective endpoint descriptors for secondary >> altsettings, to avoid creating duplicate endpoint records in the >> interface. >> >> This will have to be revisited if/when we have a driver that needs >> altsettings to work properly. >> >> Signed-off-by: Hector Martin <mar...@marcan.st> >> --- >> common/usb.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/common/usb.c b/common/usb.c >> index aad13fd9c557..90f72fda00bc 100644 >> --- a/common/usb.c >> +++ b/common/usb.c >> @@ -463,6 +463,15 @@ static int usb_parse_config(struct usb_device *dev, >> puts("Endpoint descriptor out of order!\n"); >> break; >> } >> + if (if_desc->num_altsetting > 1) { >> + /* >> + * Ignore altsettings, which can trigger >> duplicate >> + * endpoint errors below. Revisit this when some >> + * driver actually needs altsettings with >> differing >> + * endpoint setups. >> + */ > > How do you trigger this error ? >
Plug in a device with altsettings, like most sound cards or UVC devices. - Hector