Loading drivers/usb/dwc3/gadget.c +1 −1 Original line number Diff line number Diff line Loading @@ -1883,7 +1883,7 @@ static int dwc_gadget_func_wakeup(struct usb_gadget *g, int interface_id) if (dwc3_gadget_is_suspended(dwc)) { pr_debug("USB bus is suspended. Scheduling wakeup and returning -EAGAIN.\n"); dwc3_gadget_wakeup(&dwc->gadget); return -EAGAIN; return -EACCES; } /* Loading drivers/usb/gadget/composite.c +28 −15 Original line number Diff line number Diff line Loading @@ -413,11 +413,17 @@ int usb_func_wakeup(struct usb_function *func) spin_lock_irqsave(&func->config->cdev->lock, flags); ret = usb_func_wakeup_int(func); if (ret == -EAGAIN) { if (ret == -EACCES) { DBG(func->config->cdev, "Function wakeup for %s could not complete due to suspend state. Delayed until after bus resume.\n", func->name ? func->name : ""); ret = 0; func->func_wakeup_pending = 1; } else if (ret == -EAGAIN) { DBG(func->config->cdev, "Function wakeup for %s sent.\n", func->name ? func->name : ""); ret = 0; } else if (ret < 0 && ret != -ENOTSUPP) { ERROR(func->config->cdev, "Failed to wake function %s from suspend state. ret=%d. Canceling USB request.\n", Loading Loading @@ -448,7 +454,12 @@ int usb_func_ep_queue(struct usb_function *func, struct usb_ep *ep, if (func->func_is_suspended && func->func_wakeup_allowed) { ret = usb_gadget_func_wakeup(gadget, func->intf_id); if (ret == -EAGAIN) { if (ret == -EACCES) { pr_debug("bus suspended func wakeup for %s delayed until bus resume.\n", func->name ? func->name : ""); func->func_wakeup_pending = 1; ret = -EAGAIN; } else if (ret == -EAGAIN) { pr_debug("bus suspended func wakeup for %s delayed until bus resume.\n", func->name ? func->name : ""); } else if (ret < 0 && ret != -ENOTSUPP) { Loading Loading @@ -2332,13 +2343,13 @@ composite_resume(struct usb_gadget *gadget) spin_lock_irqsave(&cdev->lock, flags); if (cdev->config) { list_for_each_entry(f, &cdev->config->functions, list) { if (f->func_wakeup_pending) { ret = usb_func_wakeup_int(f); if (ret) { if (ret == -EAGAIN) { ERROR(f->config->cdev, "Function wakeup for %s could not complete due to suspend state.\n", f->name ? f->name : ""); break; } else if (ret != -ENOTSUPP) { ERROR(f->config->cdev, "Failed to wake function %s from suspend state. ret=%d. Canceling USB request.\n", Loading @@ -2346,8 +2357,10 @@ composite_resume(struct usb_gadget *gadget) ret); } } f->func_wakeup_pending = 0; } if (f->resume) if (gadget->speed != USB_SPEED_SUPER && f->resume) f->resume(f); } Loading Loading
drivers/usb/dwc3/gadget.c +1 −1 Original line number Diff line number Diff line Loading @@ -1883,7 +1883,7 @@ static int dwc_gadget_func_wakeup(struct usb_gadget *g, int interface_id) if (dwc3_gadget_is_suspended(dwc)) { pr_debug("USB bus is suspended. Scheduling wakeup and returning -EAGAIN.\n"); dwc3_gadget_wakeup(&dwc->gadget); return -EAGAIN; return -EACCES; } /* Loading
drivers/usb/gadget/composite.c +28 −15 Original line number Diff line number Diff line Loading @@ -413,11 +413,17 @@ int usb_func_wakeup(struct usb_function *func) spin_lock_irqsave(&func->config->cdev->lock, flags); ret = usb_func_wakeup_int(func); if (ret == -EAGAIN) { if (ret == -EACCES) { DBG(func->config->cdev, "Function wakeup for %s could not complete due to suspend state. Delayed until after bus resume.\n", func->name ? func->name : ""); ret = 0; func->func_wakeup_pending = 1; } else if (ret == -EAGAIN) { DBG(func->config->cdev, "Function wakeup for %s sent.\n", func->name ? func->name : ""); ret = 0; } else if (ret < 0 && ret != -ENOTSUPP) { ERROR(func->config->cdev, "Failed to wake function %s from suspend state. ret=%d. Canceling USB request.\n", Loading Loading @@ -448,7 +454,12 @@ int usb_func_ep_queue(struct usb_function *func, struct usb_ep *ep, if (func->func_is_suspended && func->func_wakeup_allowed) { ret = usb_gadget_func_wakeup(gadget, func->intf_id); if (ret == -EAGAIN) { if (ret == -EACCES) { pr_debug("bus suspended func wakeup for %s delayed until bus resume.\n", func->name ? func->name : ""); func->func_wakeup_pending = 1; ret = -EAGAIN; } else if (ret == -EAGAIN) { pr_debug("bus suspended func wakeup for %s delayed until bus resume.\n", func->name ? func->name : ""); } else if (ret < 0 && ret != -ENOTSUPP) { Loading Loading @@ -2332,13 +2343,13 @@ composite_resume(struct usb_gadget *gadget) spin_lock_irqsave(&cdev->lock, flags); if (cdev->config) { list_for_each_entry(f, &cdev->config->functions, list) { if (f->func_wakeup_pending) { ret = usb_func_wakeup_int(f); if (ret) { if (ret == -EAGAIN) { ERROR(f->config->cdev, "Function wakeup for %s could not complete due to suspend state.\n", f->name ? f->name : ""); break; } else if (ret != -ENOTSUPP) { ERROR(f->config->cdev, "Failed to wake function %s from suspend state. ret=%d. Canceling USB request.\n", Loading @@ -2346,8 +2357,10 @@ composite_resume(struct usb_gadget *gadget) ret); } } f->func_wakeup_pending = 0; } if (f->resume) if (gadget->speed != USB_SPEED_SUPER && f->resume) f->resume(f); } Loading