/* This interrupt indicates that one or more host channels has a pending interrupt. There are multiple conditions that can cause each host channel interrupt. This function determines which conditions have occurred for each host channel interrupt and handles them appropriately.  */
static void dwc2_hc_intr(struct dwc2_hsotg *hsotg)
/* This interrupt indicates that one or more host channels has a pending interrupt. There are multiple conditions that can cause each host channel interrupt. This function determines which conditions have occurred for each host channel interrupt and handles them appropriately.  */
static void dwc2_hc_intr(struct dwc2_hsotg *hsotg)
{
	u32 haint;
	int i;
	haint = readl(hsotg->regs + HAINT);
	if (dbg_perio()) {
		dev_vdbg(hsotg->dev, "%s()\n", __func__);
		dev_vdbg(hsotg->dev, "HAINT=%08x\n", haint);
	}
	for (i = 0; i < hsotg->core_params->host_channels; i++) {
		if (haint & (1 << i))
			dwc2_hc_n_intr(hsotg, i);
	}
}