|
@@ -463,7 +463,7 @@ static int dwc3_gadget_set_ep_config(struct dwc3 *dwc, struct dwc3_ep *dep,
|
|
|
| DWC3_DEPCFG_MAX_PACKET_SIZE(usb_endpoint_maxp(desc));
|
|
|
|
|
|
/* Burst size is only needed in SuperSpeed mode */
|
|
|
- if (dwc->gadget.speed == USB_SPEED_SUPER) {
|
|
|
+ if (dwc->gadget.speed >= USB_SPEED_SUPER) {
|
|
|
u32 burst = dep->endpoint.maxburst - 1;
|
|
|
|
|
|
params.param0 |= DWC3_DEPCFG_BURST_SIZE(burst);
|
|
@@ -1441,7 +1441,8 @@ static int dwc3_gadget_wakeup(struct usb_gadget *g)
|
|
|
reg = dwc3_readl(dwc->regs, DWC3_DSTS);
|
|
|
|
|
|
speed = reg & DWC3_DSTS_CONNECTSPD;
|
|
|
- if (speed == DWC3_DSTS_SUPERSPEED) {
|
|
|
+ if ((speed == DWC3_DSTS_SUPERSPEED) ||
|
|
|
+ (speed == DWC3_DSTS_SUPERSPEED_PLUS)) {
|
|
|
dwc3_trace(trace_dwc3_gadget, "no wakeup on SuperSpeed\n");
|
|
|
ret = -EINVAL;
|
|
|
goto out;
|
|
@@ -2340,7 +2341,8 @@ static void dwc3_update_ram_clk_sel(struct dwc3 *dwc, u32 speed)
|
|
|
* this. Maybe it becomes part of the power saving plan.
|
|
|
*/
|
|
|
|
|
|
- if (speed != DWC3_DSTS_SUPERSPEED)
|
|
|
+ if ((speed != DWC3_DSTS_SUPERSPEED) &&
|
|
|
+ (speed != DWC3_DSTS_SUPERSPEED_PLUS))
|
|
|
return;
|
|
|
|
|
|
/*
|
|
@@ -2410,8 +2412,9 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
|
|
|
|
|
|
/* Enable USB2 LPM Capability */
|
|
|
|
|
|
- if ((dwc->revision > DWC3_REVISION_194A)
|
|
|
- && (speed != DWC3_DCFG_SUPERSPEED)) {
|
|
|
+ if ((dwc->revision > DWC3_REVISION_194A) &&
|
|
|
+ (speed != DWC3_DCFG_SUPERSPEED) &&
|
|
|
+ (speed != DWC3_DCFG_SUPERSPEED_PLUS)) {
|
|
|
reg = dwc3_readl(dwc->regs, DWC3_DCFG);
|
|
|
reg |= DWC3_DCFG_LPM_CAP;
|
|
|
dwc3_writel(dwc->regs, DWC3_DCFG, reg);
|