[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210423152524.624619-1-marcel@solidxs.se>
Date: Fri, 23 Apr 2021 17:25:24 +0200
From: Marcel Hamer <marcel@...idxs.se>
To: linux-usb@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Felipe Balbi <balbi@...nel.org>, linux-kernel@...r.kernel.org,
Marcel Hamer <marcel@...idxs.se>
Subject: [PATCH] usb: dwc3: gadget: add missing wakeup link states
In dwc3_send_gadget_ep_cmd() a check is performed if the gadget needs
waking up. The following condition is checked before calling the
__dwc3_gadget_wakeup() function:
needs_wakeup = (dwc->link_state == DWC3_LINK_STATE_U1 ||
dwc->link_state == DWC3_LINK_STATE_U2 ||
dwc->link_state == DWC3_LINK_STATE_U3);
Inside __dwc3_gadget_wakeup() only link_state DWC3_LINK_STATE_U3 is checked
and link state DWC3_LINK_STATE_U1 and DWC3_LINK_STATE_U2 are considered
invalid and generate a warning because of the call to:
dev_WARN_ONCE(dwc->dev, ret, "wakeup failed --> %d\n", ret);
because of ret being -EINVAL.
Signed-off-by: Marcel Hamer <marcel@...idxs.se>
---
drivers/usb/dwc3/gadget.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index c7ef218e7a8c..d05a7d630410 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1972,6 +1972,8 @@ static int __dwc3_gadget_wakeup(struct dwc3 *dwc)
switch (link_state) {
case DWC3_LINK_STATE_RESET:
case DWC3_LINK_STATE_RX_DET: /* in HS, means Early Suspend */
+ case DWC3_LINK_STATE_U1:
+ case DWC3_LINK_STATE_U2:
case DWC3_LINK_STATE_U3: /* in HS, means SUSPEND */
case DWC3_LINK_STATE_RESUME:
break;
--
2.25.1
Powered by blists - more mailing lists