Currently, max configuration interfaces are limited to 16, which fails for compositions containing 10 UVC configurations with interrupt ep disabled along with other configurations , and we see bind failures while allocating interface ID in uvc bind. Increase max configuration interface to 32 to support any large compositions limited to same size as usb device endpoints as interfaces cannot be more than endpoints. Signed-off-by: Akash Kumar <quic_akakum@xxxxxxxxxxx> --- include/linux/usb/composite.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Changes for v2: Removed comment '/* arbitrary; max 255 */' as per review as it was confusing as MAX_CONFIG_INTERFACES cannot go beyond 32 due to usb ep limitation. diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 2040696d75b6..d6d4fbfb6d0e 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h @@ -255,7 +255,7 @@ int config_ep_by_speed_and_alt(struct usb_gadget *g, struct usb_function *f, int config_ep_by_speed(struct usb_gadget *g, struct usb_function *f, struct usb_ep *_ep); -#define MAX_CONFIG_INTERFACES 16 /* arbitrary; max 255 */ +#define MAX_CONFIG_INTERFACES 32 /** * struct usb_configuration - represents one gadget configuration -- 2.17.1