diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c index 670b13e33b15..3bd094df2bcd 100644 --- a/drivers/usb/gadget/function/f_uac1.c +++ b/drivers/usb/gadget/function/f_uac1.c @@ -68,14 +68,8 @@ static struct uac1_ac_header_descriptor_2 ac_header_desc = { .bDescriptorType = USB_DT_CS_INTERFACE, .bDescriptorSubtype = UAC_HEADER, .bcdADC = cpu_to_le16(0x0100), - .baInterfaceNr = { - /* - * Assume the maximum interfaces number of the UAC AudioStream - * interfaces - */ - [0] = 1, - [1] = 2, - } + /* .baInterfaceNr[0] = DYNAMIC */ + /* .baInterfaceNr[1] = DYNAMIC */ }; static struct uac_input_terminal_descriptor usb_out_it_desc = { @@ -888,6 +882,8 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f) ac_interface_desc.bInterfaceNumber = status; uac1->ac_intf = status; uac1->ac_alt = 0; + ac_header_desc.baInterfaceNr[0] = ++status; + ac_header_desc.baInterfaceNr[1] = ++status; if (EPOUT_EN(audio_opts)) { status = usb_interface_id(c, f);