usb: gadget: function: sync f_uac1 ac header baInterfaceNr
authorliangshengjun <liangshengjun@hisilicon.com>
Mon, 24 Dec 2018 02:36:28 +0000 (02:36 +0000)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Thu, 7 Feb 2019 11:14:51 +0000 (13:14 +0200)
f_uac1 audio control header descriptor default set
baInterfaceNr[]={1,2}, but usb gadget make a configuration descriptor
with more interfaces combination, it can not confirm f_uac1 function
linked first. So always keep baInterfaceNr[]={1,2} is correct, and it
is necessary to sync baInterfaceNr[] with usb_interface_id() value.

Signed-off-by: Liang Shengjun <liangshengjun@hisilicon.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/function/f_uac1.c

index fe42ffc..00d3469 100644 (file)
@@ -568,6 +568,7 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f)
                goto fail;
        as_out_interface_alt_0_desc.bInterfaceNumber = status;
        as_out_interface_alt_1_desc.bInterfaceNumber = status;
+       ac_header_desc.baInterfaceNr[0] = status;
        uac1->as_out_intf = status;
        uac1->as_out_alt = 0;
 
@@ -576,6 +577,7 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f)
                goto fail;
        as_in_interface_alt_0_desc.bInterfaceNumber = status;
        as_in_interface_alt_1_desc.bInterfaceNumber = status;
+       ac_header_desc.baInterfaceNr[1] = status;
        uac1->as_in_intf = status;
        uac1->as_in_alt = 0;