usb: dwc3: gadget: disable suspend event by default

The DWC3 suspend event is used for special usb gadgets
which support usb auto suspend, such as UVC. So disable
the suspend event by default, and enable it depends on
the uwk_en flag. This can avoid printing redundant log
continuously in some case like this:

[47.526109] dwc3 fcc00000.dwc3: device suspend
[47.527118] dwc3 fcc00000.dwc3: device suspend
[47.528200] dwc3 fcc00000.dwc3: device suspend
[47.529110] dwc3 fcc00000.dwc3: device suspend
[47.530120] dwc3 fcc00000.dwc3: device suspend

Change-Id: I1945eba68d4bb1639d9c3ace66a8caea023371cc
Signed-off-by: William Wu <william.wu@rock-chips.com>
This commit is contained in:
William Wu
2021-03-30 10:18:38 +08:00
parent 78181a93d1
commit 6158751cd9

View File

@@ -2167,12 +2167,14 @@ void dwc3_gadget_enable_irq(struct dwc3 *dwc)
DWC3_DEVTEN_WKUPEVTEN |
DWC3_DEVTEN_CONNECTDONEEN |
DWC3_DEVTEN_USBRSTEN |
DWC3_DEVTEN_DISCONNEVTEN |
DWC3_DEVTEN_EOPFEN);
DWC3_DEVTEN_DISCONNEVTEN);
if (dwc->revision < DWC3_REVISION_250A)
reg |= DWC3_DEVTEN_ULSTCNGEN;
if (dwc->uwk_en)
reg |= DWC3_DEVTEN_EOPFEN;
dwc3_writel(dwc->regs, DWC3_DEVTEN, reg);
}
@@ -3474,7 +3476,7 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc,
dwc3_gadget_conndone_interrupt(dwc);
break;
case DWC3_DEVICE_EVENT_WAKEUP:
dev_info(dwc->dev, "device wakeup\n");
dev_dbg(dwc->dev, "device wakeup\n");
dwc3_gadget_wakeup_interrupt(dwc, event->event_info);
break;
case DWC3_DEVICE_EVENT_HIBER_REQ:
@@ -3494,7 +3496,7 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc,
* Ignore suspend event until the gadget enters into
* USB_STATE_CONFIGURED state.
*/
dev_info(dwc->dev, "device suspend\n");
dev_dbg(dwc->dev, "device suspend\n");
if (dwc->gadget.state >= USB_STATE_CONFIGURED)
dwc3_gadget_suspend_interrupt(dwc,
event->event_info);