]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: gadget: f_uac2: fix bFirstInterface in composite gadget
authorJohn Keeping <john@metanate.com>
Fri, 12 Jan 2018 18:43:32 +0000 (18:43 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 May 2018 05:47:33 +0000 (07:47 +0200)
[ Upstream commit 8813a59ed892305b5ac1b5b901740b1ad4b5fefa ]

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.

Reviewed-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/f_uac2.c

index df02947a77e3d1e4fb66353d54ab43a8f397ced0..3a03cbb79c357b8361d665d59aacc1ad1fbbfeb0 100644 (file)
@@ -1029,6 +1029,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;
        agdev->ac_intf = ret;
        agdev->ac_alt = 0;