[PATCH] usb: gadget: function: sync f_uac1 ac header baInterfaceNr

From: liangshengjun
Date: Wed Dec 19 2018 - 07:08:38 EST


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@xxxxxxxxxxxxx>
---
drivers/usb/gadget/function/f_uac1.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c
index 28c1a78..d9aeb5c 100644
--- a/drivers/usb/gadget/function/f_uac1.c
+++ b/drivers/usb/gadget/function/f_uac1.c
@@ -581,6 +581,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;

@@ -589,6 +590,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;

--
2.7.4