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

Commit 6ef0e17f authored by Jack Pham's avatar Jack Pham Committed by Ajay Agarwal
Browse files

usb: dwc3: gadget: Avoid spuriously printing NO_PULLUP in log



This log message can come unnecessarily particularly when the
controller is operating in host mode and the xHCI HCD driver
is primarily handling interrupts. As there should be no gadget
specific events there should not be any value showing in the
GEVNTCOUNT registers so dwc3_interrupt() should normally return
silently. Only print the "NO_PULLUP" log in case there are
new/pending events and the gadget is in halted state.

Change-Id: I4e5040409a14f18d454833fd67d41ca5d0f13501
Signed-off-by: default avatarJack Pham <jackp@codeaurora.org>
parent 0f383f79
Loading
Loading
Loading
Loading
+7 −14
Original line number Diff line number Diff line
@@ -3885,20 +3885,6 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_event_buffer *evt)
	if (dwc->err_evt_seen)
		return IRQ_HANDLED;

	/* Controller is being halted, ignore the interrupts */
	if (!dwc->pullups_connected) {
		/*
		 * Even with controller halted, there is a possibility
		 * that the interrupt line is kept asserted.
		 * As per the databook (3.00A - 6.3.57) read the GEVNTCOUNT
		 * to ensure that the interrupt line is de-asserted.
		 */
		count = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0));
		count &= DWC3_GEVNTCOUNT_MASK;
		dbg_event(0xFF, "NO_PULLUP", count);
		return IRQ_HANDLED;
	}

	/*
	 * With PCIe legacy interrupt, test shows that top-half irq handler can
	 * be called again after HW interrupt deassertion. Check if bottom-half
@@ -3913,6 +3899,13 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_event_buffer *evt)
	if (!count)
		return IRQ_NONE;

	/* Controller is halted; ignore new/pending events */
	if (!dwc->pullups_connected) {
		dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), count);
		dbg_event(0xFF, "NO_PULLUP", count);
		return IRQ_HANDLED;
	}

	if (count > evt->length) {
		dbg_event(0xFF, "HUGE_EVCNT", count);
		/*