[PATCH v2] usb: gadget: f_uac2: fix bFirstInterface in composite gadget

From: John Keeping
Date: Wed Feb 14 2018 - 12:20:32 EST


If there are multiple functions associated with a configuration, then
the UAC2 interfaces may not start at zero. Set the correct first
interface number in the association descriptor so that the audio
interfaces are enumerated correctly in this case.

Signed-off-by: John Keeping <john@xxxxxxxxxxxx>
Reviewed-by: Krzysztof Opasiak <k.opasiak@xxxxxxxxxxx>
---
v2:
- Add Krzysztof's reviewed-by

drivers/usb/gadget/function/f_uac2.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/usb/gadget/function/f_uac2.c b/drivers/usb/gadget/function/f_uac2.c
index 11fe788b4308..d2dc1f00180b 100644
--- a/drivers/usb/gadget/function/f_uac2.c
+++ b/drivers/usb/gadget/function/f_uac2.c
@@ -524,6 +524,8 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
dev_err(dev, "%s:%d Error!\n", __func__, __LINE__);
return ret;
}
+ iad_desc.bFirstInterface = ret;
+
std_ac_if_desc.bInterfaceNumber = ret;
uac2->ac_intf = ret;
uac2->ac_alt = 0;
--
2.16.1