From 67dabde8f571c3495a8ef52bd9e077bff5901461 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Fri, 4 Jan 2019 14:54:22 -0800 Subject: [PATCH] usb: dwc3: Do not initiate remote wakeup from core layer commit c36d8e947a56a ("usb: dwc3: gadget: put link to U0 before Start Transfer") forcing remote wakeup even if it is not supported by function. In case remote wakeup fails it goes ahead and issues start transfer cmd, which defeats the purpose of the change. Function driver needs to make the decision if device needs to perform remote wakeup or not by calling usb_gadget_wakeup (in HS mode) or usb_func_wakeup (in SS or higher mode). Change-Id: I7ec5a29ae5beb1ea501f4127f440074396db9bda Signed-off-by: Hemant Kumar Signed-off-by: Jack Pham --- drivers/usb/dwc3/gadget.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 1a7e92546e14..1a9ff45421b3 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -350,8 +350,6 @@ int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param) return ret; } -static int __dwc3_gadget_wakeup(struct dwc3 *dwc); - /** * dwc3_send_gadget_ep_cmd - issue an endpoint command * @dep: the endpoint to which the command is going to be issued @@ -399,20 +397,6 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd, dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); } - if (DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_STARTTRANSFER) { - int needs_wakeup; - - needs_wakeup = (dwc->link_state == DWC3_LINK_STATE_U1 || - dwc->link_state == DWC3_LINK_STATE_U2 || - dwc->link_state == DWC3_LINK_STATE_U3); - - if (unlikely(needs_wakeup)) { - ret = __dwc3_gadget_wakeup(dwc); - dev_WARN_ONCE(dwc->dev, ret, "wakeup failed --> %d\n", - ret); - } - } - dwc3_writel(dep->regs, DWC3_DEPCMDPAR0, params->param0); dwc3_writel(dep->regs, DWC3_DEPCMDPAR1, params->param1); dwc3_writel(dep->regs, DWC3_DEPCMDPAR2, params->param2);