Snap for 7651834 from 8c9cb160bc to android12-5.10-keystone-qcom-release

Change-Id: I45550762f38e862a17814597f748f5838ddbbdcf
This commit is contained in:
Android Build Coastguard Worker
2021-08-18 10:00:31 +00:00
3 changed files with 10 additions and 3 deletions

View File

@@ -218,7 +218,7 @@ out:
return ret; return ret;
} }
static void dwc3_ep0_stall_and_restart(struct dwc3 *dwc) void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)
{ {
struct dwc3_ep *dep; struct dwc3_ep *dep;
@@ -1070,7 +1070,7 @@ void dwc3_ep0_send_delayed_status(struct dwc3 *dwc)
__dwc3_ep0_do_control_status(dwc, dwc->eps[direction]); __dwc3_ep0_do_control_status(dwc, dwc->eps[direction]);
} }
static void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep) void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep)
{ {
struct dwc3_gadget_ep_cmd_params params; struct dwc3_gadget_ep_cmd_params params;
u32 cmd; u32 cmd;

View File

@@ -2427,7 +2427,11 @@ static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on)
msecs_to_jiffies(DWC3_PULL_UP_TIMEOUT)); msecs_to_jiffies(DWC3_PULL_UP_TIMEOUT));
if (ret == 0) { if (ret == 0) {
dev_err(dwc->dev, "timed out waiting for SETUP phase\n"); dev_err(dwc->dev, "timed out waiting for SETUP phase\n");
return -ETIMEDOUT; spin_lock_irqsave(&dwc->lock, flags);
dwc3_ep0_end_control_data(dwc, dwc->eps[0]);
dwc3_ep0_end_control_data(dwc, dwc->eps[1]);
dwc3_ep0_stall_and_restart(dwc);
spin_unlock_irqrestore(&dwc->lock, flags);
} }
} }

View File

@@ -114,6 +114,9 @@ int __dwc3_gadget_ep0_set_halt(struct usb_ep *ep, int value);
int dwc3_gadget_ep0_set_halt(struct usb_ep *ep, int value); int dwc3_gadget_ep0_set_halt(struct usb_ep *ep, int value);
int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request, int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
gfp_t gfp_flags); gfp_t gfp_flags);
void dwc3_ep0_stall_and_restart(struct dwc3 *dwc);
void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep);
int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol); int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol);
void dwc3_ep0_send_delayed_status(struct dwc3 *dwc); void dwc3_ep0_send_delayed_status(struct dwc3 *dwc);