mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
usb: gadget: udc: renesas_usb3: fix maxpacket size of ep0
commitdfe1a51d2aupstream. This patch fixes an issue that maxpacket size of ep0 is incorrect for SuperSpeed. Otherwise, CDC NCM class with SuperSpeed doesn't work correctly on this driver because its control read data size is more than 64 bytes. Reported-by: Junki Kato <junki.kato.xk@renesas.com> Fixes:746bfe63bb("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller") Cc: <stable@vger.kernel.org> # v4.5+ Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Tested-by: Junki Kato <junki.kato.xk@renesas.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
09ab91a521
commit
63af1f400f
@@ -628,12 +628,15 @@ static void usb3_irq_epc_int_1_speed(struct renesas_usb3 *usb3)
|
||||
switch (speed) {
|
||||
case USB_STA_SPEED_SS:
|
||||
usb3->gadget.speed = USB_SPEED_SUPER;
|
||||
usb3->gadget.ep0->maxpacket = USB3_EP0_SS_MAX_PACKET_SIZE;
|
||||
break;
|
||||
case USB_STA_SPEED_HS:
|
||||
usb3->gadget.speed = USB_SPEED_HIGH;
|
||||
usb3->gadget.ep0->maxpacket = USB3_EP0_HSFS_MAX_PACKET_SIZE;
|
||||
break;
|
||||
case USB_STA_SPEED_FS:
|
||||
usb3->gadget.speed = USB_SPEED_FULL;
|
||||
usb3->gadget.ep0->maxpacket = USB3_EP0_HSFS_MAX_PACKET_SIZE;
|
||||
break;
|
||||
default:
|
||||
usb3->gadget.speed = USB_SPEED_UNKNOWN;
|
||||
@@ -1858,7 +1861,7 @@ static int renesas_usb3_init_ep(struct renesas_usb3 *usb3, struct device *dev,
|
||||
/* for control pipe */
|
||||
usb3->gadget.ep0 = &usb3_ep->ep;
|
||||
usb_ep_set_maxpacket_limit(&usb3_ep->ep,
|
||||
USB3_EP0_HSFS_MAX_PACKET_SIZE);
|
||||
USB3_EP0_SS_MAX_PACKET_SIZE);
|
||||
usb3_ep->ep.caps.type_control = true;
|
||||
usb3_ep->ep.caps.dir_in = true;
|
||||
usb3_ep->ep.caps.dir_out = true;
|
||||
|
||||
Reference in New Issue
Block a user