Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c98a527d authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "dwc3: gadget: Add handling of bus resume and L1 resume functionality"

parents 626e105a 0cb486de
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -3401,18 +3401,20 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)

static void dwc3_gadget_wakeup_interrupt(struct dwc3 *dwc)
{
	dbg_event(0xFF, "WAKEUP", 0);
	enum dwc3_link_state link_state = dwc->link_state;

	/*
	 * TODO take core out of low power mode when that's
	 * implemented.
	 */
	dbg_log_string("WAKEUP: link_state:%d", link_state);
	dwc->link_state = DWC3_LINK_STATE_U0;

	if (dwc->gadget_driver && dwc->gadget_driver->resume) {
		spin_unlock(&dwc->lock);
		dwc->gadget_driver->resume(&dwc->gadget);
		spin_lock(&dwc->lock);
	}
	/* For L1 resume case, don't perform resume */
	if (link_state != DWC3_LINK_STATE_U3)
		return;

	/* Handle bus resume case */
	dbg_event(0xFF, "notify", 0);
	dwc->b_suspend = false;
	dwc3_notify_event(dwc, DWC3_CONTROLLER_NOTIFY_OTG_EVENT, 0);
	dwc3_resume_gadget(dwc);
}

static void dwc3_gadget_linksts_change_interrupt(struct dwc3 *dwc,