From cac70628fbe41ecf5c8f2661f3733fe4aaa8795f Mon Sep 17 00:00:00 2001 From: "taehyun.cho" Date: Thu, 15 Oct 2020 23:16:44 -0700 Subject: [PATCH] FROMLIST: USB: gadget: f_fs: add SuperSpeed Plus support Setup the descriptors for SuperSpeed Plus for f_fs. Bug: 170925797 Signed-off-by: taehyun.cho Link: https://lore.kernel.org/r/20201126180937.255892-3-gregkh@linuxfoundation.org Change-Id: I261bc3fb6f586b81d2233f60a6fe0a5f250b437b (cherry picked from commit 00572be28ec474d7953f1b9dd681cc2dd290d9bf) [willmcvicker: only cherry-picked f_fs portion of original patch] Signed-off-by: Will McVicker (cherry picked from commit fc5d4d05b09dcc3d74c77ee6dd3fe5d451364a3b) Signed-off-by: Will McVicker Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/function/f_fs.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 046f770a76da..a34a7c96a1ab 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -1327,6 +1327,7 @@ static long ffs_epfile_ioctl(struct file *file, unsigned code, struct usb_endpoint_descriptor *desc; switch (epfile->ffs->gadget->speed) { + case USB_SPEED_SUPER_PLUS: case USB_SPEED_SUPER: desc_idx = 2; break; @@ -3222,6 +3223,10 @@ static int _ffs_func_bind(struct usb_configuration *c, func->function.os_desc_n = c->cdev->use_os_string ? ffs->interfaces_count : 0; + if (likely(super)) { + func->function.ssp_descriptors = + usb_copy_descriptors(func->function.ss_descriptors); + } /* And we're done */ ffs_event_add(ffs, FUNCTIONFS_BIND); return 0;