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

Commit de9a0741 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: dwc3: gadget: Handle erratic error event only once"

parents 35f923cc 0ab59297
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -722,6 +722,7 @@ struct dwc3_scratchpad_array {
 * @hwparams: copy of hwparams registers
 * @hwparams: copy of hwparams registers
 * @root: debugfs root folder pointer
 * @root: debugfs root folder pointer
 * @tx_fifo_size: Available RAM size for TX fifo allocation
 * @tx_fifo_size: Available RAM size for TX fifo allocation
 * @err_evt_seen: previous event in queue was erratic error
 */
 */
struct dwc3 {
struct dwc3 {
	struct usb_ctrlrequest	*ctrl_req;
	struct usb_ctrlrequest	*ctrl_req;
@@ -827,6 +828,7 @@ struct dwc3 {


	bool			nominal_elastic_buffer;
	bool			nominal_elastic_buffer;
	bool			core_reset_after_phy_init;
	bool			core_reset_after_phy_init;
	bool			err_evt_seen;
};
};


/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
+7 −3
Original line number Original line Diff line number Diff line
@@ -2868,9 +2868,11 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc,
		dev_vdbg(dwc->dev, "Start of Periodic Frame\n");
		dev_vdbg(dwc->dev, "Start of Periodic Frame\n");
		break;
		break;
	case DWC3_DEVICE_EVENT_ERRATIC_ERROR:
	case DWC3_DEVICE_EVENT_ERRATIC_ERROR:
		if (!dwc->err_evt_seen) {
			dbg_event(0xFF, "ERROR", 0);
			dbg_event(0xFF, "ERROR", 0);
			dev_vdbg(dwc->dev, "Erratic Error\n");
			dev_vdbg(dwc->dev, "Erratic Error\n");
			dwc3_dump_reg_info(dwc);
			dwc3_dump_reg_info(dwc);
		}
		break;
		break;
	case DWC3_DEVICE_EVENT_CMD_CMPL:
	case DWC3_DEVICE_EVENT_CMD_CMPL:
		dev_vdbg(dwc->dev, "Command Complete\n");
		dev_vdbg(dwc->dev, "Command Complete\n");
@@ -2910,6 +2912,8 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc,
	default:
	default:
		dev_dbg(dwc->dev, "UNKNOWN IRQ %d\n", event->type);
		dev_dbg(dwc->dev, "UNKNOWN IRQ %d\n", event->type);
	}
	}

	dwc->err_evt_seen = (event->type == DWC3_DEVICE_EVENT_ERRATIC_ERROR);
}
}


static void dwc3_process_event_entry(struct dwc3 *dwc,
static void dwc3_process_event_entry(struct dwc3 *dwc,