FROMLIST: usb: gadget: f_uac2: Add missing companion descriptor for feedback EP
The f_uac2 function fails to enumerate when connected in SuperSpeed due to the feedback endpoint missing the companion descriptor. We can reuse the ss_epin_desc_comp descriptor and append it behind the ss_epin_fback_desc both in the static definition of the ss_audio_desc structure as well as its dynamic construction in setup_headers(). Fixes: 24f779dac8f3 ("usb: gadget: f_uac2/u_audio: add feedback endpoint support") Signed-off-by: Jack Pham <jackp@codeaurora.org> Bug: 199044440 Link: https://lore.kernel.org/linux-usb/20210902014317.16775-1-jackp@codeaurora.org/ Change-Id: I0e8d73d69675b649c6b13a48900b391fd5423129 Signed-off-by: Jack Pham <jackp@codeaurora.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
35afadf0da
commit
ab9ceb4334
@@ -527,6 +527,7 @@ static struct usb_descriptor_header *ss_audio_desc[] = {
|
||||
(struct usb_descriptor_header *)&ss_epout_desc_comp,
|
||||
(struct usb_descriptor_header *)&as_iso_out_desc,
|
||||
(struct usb_descriptor_header *)&ss_epin_fback_desc,
|
||||
(struct usb_descriptor_header *)&ss_epin_desc_comp,
|
||||
|
||||
(struct usb_descriptor_header *)&std_as_in_if0_desc,
|
||||
(struct usb_descriptor_header *)&std_as_in_if1_desc,
|
||||
@@ -654,8 +655,11 @@ static void setup_headers(struct f_uac2_opts *opts,
|
||||
|
||||
headers[i++] = USBDHDR(&as_iso_out_desc);
|
||||
|
||||
if (EPOUT_FBACK_IN_EN(opts))
|
||||
if (EPOUT_FBACK_IN_EN(opts)) {
|
||||
headers[i++] = USBDHDR(epin_fback_desc);
|
||||
if (epin_desc_comp)
|
||||
headers[i++] = USBDHDR(epin_desc_comp);
|
||||
}
|
||||
}
|
||||
if (EPIN_EN(opts)) {
|
||||
headers[i++] = USBDHDR(&std_as_in_if0_desc);
|
||||
|
Reference in New Issue
Block a user