| From e2459108b5a0604c4b472cae2b3cb8d3444c77fb Mon Sep 17 00:00:00 2001 |
| From: "taehyun.cho" <taehyun.cho@samsung.com> |
| Date: Thu, 7 Jan 2021 00:46:25 +0900 |
| Subject: usb: gadget: enable super speed plus |
| |
| From: taehyun.cho <taehyun.cho@samsung.com> |
| |
| commit e2459108b5a0604c4b472cae2b3cb8d3444c77fb upstream. |
| |
| Enable Super speed plus in configfs to support USB3.1 Gen2. |
| This ensures that when a USB gadget is plugged in, it is |
| enumerated as Gen 2 and connected at 10 Gbps if the host and |
| cable are capable of it. |
| |
| Many in-tree gadget functions (fs, midi, acm, ncm, mass_storage, |
| etc.) already have SuperSpeed Plus support. |
| |
| Tested: plugged gadget into Linux host and saw: |
| [284907.385986] usb 8-2: new SuperSpeedPlus Gen 2 USB device number 3 using xhci_hcd |
| |
| Tested-by: Lorenzo Colitti <lorenzo@google.com> |
| Acked-by: Felipe Balbi <balbi@kernel.org> |
| Signed-off-by: taehyun.cho <taehyun.cho@samsung.com> |
| Signed-off-by: Lorenzo Colitti <lorenzo@google.com> |
| Link: https://lore.kernel.org/r/20210106154625.2801030-1-lorenzo@google.com |
| Cc: stable <stable@vger.kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/gadget/configfs.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/usb/gadget/configfs.c |
| +++ b/drivers/usb/gadget/configfs.c |
| @@ -1505,7 +1505,7 @@ static const struct usb_gadget_driver co |
| .suspend = configfs_composite_suspend, |
| .resume = configfs_composite_resume, |
| |
| - .max_speed = USB_SPEED_SUPER, |
| + .max_speed = USB_SPEED_SUPER_PLUS, |
| .driver = { |
| .owner = THIS_MODULE, |
| .name = "configfs-gadget", |
| @@ -1545,7 +1545,7 @@ static struct config_group *gadgets_make |
| gi->composite.unbind = configfs_do_nothing; |
| gi->composite.suspend = NULL; |
| gi->composite.resume = NULL; |
| - gi->composite.max_speed = USB_SPEED_SUPER; |
| + gi->composite.max_speed = USB_SPEED_SUPER_PLUS; |
| |
| spin_lock_init(&gi->spinlock); |
| mutex_init(&gi->lock); |