hsotg              67 drivers/usb/dwc2/core.c int dwc2_backup_global_registers(struct dwc2_hsotg *hsotg)
hsotg              71 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "%s\n", __func__);
hsotg              74 drivers/usb/dwc2/core.c 	gr = &hsotg->gr_backup;
hsotg              76 drivers/usb/dwc2/core.c 	gr->gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg              77 drivers/usb/dwc2/core.c 	gr->gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg              78 drivers/usb/dwc2/core.c 	gr->gahbcfg = dwc2_readl(hsotg, GAHBCFG);
hsotg              79 drivers/usb/dwc2/core.c 	gr->gusbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg              80 drivers/usb/dwc2/core.c 	gr->grxfsiz = dwc2_readl(hsotg, GRXFSIZ);
hsotg              81 drivers/usb/dwc2/core.c 	gr->gnptxfsiz = dwc2_readl(hsotg, GNPTXFSIZ);
hsotg              82 drivers/usb/dwc2/core.c 	gr->gdfifocfg = dwc2_readl(hsotg, GDFIFOCFG);
hsotg              83 drivers/usb/dwc2/core.c 	gr->pcgcctl1 = dwc2_readl(hsotg, PCGCCTL1);
hsotg              84 drivers/usb/dwc2/core.c 	gr->glpmcfg = dwc2_readl(hsotg, GLPMCFG);
hsotg              85 drivers/usb/dwc2/core.c 	gr->gi2cctl = dwc2_readl(hsotg, GI2CCTL);
hsotg              86 drivers/usb/dwc2/core.c 	gr->pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg              99 drivers/usb/dwc2/core.c int dwc2_restore_global_registers(struct dwc2_hsotg *hsotg)
hsotg             103 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "%s\n", __func__);
hsotg             106 drivers/usb/dwc2/core.c 	gr = &hsotg->gr_backup;
hsotg             108 drivers/usb/dwc2/core.c 		dev_err(hsotg->dev, "%s: no global registers to restore\n",
hsotg             114 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg             115 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gotgctl, GOTGCTL);
hsotg             116 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gintmsk, GINTMSK);
hsotg             117 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gusbcfg, GUSBCFG);
hsotg             118 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gahbcfg, GAHBCFG);
hsotg             119 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->grxfsiz, GRXFSIZ);
hsotg             120 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gnptxfsiz, GNPTXFSIZ);
hsotg             121 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gdfifocfg, GDFIFOCFG);
hsotg             122 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->pcgcctl1, PCGCCTL1);
hsotg             123 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->glpmcfg, GLPMCFG);
hsotg             124 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->pcgcctl, PCGCTL);
hsotg             125 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gi2cctl, GI2CCTL);
hsotg             136 drivers/usb/dwc2/core.c int dwc2_exit_partial_power_down(struct dwc2_hsotg *hsotg, bool restore)
hsotg             141 drivers/usb/dwc2/core.c 	if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL)
hsotg             144 drivers/usb/dwc2/core.c 	pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg             146 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             148 drivers/usb/dwc2/core.c 	pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg             150 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             152 drivers/usb/dwc2/core.c 	pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg             154 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             158 drivers/usb/dwc2/core.c 		ret = dwc2_restore_global_registers(hsotg);
hsotg             160 drivers/usb/dwc2/core.c 			dev_err(hsotg->dev, "%s: failed to restore registers\n",
hsotg             164 drivers/usb/dwc2/core.c 		if (dwc2_is_host_mode(hsotg)) {
hsotg             165 drivers/usb/dwc2/core.c 			ret = dwc2_restore_host_registers(hsotg);
hsotg             167 drivers/usb/dwc2/core.c 				dev_err(hsotg->dev, "%s: failed to restore host registers\n",
hsotg             172 drivers/usb/dwc2/core.c 			ret = dwc2_restore_device_registers(hsotg, 0);
hsotg             174 drivers/usb/dwc2/core.c 				dev_err(hsotg->dev, "%s: failed to restore device registers\n",
hsotg             189 drivers/usb/dwc2/core.c int dwc2_enter_partial_power_down(struct dwc2_hsotg *hsotg)
hsotg             194 drivers/usb/dwc2/core.c 	if (!hsotg->params.power_down)
hsotg             198 drivers/usb/dwc2/core.c 	ret = dwc2_backup_global_registers(hsotg);
hsotg             200 drivers/usb/dwc2/core.c 		dev_err(hsotg->dev, "%s: failed to backup global registers\n",
hsotg             205 drivers/usb/dwc2/core.c 	if (dwc2_is_host_mode(hsotg)) {
hsotg             206 drivers/usb/dwc2/core.c 		ret = dwc2_backup_host_registers(hsotg);
hsotg             208 drivers/usb/dwc2/core.c 			dev_err(hsotg->dev, "%s: failed to backup host registers\n",
hsotg             213 drivers/usb/dwc2/core.c 		ret = dwc2_backup_device_registers(hsotg);
hsotg             215 drivers/usb/dwc2/core.c 			dev_err(hsotg->dev, "%s: failed to backup device registers\n",
hsotg             225 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg             228 drivers/usb/dwc2/core.c 	pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg             231 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             235 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             239 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             251 drivers/usb/dwc2/core.c static void dwc2_restore_essential_regs(struct dwc2_hsotg *hsotg, int rmode,
hsotg             259 drivers/usb/dwc2/core.c 	gr = &hsotg->gr_backup;
hsotg             260 drivers/usb/dwc2/core.c 	dr = &hsotg->dr_backup;
hsotg             261 drivers/usb/dwc2/core.c 	hr = &hsotg->hr_backup;
hsotg             263 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "%s: restoring essential regs\n", __func__);
hsotg             275 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             278 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gahbcfg | GAHBCFG_GLBL_INTR_EN, GAHBCFG);
hsotg             281 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg             284 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, GINTSTS_RESTOREDONE, GINTMSK);
hsotg             287 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gr->gusbcfg, GUSBCFG);
hsotg             290 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, hr->hcfg, HCFG);
hsotg             293 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             297 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             300 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, dr->dcfg, DCFG);
hsotg             303 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             307 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             319 drivers/usb/dwc2/core.c void dwc2_hib_restore_common(struct dwc2_hsotg *hsotg, int rem_wakeup,
hsotg             325 drivers/usb/dwc2/core.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg             327 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg             331 drivers/usb/dwc2/core.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg             333 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg             337 drivers/usb/dwc2/core.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg             339 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg             343 drivers/usb/dwc2/core.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg             345 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg             352 drivers/usb/dwc2/core.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg             354 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg             358 drivers/usb/dwc2/core.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg             360 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg             364 drivers/usb/dwc2/core.c 	dwc2_restore_essential_regs(hsotg, rem_wakeup, is_host);
hsotg             370 drivers/usb/dwc2/core.c 	if (dwc2_hsotg_wait_bit_set(hsotg, GINTSTS, GINTSTS_RESTOREDONE,
hsotg             372 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev,
hsotg             376 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "restore done  generated here\n");
hsotg             385 drivers/usb/dwc2/core.c static void dwc2_wait_for_mode(struct dwc2_hsotg *hsotg,
hsotg             392 drivers/usb/dwc2/core.c 	dev_vdbg(hsotg->dev, "Waiting for %s mode\n",
hsotg             400 drivers/usb/dwc2/core.c 		if (dwc2_is_host_mode(hsotg) == host_mode) {
hsotg             401 drivers/usb/dwc2/core.c 			dev_vdbg(hsotg->dev, "%s mode set\n",
hsotg             410 drivers/usb/dwc2/core.c 			dev_warn(hsotg->dev, "%s: Couldn't set %s mode\n",
hsotg             425 drivers/usb/dwc2/core.c static bool dwc2_iddig_filter_enabled(struct dwc2_hsotg *hsotg)
hsotg             430 drivers/usb/dwc2/core.c 	if (!dwc2_hw_is_otg(hsotg))
hsotg             434 drivers/usb/dwc2/core.c 	ghwcfg4 = dwc2_readl(hsotg, GHWCFG4);
hsotg             442 drivers/usb/dwc2/core.c 	gsnpsid = dwc2_readl(hsotg, GSNPSID);
hsotg             444 drivers/usb/dwc2/core.c 		u32 gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             461 drivers/usb/dwc2/core.c int dwc2_enter_hibernation(struct dwc2_hsotg *hsotg, int is_host)
hsotg             463 drivers/usb/dwc2/core.c 	if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_HIBERNATION)
hsotg             467 drivers/usb/dwc2/core.c 		return dwc2_host_enter_hibernation(hsotg);
hsotg             469 drivers/usb/dwc2/core.c 		return dwc2_gadget_enter_hibernation(hsotg);
hsotg             482 drivers/usb/dwc2/core.c int dwc2_exit_hibernation(struct dwc2_hsotg *hsotg, int rem_wakeup,
hsotg             486 drivers/usb/dwc2/core.c 		return dwc2_host_exit_hibernation(hsotg, rem_wakeup, reset);
hsotg             488 drivers/usb/dwc2/core.c 		return dwc2_gadget_exit_hibernation(hsotg, rem_wakeup, reset);
hsotg             495 drivers/usb/dwc2/core.c int dwc2_core_reset(struct dwc2_hsotg *hsotg, bool skip_wait)
hsotg             500 drivers/usb/dwc2/core.c 	dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg             512 drivers/usb/dwc2/core.c 	if (dwc2_iddig_filter_enabled(hsotg)) {
hsotg             513 drivers/usb/dwc2/core.c 		u32 gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             514 drivers/usb/dwc2/core.c 		u32 gusbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg             523 drivers/usb/dwc2/core.c 	greset = dwc2_readl(hsotg, GRSTCTL);
hsotg             525 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, greset, GRSTCTL);
hsotg             527 drivers/usb/dwc2/core.c 	if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 10000)) {
hsotg             528 drivers/usb/dwc2/core.c 		dev_warn(hsotg->dev, "%s: HANG! Soft Reset timeout GRSTCTL GRSTCTL_CSFTRST\n",
hsotg             534 drivers/usb/dwc2/core.c 	if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL, GRSTCTL_AHBIDLE, 10000)) {
hsotg             535 drivers/usb/dwc2/core.c 		dev_warn(hsotg->dev, "%s: HANG! AHB Idle timeout GRSTCTL GRSTCTL_AHBIDLE\n",
hsotg             541 drivers/usb/dwc2/core.c 		dwc2_wait_for_mode(hsotg, true);
hsotg             573 drivers/usb/dwc2/core.c void dwc2_force_mode(struct dwc2_hsotg *hsotg, bool host)
hsotg             579 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "Forcing mode to %s\n", host ? "host" : "device");
hsotg             584 drivers/usb/dwc2/core.c 	if (!dwc2_hw_is_otg(hsotg))
hsotg             591 drivers/usb/dwc2/core.c 	if (WARN_ON(host && hsotg->dr_mode == USB_DR_MODE_PERIPHERAL))
hsotg             594 drivers/usb/dwc2/core.c 	if (WARN_ON(!host && hsotg->dr_mode == USB_DR_MODE_HOST))
hsotg             597 drivers/usb/dwc2/core.c 	gusbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg             604 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gusbcfg, GUSBCFG);
hsotg             606 drivers/usb/dwc2/core.c 	dwc2_wait_for_mode(hsotg, host);
hsotg             621 drivers/usb/dwc2/core.c static void dwc2_clear_force_mode(struct dwc2_hsotg *hsotg)
hsotg             625 drivers/usb/dwc2/core.c 	if (!dwc2_hw_is_otg(hsotg))
hsotg             628 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "Clearing force mode bits\n");
hsotg             630 drivers/usb/dwc2/core.c 	gusbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg             633 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, gusbcfg, GUSBCFG);
hsotg             635 drivers/usb/dwc2/core.c 	if (dwc2_iddig_filter_enabled(hsotg))
hsotg             642 drivers/usb/dwc2/core.c void dwc2_force_dr_mode(struct dwc2_hsotg *hsotg)
hsotg             644 drivers/usb/dwc2/core.c 	switch (hsotg->dr_mode) {
hsotg             650 drivers/usb/dwc2/core.c 		if (!dwc2_hw_is_otg(hsotg))
hsotg             655 drivers/usb/dwc2/core.c 		dwc2_force_mode(hsotg, false);
hsotg             658 drivers/usb/dwc2/core.c 		dwc2_clear_force_mode(hsotg);
hsotg             661 drivers/usb/dwc2/core.c 		dev_warn(hsotg->dev, "%s() Invalid dr_mode=%d\n",
hsotg             662 drivers/usb/dwc2/core.c 			 __func__, hsotg->dr_mode);
hsotg             670 drivers/usb/dwc2/core.c void dwc2_enable_acg(struct dwc2_hsotg *hsotg)
hsotg             672 drivers/usb/dwc2/core.c 	if (hsotg->params.acg_enable) {
hsotg             673 drivers/usb/dwc2/core.c 		u32 pcgcctl1 = dwc2_readl(hsotg, PCGCCTL1);
hsotg             675 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "Enabling Active Clock Gating\n");
hsotg             677 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, pcgcctl1, PCGCCTL1);
hsotg             689 drivers/usb/dwc2/core.c void dwc2_dump_host_registers(struct dwc2_hsotg *hsotg)
hsotg             695 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "Host Global Registers\n");
hsotg             696 drivers/usb/dwc2/core.c 	addr = hsotg->regs + HCFG;
hsotg             697 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "HCFG	 @0x%08lX : 0x%08X\n",
hsotg             698 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, HCFG));
hsotg             699 drivers/usb/dwc2/core.c 	addr = hsotg->regs + HFIR;
hsotg             700 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "HFIR	 @0x%08lX : 0x%08X\n",
hsotg             701 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, HFIR));
hsotg             702 drivers/usb/dwc2/core.c 	addr = hsotg->regs + HFNUM;
hsotg             703 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "HFNUM	 @0x%08lX : 0x%08X\n",
hsotg             704 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, HFNUM));
hsotg             705 drivers/usb/dwc2/core.c 	addr = hsotg->regs + HPTXSTS;
hsotg             706 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "HPTXSTS	 @0x%08lX : 0x%08X\n",
hsotg             707 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, HPTXSTS));
hsotg             708 drivers/usb/dwc2/core.c 	addr = hsotg->regs + HAINT;
hsotg             709 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "HAINT	 @0x%08lX : 0x%08X\n",
hsotg             710 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, HAINT));
hsotg             711 drivers/usb/dwc2/core.c 	addr = hsotg->regs + HAINTMSK;
hsotg             712 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "HAINTMSK	 @0x%08lX : 0x%08X\n",
hsotg             713 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, HAINTMSK));
hsotg             714 drivers/usb/dwc2/core.c 	if (hsotg->params.dma_desc_enable) {
hsotg             715 drivers/usb/dwc2/core.c 		addr = hsotg->regs + HFLBADDR;
hsotg             716 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HFLBADDR @0x%08lX : 0x%08X\n",
hsotg             717 drivers/usb/dwc2/core.c 			(unsigned long)addr, dwc2_readl(hsotg, HFLBADDR));
hsotg             720 drivers/usb/dwc2/core.c 	addr = hsotg->regs + HPRT0;
hsotg             721 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "HPRT0	 @0x%08lX : 0x%08X\n",
hsotg             722 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, HPRT0));
hsotg             724 drivers/usb/dwc2/core.c 	for (i = 0; i < hsotg->params.host_channels; i++) {
hsotg             725 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "Host Channel %d Specific Registers\n", i);
hsotg             726 drivers/usb/dwc2/core.c 		addr = hsotg->regs + HCCHAR(i);
hsotg             727 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HCCHAR	 @0x%08lX : 0x%08X\n",
hsotg             728 drivers/usb/dwc2/core.c 			(unsigned long)addr, dwc2_readl(hsotg, HCCHAR(i)));
hsotg             729 drivers/usb/dwc2/core.c 		addr = hsotg->regs + HCSPLT(i);
hsotg             730 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HCSPLT	 @0x%08lX : 0x%08X\n",
hsotg             731 drivers/usb/dwc2/core.c 			(unsigned long)addr, dwc2_readl(hsotg, HCSPLT(i)));
hsotg             732 drivers/usb/dwc2/core.c 		addr = hsotg->regs + HCINT(i);
hsotg             733 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HCINT	 @0x%08lX : 0x%08X\n",
hsotg             734 drivers/usb/dwc2/core.c 			(unsigned long)addr, dwc2_readl(hsotg, HCINT(i)));
hsotg             735 drivers/usb/dwc2/core.c 		addr = hsotg->regs + HCINTMSK(i);
hsotg             736 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HCINTMSK	 @0x%08lX : 0x%08X\n",
hsotg             737 drivers/usb/dwc2/core.c 			(unsigned long)addr, dwc2_readl(hsotg, HCINTMSK(i)));
hsotg             738 drivers/usb/dwc2/core.c 		addr = hsotg->regs + HCTSIZ(i);
hsotg             739 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HCTSIZ	 @0x%08lX : 0x%08X\n",
hsotg             740 drivers/usb/dwc2/core.c 			(unsigned long)addr, dwc2_readl(hsotg, HCTSIZ(i)));
hsotg             741 drivers/usb/dwc2/core.c 		addr = hsotg->regs + HCDMA(i);
hsotg             742 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HCDMA	 @0x%08lX : 0x%08X\n",
hsotg             743 drivers/usb/dwc2/core.c 			(unsigned long)addr, dwc2_readl(hsotg, HCDMA(i)));
hsotg             744 drivers/usb/dwc2/core.c 		if (hsotg->params.dma_desc_enable) {
hsotg             745 drivers/usb/dwc2/core.c 			addr = hsotg->regs + HCDMAB(i);
hsotg             746 drivers/usb/dwc2/core.c 			dev_dbg(hsotg->dev, "HCDMAB	 @0x%08lX : 0x%08X\n",
hsotg             747 drivers/usb/dwc2/core.c 				(unsigned long)addr, dwc2_readl(hsotg,
hsotg             762 drivers/usb/dwc2/core.c void dwc2_dump_global_registers(struct dwc2_hsotg *hsotg)
hsotg             767 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "Core Global Registers\n");
hsotg             768 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GOTGCTL;
hsotg             769 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GOTGCTL	 @0x%08lX : 0x%08X\n",
hsotg             770 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GOTGCTL));
hsotg             771 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GOTGINT;
hsotg             772 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GOTGINT	 @0x%08lX : 0x%08X\n",
hsotg             773 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GOTGINT));
hsotg             774 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GAHBCFG;
hsotg             775 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GAHBCFG	 @0x%08lX : 0x%08X\n",
hsotg             776 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GAHBCFG));
hsotg             777 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GUSBCFG;
hsotg             778 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GUSBCFG	 @0x%08lX : 0x%08X\n",
hsotg             779 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GUSBCFG));
hsotg             780 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GRSTCTL;
hsotg             781 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GRSTCTL	 @0x%08lX : 0x%08X\n",
hsotg             782 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GRSTCTL));
hsotg             783 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GINTSTS;
hsotg             784 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GINTSTS	 @0x%08lX : 0x%08X\n",
hsotg             785 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GINTSTS));
hsotg             786 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GINTMSK;
hsotg             787 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GINTMSK	 @0x%08lX : 0x%08X\n",
hsotg             788 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GINTMSK));
hsotg             789 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GRXSTSR;
hsotg             790 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GRXSTSR	 @0x%08lX : 0x%08X\n",
hsotg             791 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GRXSTSR));
hsotg             792 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GRXFSIZ;
hsotg             793 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GRXFSIZ	 @0x%08lX : 0x%08X\n",
hsotg             794 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GRXFSIZ));
hsotg             795 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GNPTXFSIZ;
hsotg             796 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GNPTXFSIZ	 @0x%08lX : 0x%08X\n",
hsotg             797 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GNPTXFSIZ));
hsotg             798 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GNPTXSTS;
hsotg             799 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GNPTXSTS	 @0x%08lX : 0x%08X\n",
hsotg             800 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GNPTXSTS));
hsotg             801 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GI2CCTL;
hsotg             802 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GI2CCTL	 @0x%08lX : 0x%08X\n",
hsotg             803 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GI2CCTL));
hsotg             804 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GPVNDCTL;
hsotg             805 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GPVNDCTL	 @0x%08lX : 0x%08X\n",
hsotg             806 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GPVNDCTL));
hsotg             807 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GGPIO;
hsotg             808 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GGPIO	 @0x%08lX : 0x%08X\n",
hsotg             809 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GGPIO));
hsotg             810 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GUID;
hsotg             811 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GUID	 @0x%08lX : 0x%08X\n",
hsotg             812 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GUID));
hsotg             813 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GSNPSID;
hsotg             814 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GSNPSID	 @0x%08lX : 0x%08X\n",
hsotg             815 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GSNPSID));
hsotg             816 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GHWCFG1;
hsotg             817 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GHWCFG1	 @0x%08lX : 0x%08X\n",
hsotg             818 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GHWCFG1));
hsotg             819 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GHWCFG2;
hsotg             820 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GHWCFG2	 @0x%08lX : 0x%08X\n",
hsotg             821 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GHWCFG2));
hsotg             822 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GHWCFG3;
hsotg             823 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GHWCFG3	 @0x%08lX : 0x%08X\n",
hsotg             824 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GHWCFG3));
hsotg             825 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GHWCFG4;
hsotg             826 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GHWCFG4	 @0x%08lX : 0x%08X\n",
hsotg             827 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GHWCFG4));
hsotg             828 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GLPMCFG;
hsotg             829 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GLPMCFG	 @0x%08lX : 0x%08X\n",
hsotg             830 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GLPMCFG));
hsotg             831 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GPWRDN;
hsotg             832 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GPWRDN	 @0x%08lX : 0x%08X\n",
hsotg             833 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GPWRDN));
hsotg             834 drivers/usb/dwc2/core.c 	addr = hsotg->regs + GDFIFOCFG;
hsotg             835 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "GDFIFOCFG	 @0x%08lX : 0x%08X\n",
hsotg             836 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, GDFIFOCFG));
hsotg             837 drivers/usb/dwc2/core.c 	addr = hsotg->regs + HPTXFSIZ;
hsotg             838 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "HPTXFSIZ	 @0x%08lX : 0x%08X\n",
hsotg             839 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, HPTXFSIZ));
hsotg             841 drivers/usb/dwc2/core.c 	addr = hsotg->regs + PCGCTL;
hsotg             842 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "PCGCTL	 @0x%08lX : 0x%08X\n",
hsotg             843 drivers/usb/dwc2/core.c 		(unsigned long)addr, dwc2_readl(hsotg, PCGCTL));
hsotg             853 drivers/usb/dwc2/core.c void dwc2_flush_tx_fifo(struct dwc2_hsotg *hsotg, const int num)
hsotg             857 drivers/usb/dwc2/core.c 	dev_vdbg(hsotg->dev, "Flush Tx FIFO %d\n", num);
hsotg             860 drivers/usb/dwc2/core.c 	if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL, GRSTCTL_AHBIDLE, 10000))
hsotg             861 drivers/usb/dwc2/core.c 		dev_warn(hsotg->dev, "%s:  HANG! AHB Idle GRSCTL\n",
hsotg             866 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, greset, GRSTCTL);
hsotg             868 drivers/usb/dwc2/core.c 	if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_TXFFLSH, 10000))
hsotg             869 drivers/usb/dwc2/core.c 		dev_warn(hsotg->dev, "%s:  HANG! timeout GRSTCTL GRSTCTL_TXFFLSH\n",
hsotg             881 drivers/usb/dwc2/core.c void dwc2_flush_rx_fifo(struct dwc2_hsotg *hsotg)
hsotg             885 drivers/usb/dwc2/core.c 	dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg             888 drivers/usb/dwc2/core.c 	if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL, GRSTCTL_AHBIDLE, 10000))
hsotg             889 drivers/usb/dwc2/core.c 		dev_warn(hsotg->dev, "%s:  HANG! AHB Idle GRSCTL\n",
hsotg             893 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, greset, GRSTCTL);
hsotg             896 drivers/usb/dwc2/core.c 	if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_RXFFLSH, 10000))
hsotg             897 drivers/usb/dwc2/core.c 		dev_warn(hsotg->dev, "%s: HANG! timeout GRSTCTL GRSTCTL_RXFFLSH\n",
hsotg             904 drivers/usb/dwc2/core.c bool dwc2_is_controller_alive(struct dwc2_hsotg *hsotg)
hsotg             906 drivers/usb/dwc2/core.c 	if (dwc2_readl(hsotg, GSNPSID) == 0xffffffff)
hsotg             918 drivers/usb/dwc2/core.c void dwc2_enable_global_interrupts(struct dwc2_hsotg *hsotg)
hsotg             920 drivers/usb/dwc2/core.c 	u32 ahbcfg = dwc2_readl(hsotg, GAHBCFG);
hsotg             923 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, ahbcfg, GAHBCFG);
hsotg             932 drivers/usb/dwc2/core.c void dwc2_disable_global_interrupts(struct dwc2_hsotg *hsotg)
hsotg             934 drivers/usb/dwc2/core.c 	u32 ahbcfg = dwc2_readl(hsotg, GAHBCFG);
hsotg             937 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, ahbcfg, GAHBCFG);
hsotg             941 drivers/usb/dwc2/core.c unsigned int dwc2_op_mode(struct dwc2_hsotg *hsotg)
hsotg             943 drivers/usb/dwc2/core.c 	u32 ghwcfg2 = dwc2_readl(hsotg, GHWCFG2);
hsotg             950 drivers/usb/dwc2/core.c bool dwc2_hw_is_otg(struct dwc2_hsotg *hsotg)
hsotg             952 drivers/usb/dwc2/core.c 	unsigned int op_mode = dwc2_op_mode(hsotg);
hsotg             960 drivers/usb/dwc2/core.c bool dwc2_hw_is_host(struct dwc2_hsotg *hsotg)
hsotg             962 drivers/usb/dwc2/core.c 	unsigned int op_mode = dwc2_op_mode(hsotg);
hsotg             969 drivers/usb/dwc2/core.c bool dwc2_hw_is_device(struct dwc2_hsotg *hsotg)
hsotg             971 drivers/usb/dwc2/core.c 	unsigned int op_mode = dwc2_op_mode(hsotg);
hsotg             986 drivers/usb/dwc2/core.c int dwc2_hsotg_wait_bit_set(struct dwc2_hsotg *hsotg, u32 offset, u32 mask,
hsotg             992 drivers/usb/dwc2/core.c 		if (dwc2_readl(hsotg, offset) & mask)
hsotg            1009 drivers/usb/dwc2/core.c int dwc2_hsotg_wait_bit_clear(struct dwc2_hsotg *hsotg, u32 offset, u32 mask,
hsotg            1015 drivers/usb/dwc2/core.c 		if (!(dwc2_readl(hsotg, offset) & mask))
hsotg            1027 drivers/usb/dwc2/core.c void dwc2_init_fs_ls_pclk_sel(struct dwc2_hsotg *hsotg)
hsotg            1031 drivers/usb/dwc2/core.c 	if ((hsotg->hw_params.hs_phy_type == GHWCFG2_HS_PHY_TYPE_ULPI &&
hsotg            1032 drivers/usb/dwc2/core.c 	     hsotg->hw_params.fs_phy_type == GHWCFG2_FS_PHY_TYPE_DEDICATED &&
hsotg            1033 drivers/usb/dwc2/core.c 	     hsotg->params.ulpi_fs_ls) ||
hsotg            1034 drivers/usb/dwc2/core.c 	    hsotg->params.phy_type == DWC2_PHY_TYPE_PARAM_FS) {
hsotg            1042 drivers/usb/dwc2/core.c 	dev_dbg(hsotg->dev, "Initializing HCFG.FSLSPClkSel to %08x\n", val);
hsotg            1043 drivers/usb/dwc2/core.c 	hcfg = dwc2_readl(hsotg, HCFG);
hsotg            1046 drivers/usb/dwc2/core.c 	dwc2_writel(hsotg, hcfg, HCFG);
hsotg            1049 drivers/usb/dwc2/core.c static int dwc2_fs_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
hsotg            1059 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "FS PHY selected\n");
hsotg            1061 drivers/usb/dwc2/core.c 		usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            1064 drivers/usb/dwc2/core.c 			dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg            1067 drivers/usb/dwc2/core.c 			retval = dwc2_core_reset(hsotg, false);
hsotg            1070 drivers/usb/dwc2/core.c 				dev_err(hsotg->dev,
hsotg            1076 drivers/usb/dwc2/core.c 		if (hsotg->params.activate_stm_fs_transceiver) {
hsotg            1077 drivers/usb/dwc2/core.c 			ggpio = dwc2_readl(hsotg, GGPIO);
hsotg            1079 drivers/usb/dwc2/core.c 				dev_dbg(hsotg->dev, "Activating transceiver\n");
hsotg            1085 drivers/usb/dwc2/core.c 				dwc2_writel(hsotg, ggpio, GGPIO);
hsotg            1095 drivers/usb/dwc2/core.c 	if (dwc2_is_host_mode(hsotg))
hsotg            1096 drivers/usb/dwc2/core.c 		dwc2_init_fs_ls_pclk_sel(hsotg);
hsotg            1098 drivers/usb/dwc2/core.c 	if (hsotg->params.i2c_enable) {
hsotg            1099 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "FS PHY enabling I2C\n");
hsotg            1102 drivers/usb/dwc2/core.c 		usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            1104 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg            1107 drivers/usb/dwc2/core.c 		i2cctl = dwc2_readl(hsotg, GI2CCTL);
hsotg            1111 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, i2cctl, GI2CCTL);
hsotg            1113 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, i2cctl, GI2CCTL);
hsotg            1119 drivers/usb/dwc2/core.c static int dwc2_hs_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
hsotg            1127 drivers/usb/dwc2/core.c 	usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            1135 drivers/usb/dwc2/core.c 	switch (hsotg->params.phy_type) {
hsotg            1138 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HS ULPI PHY selected\n");
hsotg            1141 drivers/usb/dwc2/core.c 		if (hsotg->params.phy_ulpi_ddr)
hsotg            1145 drivers/usb/dwc2/core.c 		if (hsotg->params.oc_disable)
hsotg            1151 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "HS UTMI+ PHY selected\n");
hsotg            1153 drivers/usb/dwc2/core.c 		if (hsotg->params.phy_utmi_width == 16)
hsotg            1157 drivers/usb/dwc2/core.c 		if (dwc2_is_device_mode(hsotg)) {
hsotg            1159 drivers/usb/dwc2/core.c 			if (hsotg->params.phy_utmi_width == 16)
hsotg            1166 drivers/usb/dwc2/core.c 		dev_err(hsotg->dev, "FS PHY selected at HS!\n");
hsotg            1171 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg            1174 drivers/usb/dwc2/core.c 		retval = dwc2_core_reset(hsotg, false);
hsotg            1176 drivers/usb/dwc2/core.c 			dev_err(hsotg->dev,
hsotg            1185 drivers/usb/dwc2/core.c int dwc2_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
hsotg            1190 drivers/usb/dwc2/core.c 	if ((hsotg->params.speed == DWC2_SPEED_PARAM_FULL ||
hsotg            1191 drivers/usb/dwc2/core.c 	     hsotg->params.speed == DWC2_SPEED_PARAM_LOW) &&
hsotg            1192 drivers/usb/dwc2/core.c 	    hsotg->params.phy_type == DWC2_PHY_TYPE_PARAM_FS) {
hsotg            1194 drivers/usb/dwc2/core.c 		retval = dwc2_fs_phy_init(hsotg, select_phy);
hsotg            1199 drivers/usb/dwc2/core.c 		retval = dwc2_hs_phy_init(hsotg, select_phy);
hsotg            1204 drivers/usb/dwc2/core.c 	if (hsotg->hw_params.hs_phy_type == GHWCFG2_HS_PHY_TYPE_ULPI &&
hsotg            1205 drivers/usb/dwc2/core.c 	    hsotg->hw_params.fs_phy_type == GHWCFG2_FS_PHY_TYPE_DEDICATED &&
hsotg            1206 drivers/usb/dwc2/core.c 	    hsotg->params.ulpi_fs_ls) {
hsotg            1207 drivers/usb/dwc2/core.c 		dev_dbg(hsotg->dev, "Setting ULPI FSLS\n");
hsotg            1208 drivers/usb/dwc2/core.c 		usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            1211 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg            1213 drivers/usb/dwc2/core.c 		usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            1216 drivers/usb/dwc2/core.c 		dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg              59 drivers/usb/dwc2/core.h #define dwc2_sch_dbg(hsotg, fmt, ...)					\
hsotg              61 drivers/usb/dwc2/core.h 			     dev_name(hsotg->dev), ##__VA_ARGS__)
hsotg              64 drivers/usb/dwc2/core.h #define dwc2_sch_vdbg(hsotg, fmt, ...)					\
hsotg              66 drivers/usb/dwc2/core.h 				dev_name(hsotg->dev), ##__VA_ARGS__)
hsotg            1204 drivers/usb/dwc2/core.h static inline u32 dwc2_readl(struct dwc2_hsotg *hsotg, u32 offset)
hsotg            1208 drivers/usb/dwc2/core.h 	val = readl(hsotg->regs + offset);
hsotg            1209 drivers/usb/dwc2/core.h 	if (hsotg->needs_byte_swap)
hsotg            1215 drivers/usb/dwc2/core.h static inline void dwc2_writel(struct dwc2_hsotg *hsotg, u32 value, u32 offset)
hsotg            1217 drivers/usb/dwc2/core.h 	if (hsotg->needs_byte_swap)
hsotg            1218 drivers/usb/dwc2/core.h 		writel(swab32(value), hsotg->regs + offset);
hsotg            1220 drivers/usb/dwc2/core.h 		writel(value, hsotg->regs + offset);
hsotg            1223 drivers/usb/dwc2/core.h 	pr_info("info:: wrote %08x to %p\n", value, hsotg->regs + offset);
hsotg            1227 drivers/usb/dwc2/core.h static inline void dwc2_readl_rep(struct dwc2_hsotg *hsotg, u32 offset,
hsotg            1234 drivers/usb/dwc2/core.h 			u32 x = dwc2_readl(hsotg, offset);
hsotg            1240 drivers/usb/dwc2/core.h static inline void dwc2_writel_rep(struct dwc2_hsotg *hsotg, u32 offset,
hsotg            1247 drivers/usb/dwc2/core.h 			dwc2_writel(hsotg, *buf++, offset);
hsotg            1271 drivers/usb/dwc2/core.h static inline bool dwc2_is_iot(struct dwc2_hsotg *hsotg)
hsotg            1273 drivers/usb/dwc2/core.h 	return (hsotg->hw_params.snpsid & 0xfff00000) == 0x55300000;
hsotg            1276 drivers/usb/dwc2/core.h static inline bool dwc2_is_fs_iot(struct dwc2_hsotg *hsotg)
hsotg            1278 drivers/usb/dwc2/core.h 	return (hsotg->hw_params.snpsid & 0xffff0000) == 0x55310000;
hsotg            1281 drivers/usb/dwc2/core.h static inline bool dwc2_is_hs_iot(struct dwc2_hsotg *hsotg)
hsotg            1283 drivers/usb/dwc2/core.h 	return (hsotg->hw_params.snpsid & 0xffff0000) == 0x55320000;
hsotg            1290 drivers/usb/dwc2/core.h int dwc2_core_reset(struct dwc2_hsotg *hsotg, bool skip_wait);
hsotg            1291 drivers/usb/dwc2/core.h int dwc2_enter_partial_power_down(struct dwc2_hsotg *hsotg);
hsotg            1292 drivers/usb/dwc2/core.h int dwc2_exit_partial_power_down(struct dwc2_hsotg *hsotg, bool restore);
hsotg            1293 drivers/usb/dwc2/core.h int dwc2_enter_hibernation(struct dwc2_hsotg *hsotg, int is_host);
hsotg            1294 drivers/usb/dwc2/core.h int dwc2_exit_hibernation(struct dwc2_hsotg *hsotg, int rem_wakeup,
hsotg            1296 drivers/usb/dwc2/core.h void dwc2_init_fs_ls_pclk_sel(struct dwc2_hsotg *hsotg);
hsotg            1297 drivers/usb/dwc2/core.h int dwc2_phy_init(struct dwc2_hsotg *hsotg, bool select_phy);
hsotg            1299 drivers/usb/dwc2/core.h void dwc2_force_mode(struct dwc2_hsotg *hsotg, bool host);
hsotg            1300 drivers/usb/dwc2/core.h void dwc2_force_dr_mode(struct dwc2_hsotg *hsotg);
hsotg            1302 drivers/usb/dwc2/core.h bool dwc2_is_controller_alive(struct dwc2_hsotg *hsotg);
hsotg            1309 drivers/usb/dwc2/core.h void dwc2_read_packet(struct dwc2_hsotg *hsotg, u8 *dest, u16 bytes);
hsotg            1310 drivers/usb/dwc2/core.h void dwc2_flush_tx_fifo(struct dwc2_hsotg *hsotg, const int num);
hsotg            1311 drivers/usb/dwc2/core.h void dwc2_flush_rx_fifo(struct dwc2_hsotg *hsotg);
hsotg            1316 drivers/usb/dwc2/core.h void dwc2_hib_restore_common(struct dwc2_hsotg *hsotg, int rem_wakeup,
hsotg            1318 drivers/usb/dwc2/core.h int dwc2_backup_global_registers(struct dwc2_hsotg *hsotg);
hsotg            1319 drivers/usb/dwc2/core.h int dwc2_restore_global_registers(struct dwc2_hsotg *hsotg);
hsotg            1321 drivers/usb/dwc2/core.h void dwc2_enable_acg(struct dwc2_hsotg *hsotg);
hsotg            1329 drivers/usb/dwc2/core.h int dwc2_lowlevel_hw_enable(struct dwc2_hsotg *hsotg);
hsotg            1330 drivers/usb/dwc2/core.h int dwc2_lowlevel_hw_disable(struct dwc2_hsotg *hsotg);
hsotg            1338 drivers/usb/dwc2/core.h int dwc2_get_hwparams(struct dwc2_hsotg *hsotg);
hsotg            1339 drivers/usb/dwc2/core.h int dwc2_init_params(struct dwc2_hsotg *hsotg);
hsotg            1349 drivers/usb/dwc2/core.h unsigned int dwc2_op_mode(struct dwc2_hsotg *hsotg);
hsotg            1350 drivers/usb/dwc2/core.h bool dwc2_hw_is_otg(struct dwc2_hsotg *hsotg);
hsotg            1351 drivers/usb/dwc2/core.h bool dwc2_hw_is_host(struct dwc2_hsotg *hsotg);
hsotg            1352 drivers/usb/dwc2/core.h bool dwc2_hw_is_device(struct dwc2_hsotg *hsotg);
hsotg            1357 drivers/usb/dwc2/core.h static inline int dwc2_is_host_mode(struct dwc2_hsotg *hsotg)
hsotg            1359 drivers/usb/dwc2/core.h 	return (dwc2_readl(hsotg, GINTSTS) & GINTSTS_CURMODE_HOST) != 0;
hsotg            1362 drivers/usb/dwc2/core.h static inline int dwc2_is_device_mode(struct dwc2_hsotg *hsotg)
hsotg            1364 drivers/usb/dwc2/core.h 	return (dwc2_readl(hsotg, GINTSTS) & GINTSTS_CURMODE_HOST) == 0;
hsotg            1370 drivers/usb/dwc2/core.h void dwc2_dump_dev_registers(struct dwc2_hsotg *hsotg);
hsotg            1371 drivers/usb/dwc2/core.h void dwc2_dump_host_registers(struct dwc2_hsotg *hsotg);
hsotg            1372 drivers/usb/dwc2/core.h void dwc2_dump_global_registers(struct dwc2_hsotg *hsotg);
hsotg            1377 drivers/usb/dwc2/core.h int dwc2_hsotg_remove(struct dwc2_hsotg *hsotg);
hsotg            1380 drivers/usb/dwc2/core.h int dwc2_gadget_init(struct dwc2_hsotg *hsotg);
hsotg            1383 drivers/usb/dwc2/core.h void dwc2_hsotg_core_connect(struct dwc2_hsotg *hsotg);
hsotg            1385 drivers/usb/dwc2/core.h int dwc2_hsotg_set_test_mode(struct dwc2_hsotg *hsotg, int testmode);
hsotg            1386 drivers/usb/dwc2/core.h #define dwc2_is_device_connected(hsotg) (hsotg->connected)
hsotg            1387 drivers/usb/dwc2/core.h int dwc2_backup_device_registers(struct dwc2_hsotg *hsotg);
hsotg            1388 drivers/usb/dwc2/core.h int dwc2_restore_device_registers(struct dwc2_hsotg *hsotg, int remote_wakeup);
hsotg            1389 drivers/usb/dwc2/core.h int dwc2_gadget_enter_hibernation(struct dwc2_hsotg *hsotg);
hsotg            1390 drivers/usb/dwc2/core.h int dwc2_gadget_exit_hibernation(struct dwc2_hsotg *hsotg,
hsotg            1392 drivers/usb/dwc2/core.h int dwc2_hsotg_tx_fifo_count(struct dwc2_hsotg *hsotg);
hsotg            1393 drivers/usb/dwc2/core.h int dwc2_hsotg_tx_fifo_total_depth(struct dwc2_hsotg *hsotg);
hsotg            1394 drivers/usb/dwc2/core.h int dwc2_hsotg_tx_fifo_average_depth(struct dwc2_hsotg *hsotg);
hsotg            1395 drivers/usb/dwc2/core.h void dwc2_gadget_init_lpm(struct dwc2_hsotg *hsotg);
hsotg            1396 drivers/usb/dwc2/core.h void dwc2_gadget_program_ref_clk(struct dwc2_hsotg *hsotg);
hsotg            1404 drivers/usb/dwc2/core.h static inline int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
hsotg            1408 drivers/usb/dwc2/core.h static inline void dwc2_hsotg_core_connect(struct dwc2_hsotg *hsotg) {}
hsotg            1410 drivers/usb/dwc2/core.h static inline int dwc2_hsotg_set_test_mode(struct dwc2_hsotg *hsotg,
hsotg            1413 drivers/usb/dwc2/core.h #define dwc2_is_device_connected(hsotg) (0)
hsotg            1414 drivers/usb/dwc2/core.h static inline int dwc2_backup_device_registers(struct dwc2_hsotg *hsotg)
hsotg            1416 drivers/usb/dwc2/core.h static inline int dwc2_restore_device_registers(struct dwc2_hsotg *hsotg,
hsotg            1419 drivers/usb/dwc2/core.h static inline int dwc2_gadget_enter_hibernation(struct dwc2_hsotg *hsotg)
hsotg            1421 drivers/usb/dwc2/core.h static inline int dwc2_gadget_exit_hibernation(struct dwc2_hsotg *hsotg,
hsotg            1424 drivers/usb/dwc2/core.h static inline int dwc2_hsotg_tx_fifo_count(struct dwc2_hsotg *hsotg)
hsotg            1426 drivers/usb/dwc2/core.h static inline int dwc2_hsotg_tx_fifo_total_depth(struct dwc2_hsotg *hsotg)
hsotg            1428 drivers/usb/dwc2/core.h static inline int dwc2_hsotg_tx_fifo_average_depth(struct dwc2_hsotg *hsotg)
hsotg            1430 drivers/usb/dwc2/core.h static inline void dwc2_gadget_init_lpm(struct dwc2_hsotg *hsotg) {}
hsotg            1431 drivers/usb/dwc2/core.h static inline void dwc2_gadget_program_ref_clk(struct dwc2_hsotg *hsotg) {}
hsotg            1435 drivers/usb/dwc2/core.h int dwc2_hcd_get_frame_number(struct dwc2_hsotg *hsotg);
hsotg            1436 drivers/usb/dwc2/core.h int dwc2_hcd_get_future_frame_number(struct dwc2_hsotg *hsotg, int us);
hsotg            1437 drivers/usb/dwc2/core.h void dwc2_hcd_connect(struct dwc2_hsotg *hsotg);
hsotg            1438 drivers/usb/dwc2/core.h void dwc2_hcd_disconnect(struct dwc2_hsotg *hsotg, bool force);
hsotg            1439 drivers/usb/dwc2/core.h void dwc2_hcd_start(struct dwc2_hsotg *hsotg);
hsotg            1440 drivers/usb/dwc2/core.h int dwc2_core_init(struct dwc2_hsotg *hsotg, bool initial_setup);
hsotg            1441 drivers/usb/dwc2/core.h int dwc2_backup_host_registers(struct dwc2_hsotg *hsotg);
hsotg            1442 drivers/usb/dwc2/core.h int dwc2_restore_host_registers(struct dwc2_hsotg *hsotg);
hsotg            1443 drivers/usb/dwc2/core.h int dwc2_host_enter_hibernation(struct dwc2_hsotg *hsotg);
hsotg            1444 drivers/usb/dwc2/core.h int dwc2_host_exit_hibernation(struct dwc2_hsotg *hsotg,
hsotg            1447 drivers/usb/dwc2/core.h static inline void dwc2_host_schedule_phy_reset(struct dwc2_hsotg *hsotg)
hsotg            1448 drivers/usb/dwc2/core.h { schedule_work(&hsotg->phy_reset_work); }
hsotg            1450 drivers/usb/dwc2/core.h static inline int dwc2_hcd_get_frame_number(struct dwc2_hsotg *hsotg)
hsotg            1452 drivers/usb/dwc2/core.h static inline int dwc2_hcd_get_future_frame_number(struct dwc2_hsotg *hsotg,
hsotg            1455 drivers/usb/dwc2/core.h static inline void dwc2_hcd_connect(struct dwc2_hsotg *hsotg) {}
hsotg            1456 drivers/usb/dwc2/core.h static inline void dwc2_hcd_disconnect(struct dwc2_hsotg *hsotg, bool force) {}
hsotg            1457 drivers/usb/dwc2/core.h static inline void dwc2_hcd_start(struct dwc2_hsotg *hsotg) {}
hsotg            1458 drivers/usb/dwc2/core.h static inline void dwc2_hcd_remove(struct dwc2_hsotg *hsotg) {}
hsotg            1459 drivers/usb/dwc2/core.h static inline int dwc2_core_init(struct dwc2_hsotg *hsotg, bool initial_setup)
hsotg            1461 drivers/usb/dwc2/core.h static inline int dwc2_hcd_init(struct dwc2_hsotg *hsotg)
hsotg            1463 drivers/usb/dwc2/core.h static inline int dwc2_backup_host_registers(struct dwc2_hsotg *hsotg)
hsotg            1465 drivers/usb/dwc2/core.h static inline int dwc2_restore_host_registers(struct dwc2_hsotg *hsotg)
hsotg            1467 drivers/usb/dwc2/core.h static inline int dwc2_host_enter_hibernation(struct dwc2_hsotg *hsotg)
hsotg            1469 drivers/usb/dwc2/core.h static inline int dwc2_host_exit_hibernation(struct dwc2_hsotg *hsotg,
hsotg            1474 drivers/usb/dwc2/core.h static inline void dwc2_host_schedule_phy_reset(struct dwc2_hsotg *hsotg) {}
hsotg              57 drivers/usb/dwc2/core_intr.c static const char *dwc2_op_state_str(struct dwc2_hsotg *hsotg)
hsotg              59 drivers/usb/dwc2/core_intr.c 	switch (hsotg->op_state) {
hsotg              82 drivers/usb/dwc2/core_intr.c static void dwc2_handle_usb_port_intr(struct dwc2_hsotg *hsotg)
hsotg              84 drivers/usb/dwc2/core_intr.c 	u32 hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg              88 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, hprt0, HPRT0);
hsotg              97 drivers/usb/dwc2/core_intr.c static void dwc2_handle_mode_mismatch_intr(struct dwc2_hsotg *hsotg)
hsotg             100 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, GINTSTS_MODEMIS, GINTSTS);
hsotg             102 drivers/usb/dwc2/core_intr.c 	dev_warn(hsotg->dev, "Mode Mismatch Interrupt: currently in %s mode\n",
hsotg             103 drivers/usb/dwc2/core_intr.c 		 dwc2_is_host_mode(hsotg) ? "Host" : "Device");
hsotg             112 drivers/usb/dwc2/core_intr.c static void dwc2_handle_otg_intr(struct dwc2_hsotg *hsotg)
hsotg             118 drivers/usb/dwc2/core_intr.c 	gotgint = dwc2_readl(hsotg, GOTGINT);
hsotg             119 drivers/usb/dwc2/core_intr.c 	gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             120 drivers/usb/dwc2/core_intr.c 	dev_dbg(hsotg->dev, "++OTG Interrupt gotgint=%0x [%s]\n", gotgint,
hsotg             121 drivers/usb/dwc2/core_intr.c 		dwc2_op_state_str(hsotg));
hsotg             124 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev,
hsotg             126 drivers/usb/dwc2/core_intr.c 			dwc2_op_state_str(hsotg));
hsotg             127 drivers/usb/dwc2/core_intr.c 		gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             129 drivers/usb/dwc2/core_intr.c 		if (dwc2_is_device_mode(hsotg))
hsotg             130 drivers/usb/dwc2/core_intr.c 			dwc2_hsotg_disconnect(hsotg);
hsotg             132 drivers/usb/dwc2/core_intr.c 		if (hsotg->op_state == OTG_STATE_B_HOST) {
hsotg             133 drivers/usb/dwc2/core_intr.c 			hsotg->op_state = OTG_STATE_B_PERIPHERAL;
hsotg             140 drivers/usb/dwc2/core_intr.c 				dev_dbg(hsotg->dev, "Session End Detected\n");
hsotg             141 drivers/usb/dwc2/core_intr.c 				dev_err(hsotg->dev,
hsotg             150 drivers/usb/dwc2/core_intr.c 			hsotg->lx_state = DWC2_L0;
hsotg             153 drivers/usb/dwc2/core_intr.c 		gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             155 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, gotgctl, GOTGCTL);
hsotg             159 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev,
hsotg             161 drivers/usb/dwc2/core_intr.c 		gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             163 drivers/usb/dwc2/core_intr.c 			if (hsotg->params.phy_type == DWC2_PHY_TYPE_PARAM_FS &&
hsotg             164 drivers/usb/dwc2/core_intr.c 			    hsotg->params.i2c_enable) {
hsotg             165 drivers/usb/dwc2/core_intr.c 				hsotg->srp_success = 1;
hsotg             168 drivers/usb/dwc2/core_intr.c 				gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             170 drivers/usb/dwc2/core_intr.c 				dwc2_writel(hsotg, gotgctl, GOTGCTL);
hsotg             180 drivers/usb/dwc2/core_intr.c 		gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             185 drivers/usb/dwc2/core_intr.c 		if (hsotg->hw_params.snpsid >= DWC2_CORE_REV_3_00a)
hsotg             188 drivers/usb/dwc2/core_intr.c 			if (dwc2_is_host_mode(hsotg)) {
hsotg             189 drivers/usb/dwc2/core_intr.c 				hsotg->op_state = OTG_STATE_B_HOST;
hsotg             200 drivers/usb/dwc2/core_intr.c 				gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             202 drivers/usb/dwc2/core_intr.c 				dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg             208 drivers/usb/dwc2/core_intr.c 				spin_unlock(&hsotg->lock);
hsotg             211 drivers/usb/dwc2/core_intr.c 				dwc2_hcd_start(hsotg);
hsotg             212 drivers/usb/dwc2/core_intr.c 				spin_lock(&hsotg->lock);
hsotg             213 drivers/usb/dwc2/core_intr.c 				hsotg->op_state = OTG_STATE_B_HOST;
hsotg             216 drivers/usb/dwc2/core_intr.c 			gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg             218 drivers/usb/dwc2/core_intr.c 			dwc2_writel(hsotg, gotgctl, GOTGCTL);
hsotg             219 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev, "HNP Failed\n");
hsotg             220 drivers/usb/dwc2/core_intr.c 			dev_err(hsotg->dev,
hsotg             232 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev,
hsotg             234 drivers/usb/dwc2/core_intr.c 			(dwc2_is_host_mode(hsotg) ? "Host" : "Device"));
hsotg             235 drivers/usb/dwc2/core_intr.c 		if (dwc2_is_device_mode(hsotg)) {
hsotg             236 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev, "a_suspend->a_peripheral (%d)\n",
hsotg             237 drivers/usb/dwc2/core_intr.c 				hsotg->op_state);
hsotg             238 drivers/usb/dwc2/core_intr.c 			spin_unlock(&hsotg->lock);
hsotg             239 drivers/usb/dwc2/core_intr.c 			dwc2_hcd_disconnect(hsotg, false);
hsotg             240 drivers/usb/dwc2/core_intr.c 			spin_lock(&hsotg->lock);
hsotg             241 drivers/usb/dwc2/core_intr.c 			hsotg->op_state = OTG_STATE_A_PERIPHERAL;
hsotg             244 drivers/usb/dwc2/core_intr.c 			gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             246 drivers/usb/dwc2/core_intr.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg             247 drivers/usb/dwc2/core_intr.c 			spin_unlock(&hsotg->lock);
hsotg             248 drivers/usb/dwc2/core_intr.c 			dwc2_hcd_start(hsotg);
hsotg             249 drivers/usb/dwc2/core_intr.c 			spin_lock(&hsotg->lock);
hsotg             250 drivers/usb/dwc2/core_intr.c 			hsotg->op_state = OTG_STATE_A_HOST;
hsotg             255 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev,
hsotg             258 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, " ++OTG Interrupt: Debounce Done++\n");
hsotg             261 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, gotgint, GOTGINT);
hsotg             274 drivers/usb/dwc2/core_intr.c static void dwc2_handle_conn_id_status_change_intr(struct dwc2_hsotg *hsotg)
hsotg             279 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, GINTSTS_CONIDSTSCHNG, GINTSTS);
hsotg             282 drivers/usb/dwc2/core_intr.c 	gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             284 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg             286 drivers/usb/dwc2/core_intr.c 	dev_dbg(hsotg->dev, " ++Connector ID Status Change Interrupt++  (%s)\n",
hsotg             287 drivers/usb/dwc2/core_intr.c 		dwc2_is_host_mode(hsotg) ? "Host" : "Device");
hsotg             294 drivers/usb/dwc2/core_intr.c 	if (hsotg->wq_otg) {
hsotg             295 drivers/usb/dwc2/core_intr.c 		spin_unlock(&hsotg->lock);
hsotg             296 drivers/usb/dwc2/core_intr.c 		queue_work(hsotg->wq_otg, &hsotg->wf_otg);
hsotg             297 drivers/usb/dwc2/core_intr.c 		spin_lock(&hsotg->lock);
hsotg             312 drivers/usb/dwc2/core_intr.c static void dwc2_handle_session_req_intr(struct dwc2_hsotg *hsotg)
hsotg             317 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, GINTSTS_SESSREQINT, GINTSTS);
hsotg             319 drivers/usb/dwc2/core_intr.c 	dev_dbg(hsotg->dev, "Session request interrupt - lx_state=%d\n",
hsotg             320 drivers/usb/dwc2/core_intr.c 		hsotg->lx_state);
hsotg             322 drivers/usb/dwc2/core_intr.c 	if (dwc2_is_device_mode(hsotg)) {
hsotg             323 drivers/usb/dwc2/core_intr.c 		if (hsotg->lx_state == DWC2_L2) {
hsotg             324 drivers/usb/dwc2/core_intr.c 			ret = dwc2_exit_partial_power_down(hsotg, true);
hsotg             326 drivers/usb/dwc2/core_intr.c 				dev_err(hsotg->dev,
hsotg             334 drivers/usb/dwc2/core_intr.c 		dwc2_hsotg_disconnect(hsotg);
hsotg             344 drivers/usb/dwc2/core_intr.c static void dwc2_wakeup_from_lpm_l1(struct dwc2_hsotg *hsotg)
hsotg             349 drivers/usb/dwc2/core_intr.c 	if (hsotg->lx_state != DWC2_L1) {
hsotg             350 drivers/usb/dwc2/core_intr.c 		dev_err(hsotg->dev, "Core isn't in DWC2_L1 state\n");
hsotg             354 drivers/usb/dwc2/core_intr.c 	glpmcfg = dwc2_readl(hsotg, GLPMCFG);
hsotg             355 drivers/usb/dwc2/core_intr.c 	if (dwc2_is_device_mode(hsotg)) {
hsotg             356 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "Exit from L1 state\n");
hsotg             359 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, glpmcfg, GLPMCFG);
hsotg             362 drivers/usb/dwc2/core_intr.c 			glpmcfg = dwc2_readl(hsotg, GLPMCFG);
hsotg             372 drivers/usb/dwc2/core_intr.c 			dev_err(hsotg->dev, "Failed to exit L1 sleep state in 200us.\n");
hsotg             375 drivers/usb/dwc2/core_intr.c 		dwc2_gadget_init_lpm(hsotg);
hsotg             378 drivers/usb/dwc2/core_intr.c 		dev_err(hsotg->dev, "Host side LPM is not supported.\n");
hsotg             383 drivers/usb/dwc2/core_intr.c 	hsotg->lx_state = DWC2_L0;
hsotg             386 drivers/usb/dwc2/core_intr.c 	call_gadget(hsotg, resume);
hsotg             396 drivers/usb/dwc2/core_intr.c static void dwc2_handle_wakeup_detected_intr(struct dwc2_hsotg *hsotg)
hsotg             401 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, GINTSTS_WKUPINT, GINTSTS);
hsotg             403 drivers/usb/dwc2/core_intr.c 	dev_dbg(hsotg->dev, "++Resume or Remote Wakeup Detected Interrupt++\n");
hsotg             404 drivers/usb/dwc2/core_intr.c 	dev_dbg(hsotg->dev, "%s lxstate = %d\n", __func__, hsotg->lx_state);
hsotg             406 drivers/usb/dwc2/core_intr.c 	if (hsotg->lx_state == DWC2_L1) {
hsotg             407 drivers/usb/dwc2/core_intr.c 		dwc2_wakeup_from_lpm_l1(hsotg);
hsotg             411 drivers/usb/dwc2/core_intr.c 	if (dwc2_is_device_mode(hsotg)) {
hsotg             412 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "DSTS=0x%0x\n",
hsotg             413 drivers/usb/dwc2/core_intr.c 			dwc2_readl(hsotg, DSTS));
hsotg             414 drivers/usb/dwc2/core_intr.c 		if (hsotg->lx_state == DWC2_L2) {
hsotg             415 drivers/usb/dwc2/core_intr.c 			u32 dctl = dwc2_readl(hsotg, DCTL);
hsotg             419 drivers/usb/dwc2/core_intr.c 			dwc2_writel(hsotg, dctl, DCTL);
hsotg             420 drivers/usb/dwc2/core_intr.c 			ret = dwc2_exit_partial_power_down(hsotg, true);
hsotg             422 drivers/usb/dwc2/core_intr.c 				dev_err(hsotg->dev, "exit power_down failed\n");
hsotg             424 drivers/usb/dwc2/core_intr.c 			call_gadget(hsotg, resume);
hsotg             427 drivers/usb/dwc2/core_intr.c 		hsotg->lx_state = DWC2_L0;
hsotg             429 drivers/usb/dwc2/core_intr.c 		if (hsotg->params.power_down)
hsotg             432 drivers/usb/dwc2/core_intr.c 		if (hsotg->lx_state != DWC2_L1) {
hsotg             433 drivers/usb/dwc2/core_intr.c 			u32 pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg             437 drivers/usb/dwc2/core_intr.c 			dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             447 drivers/usb/dwc2/core_intr.c 			if (hsotg->reset_phy_on_wake)
hsotg             448 drivers/usb/dwc2/core_intr.c 				dwc2_host_schedule_phy_reset(hsotg);
hsotg             450 drivers/usb/dwc2/core_intr.c 			mod_timer(&hsotg->wkp_timer,
hsotg             454 drivers/usb/dwc2/core_intr.c 			hsotg->lx_state = DWC2_L0;
hsotg             463 drivers/usb/dwc2/core_intr.c static void dwc2_handle_disconnect_intr(struct dwc2_hsotg *hsotg)
hsotg             465 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, GINTSTS_DISCONNINT, GINTSTS);
hsotg             467 drivers/usb/dwc2/core_intr.c 	dev_dbg(hsotg->dev, "++Disconnect Detected Interrupt++ (%s) %s\n",
hsotg             468 drivers/usb/dwc2/core_intr.c 		dwc2_is_host_mode(hsotg) ? "Host" : "Device",
hsotg             469 drivers/usb/dwc2/core_intr.c 		dwc2_op_state_str(hsotg));
hsotg             471 drivers/usb/dwc2/core_intr.c 	if (hsotg->op_state == OTG_STATE_A_HOST)
hsotg             472 drivers/usb/dwc2/core_intr.c 		dwc2_hcd_disconnect(hsotg, false);
hsotg             483 drivers/usb/dwc2/core_intr.c static void dwc2_handle_usb_suspend_intr(struct dwc2_hsotg *hsotg)
hsotg             489 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, GINTSTS_USBSUSP, GINTSTS);
hsotg             491 drivers/usb/dwc2/core_intr.c 	dev_dbg(hsotg->dev, "USB SUSPEND\n");
hsotg             493 drivers/usb/dwc2/core_intr.c 	if (dwc2_is_device_mode(hsotg)) {
hsotg             498 drivers/usb/dwc2/core_intr.c 		dsts = dwc2_readl(hsotg, DSTS);
hsotg             499 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "%s: DSTS=0x%0x\n", __func__, dsts);
hsotg             500 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev,
hsotg             503 drivers/usb/dwc2/core_intr.c 			hsotg->hw_params.power_optimized,
hsotg             504 drivers/usb/dwc2/core_intr.c 			hsotg->hw_params.hibernation);
hsotg             507 drivers/usb/dwc2/core_intr.c 		if (!dwc2_is_device_connected(hsotg)) {
hsotg             508 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev,
hsotg             513 drivers/usb/dwc2/core_intr.c 			if (hsotg->hw_params.power_optimized) {
hsotg             514 drivers/usb/dwc2/core_intr.c 				ret = dwc2_enter_partial_power_down(hsotg);
hsotg             517 drivers/usb/dwc2/core_intr.c 						dev_err(hsotg->dev,
hsotg             526 drivers/usb/dwc2/core_intr.c 				if (!IS_ERR_OR_NULL(hsotg->uphy))
hsotg             527 drivers/usb/dwc2/core_intr.c 					usb_phy_set_suspend(hsotg->uphy, true);
hsotg             530 drivers/usb/dwc2/core_intr.c 			if (hsotg->hw_params.hibernation) {
hsotg             531 drivers/usb/dwc2/core_intr.c 				ret = dwc2_enter_hibernation(hsotg, 0);
hsotg             533 drivers/usb/dwc2/core_intr.c 					dev_err(hsotg->dev,
hsotg             542 drivers/usb/dwc2/core_intr.c 			hsotg->lx_state = DWC2_L2;
hsotg             545 drivers/usb/dwc2/core_intr.c 			call_gadget(hsotg, suspend);
hsotg             548 drivers/usb/dwc2/core_intr.c 		if (hsotg->op_state == OTG_STATE_A_PERIPHERAL) {
hsotg             549 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev, "a_peripheral->a_host\n");
hsotg             552 drivers/usb/dwc2/core_intr.c 			hsotg->lx_state = DWC2_L2;
hsotg             554 drivers/usb/dwc2/core_intr.c 			spin_unlock(&hsotg->lock);
hsotg             555 drivers/usb/dwc2/core_intr.c 			dwc2_hcd_start(hsotg);
hsotg             556 drivers/usb/dwc2/core_intr.c 			spin_lock(&hsotg->lock);
hsotg             557 drivers/usb/dwc2/core_intr.c 			hsotg->op_state = OTG_STATE_A_HOST;
hsotg             568 drivers/usb/dwc2/core_intr.c static void dwc2_handle_lpm_intr(struct dwc2_hsotg *hsotg)
hsotg             578 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, GINTSTS_LPMTRANRCVD, GINTSTS);
hsotg             580 drivers/usb/dwc2/core_intr.c 	glpmcfg = dwc2_readl(hsotg, GLPMCFG);
hsotg             583 drivers/usb/dwc2/core_intr.c 		dev_err(hsotg->dev, "Unexpected LPM interrupt\n");
hsotg             593 drivers/usb/dwc2/core_intr.c 	if (dwc2_is_device_mode(hsotg)) {
hsotg             594 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "HIRD_THRES_EN = %d\n", hird_thres_en);
hsotg             597 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev, "L1 with utmi_l1_suspend_n\n");
hsotg             599 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev, "L1 with utmi_sleep_n\n");
hsotg             601 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev, "Entering Sleep with L1 Gating\n");
hsotg             603 drivers/usb/dwc2/core_intr.c 			pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg             605 drivers/usb/dwc2/core_intr.c 			dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg             612 drivers/usb/dwc2/core_intr.c 		glpmcfg = dwc2_readl(hsotg, GLPMCFG);
hsotg             616 drivers/usb/dwc2/core_intr.c 			hsotg->lx_state = DWC2_L1;
hsotg             617 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev,
hsotg             621 drivers/usb/dwc2/core_intr.c 			call_gadget(hsotg, suspend);
hsotg             635 drivers/usb/dwc2/core_intr.c static u32 dwc2_read_common_intr(struct dwc2_hsotg *hsotg)
hsotg             642 drivers/usb/dwc2/core_intr.c 	gintsts = dwc2_readl(hsotg, GINTSTS);
hsotg             643 drivers/usb/dwc2/core_intr.c 	gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             644 drivers/usb/dwc2/core_intr.c 	gahbcfg = dwc2_readl(hsotg, GAHBCFG);
hsotg             648 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "gintsts=%08x  gintmsk=%08x\n",
hsotg             663 drivers/usb/dwc2/core_intr.c static void dwc2_handle_gpwrdn_intr(struct dwc2_hsotg *hsotg)
hsotg             668 drivers/usb/dwc2/core_intr.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg             670 drivers/usb/dwc2/core_intr.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg             672 drivers/usb/dwc2/core_intr.c 	dev_dbg(hsotg->dev,
hsotg             680 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "%s: GPWRDN_DISCONN_DET\n", __func__);
hsotg             683 drivers/usb/dwc2/core_intr.c 		gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN);
hsotg             685 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN);
hsotg             689 drivers/usb/dwc2/core_intr.c 		gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN);
hsotg             691 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN);
hsotg             695 drivers/usb/dwc2/core_intr.c 		gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN);
hsotg             697 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN);
hsotg             701 drivers/usb/dwc2/core_intr.c 		gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN);
hsotg             703 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN);
hsotg             707 drivers/usb/dwc2/core_intr.c 		gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN);
hsotg             709 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN);
hsotg             712 drivers/usb/dwc2/core_intr.c 		gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN);
hsotg             714 drivers/usb/dwc2/core_intr.c 		dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN);
hsotg             716 drivers/usb/dwc2/core_intr.c 		hsotg->hibernated = 0;
hsotg             719 drivers/usb/dwc2/core_intr.c 			hsotg->op_state = OTG_STATE_B_PERIPHERAL;
hsotg             720 drivers/usb/dwc2/core_intr.c 			dwc2_core_init(hsotg, false);
hsotg             721 drivers/usb/dwc2/core_intr.c 			dwc2_enable_global_interrupts(hsotg);
hsotg             722 drivers/usb/dwc2/core_intr.c 			dwc2_hsotg_core_init_disconnected(hsotg, false);
hsotg             723 drivers/usb/dwc2/core_intr.c 			dwc2_hsotg_core_connect(hsotg);
hsotg             725 drivers/usb/dwc2/core_intr.c 			hsotg->op_state = OTG_STATE_A_HOST;
hsotg             728 drivers/usb/dwc2/core_intr.c 			dwc2_core_init(hsotg, false);
hsotg             729 drivers/usb/dwc2/core_intr.c 			dwc2_enable_global_interrupts(hsotg);
hsotg             730 drivers/usb/dwc2/core_intr.c 			dwc2_hcd_start(hsotg);
hsotg             736 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "%s: GPWRDN_LNSTSCHG\n", __func__);
hsotg             737 drivers/usb/dwc2/core_intr.c 		if (hsotg->hw_params.hibernation &&
hsotg             738 drivers/usb/dwc2/core_intr.c 		    hsotg->hibernated) {
hsotg             740 drivers/usb/dwc2/core_intr.c 				dwc2_exit_hibernation(hsotg, 0, 0, 0);
hsotg             741 drivers/usb/dwc2/core_intr.c 				call_gadget(hsotg, resume);
hsotg             743 drivers/usb/dwc2/core_intr.c 				dwc2_exit_hibernation(hsotg, 1, 0, 1);
hsotg             748 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "%s: GPWRDN_RST_DET\n", __func__);
hsotg             750 drivers/usb/dwc2/core_intr.c 			dwc2_exit_hibernation(hsotg, 0, 1, 0);
hsotg             754 drivers/usb/dwc2/core_intr.c 		dev_dbg(hsotg->dev, "%s: GPWRDN_STS_CHGINT\n", __func__);
hsotg             755 drivers/usb/dwc2/core_intr.c 		if (hsotg->hw_params.hibernation &&
hsotg             756 drivers/usb/dwc2/core_intr.c 		    hsotg->hibernated) {
hsotg             758 drivers/usb/dwc2/core_intr.c 				dwc2_exit_hibernation(hsotg, 0, 0, 0);
hsotg             759 drivers/usb/dwc2/core_intr.c 				call_gadget(hsotg, resume);
hsotg             761 drivers/usb/dwc2/core_intr.c 				dwc2_exit_hibernation(hsotg, 1, 0, 1);
hsotg             782 drivers/usb/dwc2/core_intr.c 	struct dwc2_hsotg *hsotg = dev;
hsotg             786 drivers/usb/dwc2/core_intr.c 	spin_lock(&hsotg->lock);
hsotg             788 drivers/usb/dwc2/core_intr.c 	if (!dwc2_is_controller_alive(hsotg)) {
hsotg             789 drivers/usb/dwc2/core_intr.c 		dev_warn(hsotg->dev, "Controller is dead\n");
hsotg             794 drivers/usb/dwc2/core_intr.c 	if (dwc2_is_device_mode(hsotg))
hsotg             795 drivers/usb/dwc2/core_intr.c 		hsotg->frame_number = (dwc2_readl(hsotg, DSTS)
hsotg             798 drivers/usb/dwc2/core_intr.c 		hsotg->frame_number = (dwc2_readl(hsotg, HFNUM)
hsotg             801 drivers/usb/dwc2/core_intr.c 	gintsts = dwc2_read_common_intr(hsotg);
hsotg             806 drivers/usb/dwc2/core_intr.c 	if (hsotg->hibernated) {
hsotg             807 drivers/usb/dwc2/core_intr.c 		dwc2_handle_gpwrdn_intr(hsotg);
hsotg             813 drivers/usb/dwc2/core_intr.c 		dwc2_handle_mode_mismatch_intr(hsotg);
hsotg             815 drivers/usb/dwc2/core_intr.c 		dwc2_handle_otg_intr(hsotg);
hsotg             817 drivers/usb/dwc2/core_intr.c 		dwc2_handle_conn_id_status_change_intr(hsotg);
hsotg             819 drivers/usb/dwc2/core_intr.c 		dwc2_handle_disconnect_intr(hsotg);
hsotg             821 drivers/usb/dwc2/core_intr.c 		dwc2_handle_session_req_intr(hsotg);
hsotg             823 drivers/usb/dwc2/core_intr.c 		dwc2_handle_wakeup_detected_intr(hsotg);
hsotg             825 drivers/usb/dwc2/core_intr.c 		dwc2_handle_usb_suspend_intr(hsotg);
hsotg             827 drivers/usb/dwc2/core_intr.c 		dwc2_handle_lpm_intr(hsotg);
hsotg             834 drivers/usb/dwc2/core_intr.c 		if (dwc2_is_device_mode(hsotg)) {
hsotg             835 drivers/usb/dwc2/core_intr.c 			dev_dbg(hsotg->dev,
hsotg             837 drivers/usb/dwc2/core_intr.c 			dwc2_handle_usb_port_intr(hsotg);
hsotg             843 drivers/usb/dwc2/core_intr.c 	spin_unlock(&hsotg->lock);
hsotg              12 drivers/usb/dwc2/debug.h int dwc2_debugfs_init(struct dwc2_hsotg *hsotg);
hsotg              13 drivers/usb/dwc2/debug.h void dwc2_debugfs_exit(struct dwc2_hsotg *hsotg);
hsotg              15 drivers/usb/dwc2/debug.h static inline int dwc2_debugfs_init(struct dwc2_hsotg *hsotg)
hsotg              17 drivers/usb/dwc2/debug.h static inline void dwc2_debugfs_exit(struct dwc2_hsotg *hsotg)
hsotg              31 drivers/usb/dwc2/debugfs.c 	struct dwc2_hsotg	*hsotg = s->private;
hsotg              52 drivers/usb/dwc2/debugfs.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg              53 drivers/usb/dwc2/debugfs.c 	dwc2_hsotg_set_test_mode(hsotg, testmode);
hsotg              54 drivers/usb/dwc2/debugfs.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg              67 drivers/usb/dwc2/debugfs.c 	struct dwc2_hsotg *hsotg = s->private;
hsotg              71 drivers/usb/dwc2/debugfs.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg              72 drivers/usb/dwc2/debugfs.c 	dctl = dwc2_readl(hsotg, DCTL);
hsotg              75 drivers/usb/dwc2/debugfs.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             128 drivers/usb/dwc2/debugfs.c 	struct dwc2_hsotg *hsotg = seq->private;
hsotg             132 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DCFG),
hsotg             133 drivers/usb/dwc2/debugfs.c 		 dwc2_readl(hsotg, DCTL),
hsotg             134 drivers/usb/dwc2/debugfs.c 		 dwc2_readl(hsotg, DSTS));
hsotg             137 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DIEPMSK), dwc2_readl(hsotg, DOEPMSK));
hsotg             140 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, GINTMSK),
hsotg             141 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, GINTSTS));
hsotg             144 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DAINTMSK),
hsotg             145 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DAINT));
hsotg             148 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, GNPTXSTS),
hsotg             149 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, GRXSTSR));
hsotg             153 drivers/usb/dwc2/debugfs.c 	for (idx = 0; idx < hsotg->num_of_eps; idx++) {
hsotg             156 drivers/usb/dwc2/debugfs.c 		in = dwc2_readl(hsotg, DIEPCTL(idx));
hsotg             157 drivers/usb/dwc2/debugfs.c 		out = dwc2_readl(hsotg, DOEPCTL(idx));
hsotg             162 drivers/usb/dwc2/debugfs.c 		in = dwc2_readl(hsotg, DIEPTSIZ(idx));
hsotg             163 drivers/usb/dwc2/debugfs.c 		out = dwc2_readl(hsotg, DOEPTSIZ(idx));
hsotg             185 drivers/usb/dwc2/debugfs.c 	struct dwc2_hsotg *hsotg = seq->private;
hsotg             190 drivers/usb/dwc2/debugfs.c 	seq_printf(seq, "RXFIFO: Size %d\n", dwc2_readl(hsotg, GRXFSIZ));
hsotg             192 drivers/usb/dwc2/debugfs.c 	val = dwc2_readl(hsotg, GNPTXFSIZ);
hsotg             199 drivers/usb/dwc2/debugfs.c 	for (idx = 1; idx < hsotg->num_of_eps; idx++) {
hsotg             200 drivers/usb/dwc2/debugfs.c 		val = dwc2_readl(hsotg, DPTXFSIZN(idx));
hsotg             227 drivers/usb/dwc2/debugfs.c 	struct dwc2_hsotg *hsotg = ep->parent;
hsotg             239 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DIEPCTL(index)),
hsotg             240 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DOEPCTL(index)));
hsotg             243 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DIEPDMA(index)),
hsotg             244 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DOEPDMA(index)));
hsotg             247 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DIEPINT(index)),
hsotg             248 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DOEPINT(index)));
hsotg             251 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DIEPTSIZ(index)),
hsotg             252 drivers/usb/dwc2/debugfs.c 		   dwc2_readl(hsotg, DOEPTSIZ(index)));
hsotg             261 drivers/usb/dwc2/debugfs.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg             276 drivers/usb/dwc2/debugfs.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             291 drivers/usb/dwc2/debugfs.c static void dwc2_hsotg_create_debug(struct dwc2_hsotg *hsotg)
hsotg             296 drivers/usb/dwc2/debugfs.c 	root = hsotg->debug_root;
hsotg             299 drivers/usb/dwc2/debugfs.c 	debugfs_create_file("state", 0444, root, hsotg, &state_fops);
hsotg             300 drivers/usb/dwc2/debugfs.c 	debugfs_create_file("testmode", 0644, root, hsotg, &testmode_fops);
hsotg             301 drivers/usb/dwc2/debugfs.c 	debugfs_create_file("fifo", 0444, root, hsotg, &fifo_fops);
hsotg             304 drivers/usb/dwc2/debugfs.c 	for (epidx = 0; epidx < hsotg->num_of_eps; epidx++) {
hsotg             307 drivers/usb/dwc2/debugfs.c 		ep = hsotg->eps_out[epidx];
hsotg             312 drivers/usb/dwc2/debugfs.c 	for (epidx = 1; epidx < hsotg->num_of_eps; epidx++) {
hsotg             315 drivers/usb/dwc2/debugfs.c 		ep = hsotg->eps_in[epidx];
hsotg             321 drivers/usb/dwc2/debugfs.c static inline void dwc2_hsotg_create_debug(struct dwc2_hsotg *hsotg) {}
hsotg             668 drivers/usb/dwc2/debugfs.c 	struct dwc2_hsotg *hsotg = seq->private;
hsotg             669 drivers/usb/dwc2/debugfs.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             724 drivers/usb/dwc2/debugfs.c 	struct dwc2_hsotg *hsotg = seq->private;
hsotg             725 drivers/usb/dwc2/debugfs.c 	struct dwc2_hw_params *hw = &hsotg->hw_params;
hsotg             759 drivers/usb/dwc2/debugfs.c 	struct dwc2_hsotg *hsotg = seq->private;
hsotg             762 drivers/usb/dwc2/debugfs.c 	device_property_read_string(hsotg->dev, "dr_mode", &dr_mode);
hsotg             768 drivers/usb/dwc2/debugfs.c int dwc2_debugfs_init(struct dwc2_hsotg *hsotg)
hsotg             773 drivers/usb/dwc2/debugfs.c 	root = debugfs_create_dir(dev_name(hsotg->dev), NULL);
hsotg             774 drivers/usb/dwc2/debugfs.c 	hsotg->debug_root = root;
hsotg             776 drivers/usb/dwc2/debugfs.c 	debugfs_create_file("params", 0444, root, hsotg, &params_fops);
hsotg             777 drivers/usb/dwc2/debugfs.c 	debugfs_create_file("hw_params", 0444, root, hsotg, &hw_params_fops);
hsotg             778 drivers/usb/dwc2/debugfs.c 	debugfs_create_file("dr_mode", 0444, root, hsotg, &dr_mode_fops);
hsotg             781 drivers/usb/dwc2/debugfs.c 	dwc2_hsotg_create_debug(hsotg);
hsotg             783 drivers/usb/dwc2/debugfs.c 	hsotg->regset = devm_kzalloc(hsotg->dev, sizeof(*hsotg->regset),
hsotg             785 drivers/usb/dwc2/debugfs.c 	if (!hsotg->regset) {
hsotg             790 drivers/usb/dwc2/debugfs.c 	hsotg->regset->regs = dwc2_regs;
hsotg             791 drivers/usb/dwc2/debugfs.c 	hsotg->regset->nregs = ARRAY_SIZE(dwc2_regs);
hsotg             792 drivers/usb/dwc2/debugfs.c 	hsotg->regset->base = hsotg->regs;
hsotg             794 drivers/usb/dwc2/debugfs.c 	debugfs_create_regset32("regdump", 0444, root, hsotg->regset);
hsotg             798 drivers/usb/dwc2/debugfs.c 	debugfs_remove_recursive(hsotg->debug_root);
hsotg             802 drivers/usb/dwc2/debugfs.c void dwc2_debugfs_exit(struct dwc2_hsotg *hsotg)
hsotg             804 drivers/usb/dwc2/debugfs.c 	debugfs_remove_recursive(hsotg->debug_root);
hsotg             805 drivers/usb/dwc2/debugfs.c 	hsotg->debug_root = NULL;
hsotg              52 drivers/usb/dwc2/gadget.c static inline void dwc2_set_bit(struct dwc2_hsotg *hsotg, u32 offset, u32 val)
hsotg              54 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dwc2_readl(hsotg, offset) | val, offset);
hsotg              57 drivers/usb/dwc2/gadget.c static inline void dwc2_clear_bit(struct dwc2_hsotg *hsotg, u32 offset, u32 val)
hsotg              59 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dwc2_readl(hsotg, offset) & ~val, offset);
hsotg              62 drivers/usb/dwc2/gadget.c static inline struct dwc2_hsotg_ep *index_to_ep(struct dwc2_hsotg *hsotg,
hsotg              66 drivers/usb/dwc2/gadget.c 		return hsotg->eps_in[ep_index];
hsotg              68 drivers/usb/dwc2/gadget.c 		return hsotg->eps_out[ep_index];
hsotg              72 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_dump(struct dwc2_hsotg *hsotg);
hsotg              93 drivers/usb/dwc2/gadget.c static inline bool using_dma(struct dwc2_hsotg *hsotg)
hsotg              95 drivers/usb/dwc2/gadget.c 	return hsotg->params.g_dma;
hsotg             104 drivers/usb/dwc2/gadget.c static inline bool using_desc_dma(struct dwc2_hsotg *hsotg)
hsotg             106 drivers/usb/dwc2/gadget.c 	return hsotg->params.g_dma_desc;
hsotg             150 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_en_gsint(struct dwc2_hsotg *hsotg, u32 ints)
hsotg             152 drivers/usb/dwc2/gadget.c 	u32 gsintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             158 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "gsintmsk now 0x%08x\n", new_gsintmsk);
hsotg             159 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, new_gsintmsk, GINTMSK);
hsotg             168 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_disable_gsint(struct dwc2_hsotg *hsotg, u32 ints)
hsotg             170 drivers/usb/dwc2/gadget.c 	u32 gsintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             176 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, new_gsintmsk, GINTMSK);
hsotg             189 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_ctrl_epint(struct dwc2_hsotg *hsotg,
hsotg             201 drivers/usb/dwc2/gadget.c 	daint = dwc2_readl(hsotg, DAINTMSK);
hsotg             206 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, daint, DAINTMSK);
hsotg             215 drivers/usb/dwc2/gadget.c int dwc2_hsotg_tx_fifo_count(struct dwc2_hsotg *hsotg)
hsotg             217 drivers/usb/dwc2/gadget.c 	if (hsotg->hw_params.en_multiple_tx_fifo)
hsotg             219 drivers/usb/dwc2/gadget.c 		return hsotg->hw_params.num_dev_in_eps;
hsotg             222 drivers/usb/dwc2/gadget.c 		return hsotg->hw_params.num_dev_perio_in_ep;
hsotg             231 drivers/usb/dwc2/gadget.c int dwc2_hsotg_tx_fifo_total_depth(struct dwc2_hsotg *hsotg)
hsotg             237 drivers/usb/dwc2/gadget.c 	np_tx_fifo_size = min_t(u32, hsotg->hw_params.dev_nperio_tx_fifo_size,
hsotg             238 drivers/usb/dwc2/gadget.c 				hsotg->params.g_np_tx_fifo_size);
hsotg             241 drivers/usb/dwc2/gadget.c 	tx_addr_max = hsotg->hw_params.total_fifo_size;
hsotg             243 drivers/usb/dwc2/gadget.c 	addr = hsotg->params.g_rx_fifo_size + np_tx_fifo_size;
hsotg             256 drivers/usb/dwc2/gadget.c static void dwc2_gadget_wkup_alert_handler(struct dwc2_hsotg *hsotg)
hsotg             261 drivers/usb/dwc2/gadget.c 	gintsts2 = dwc2_readl(hsotg, GINTSTS2);
hsotg             262 drivers/usb/dwc2/gadget.c 	gintmsk2 = dwc2_readl(hsotg, GINTMSK2);
hsotg             265 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: Wkup_Alert_Int\n", __func__);
hsotg             266 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, GINTSTS2, GINTSTS2_WKUP_ALERT_INT);
hsotg             267 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, DCTL, DCTL_RMTWKUPSIG);
hsotg             277 drivers/usb/dwc2/gadget.c int dwc2_hsotg_tx_fifo_average_depth(struct dwc2_hsotg *hsotg)
hsotg             282 drivers/usb/dwc2/gadget.c 	tx_fifo_depth = dwc2_hsotg_tx_fifo_total_depth(hsotg);
hsotg             284 drivers/usb/dwc2/gadget.c 	tx_fifo_count = dwc2_hsotg_tx_fifo_count(hsotg);
hsotg             296 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_init_fifo(struct dwc2_hsotg *hsotg)
hsotg             303 drivers/usb/dwc2/gadget.c 	u32 *txfsz = hsotg->params.g_tx_fifo_size;
hsotg             306 drivers/usb/dwc2/gadget.c 	WARN_ON(hsotg->fifo_map);
hsotg             307 drivers/usb/dwc2/gadget.c 	hsotg->fifo_map = 0;
hsotg             310 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, hsotg->params.g_rx_fifo_size, GRXFSIZ);
hsotg             311 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, (hsotg->params.g_rx_fifo_size <<
hsotg             313 drivers/usb/dwc2/gadget.c 		    (hsotg->params.g_np_tx_fifo_size << FIFOSIZE_DEPTH_SHIFT),
hsotg             324 drivers/usb/dwc2/gadget.c 	addr = hsotg->params.g_rx_fifo_size + hsotg->params.g_np_tx_fifo_size;
hsotg             336 drivers/usb/dwc2/gadget.c 		WARN_ONCE(addr + txfsz[ep] > hsotg->fifo_mem,
hsotg             340 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, val, DPTXFSIZN(ep));
hsotg             341 drivers/usb/dwc2/gadget.c 		val = dwc2_readl(hsotg, DPTXFSIZN(ep));
hsotg             344 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, hsotg->hw_params.total_fifo_size |
hsotg             352 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, GRSTCTL_TXFNUM(0x10) | GRSTCTL_TXFFLSH |
hsotg             358 drivers/usb/dwc2/gadget.c 		val = dwc2_readl(hsotg, GRSTCTL);
hsotg             364 drivers/usb/dwc2/gadget.c 			dev_err(hsotg->dev,
hsotg             373 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "FIFOs reset, timeout at %d\n", timeout);
hsotg             418 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_unmap_dma(struct dwc2_hsotg *hsotg,
hsotg             424 drivers/usb/dwc2/gadget.c 	usb_gadget_unmap_request(&hsotg->gadget, req, hs_ep->dir_in);
hsotg             435 drivers/usb/dwc2/gadget.c static int dwc2_gadget_alloc_ctrl_desc_chains(struct dwc2_hsotg *hsotg)
hsotg             437 drivers/usb/dwc2/gadget.c 	hsotg->setup_desc[0] =
hsotg             438 drivers/usb/dwc2/gadget.c 		dmam_alloc_coherent(hsotg->dev,
hsotg             440 drivers/usb/dwc2/gadget.c 				    &hsotg->setup_desc_dma[0],
hsotg             442 drivers/usb/dwc2/gadget.c 	if (!hsotg->setup_desc[0])
hsotg             445 drivers/usb/dwc2/gadget.c 	hsotg->setup_desc[1] =
hsotg             446 drivers/usb/dwc2/gadget.c 		dmam_alloc_coherent(hsotg->dev,
hsotg             448 drivers/usb/dwc2/gadget.c 				    &hsotg->setup_desc_dma[1],
hsotg             450 drivers/usb/dwc2/gadget.c 	if (!hsotg->setup_desc[1])
hsotg             453 drivers/usb/dwc2/gadget.c 	hsotg->ctrl_in_desc =
hsotg             454 drivers/usb/dwc2/gadget.c 		dmam_alloc_coherent(hsotg->dev,
hsotg             456 drivers/usb/dwc2/gadget.c 				    &hsotg->ctrl_in_desc_dma,
hsotg             458 drivers/usb/dwc2/gadget.c 	if (!hsotg->ctrl_in_desc)
hsotg             461 drivers/usb/dwc2/gadget.c 	hsotg->ctrl_out_desc =
hsotg             462 drivers/usb/dwc2/gadget.c 		dmam_alloc_coherent(hsotg->dev,
hsotg             464 drivers/usb/dwc2/gadget.c 				    &hsotg->ctrl_out_desc_dma,
hsotg             466 drivers/usb/dwc2/gadget.c 	if (!hsotg->ctrl_out_desc)
hsotg             491 drivers/usb/dwc2/gadget.c static int dwc2_hsotg_write_fifo(struct dwc2_hsotg *hsotg,
hsotg             496 drivers/usb/dwc2/gadget.c 	u32 gnptxsts = dwc2_readl(hsotg, GNPTXSTS);
hsotg             510 drivers/usb/dwc2/gadget.c 	if (periodic && !hsotg->dedicated_fifos) {
hsotg             511 drivers/usb/dwc2/gadget.c 		u32 epsize = dwc2_readl(hsotg, DIEPTSIZ(hs_ep->index));
hsotg             527 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_en_gsint(hsotg, GINTSTS_PTXFEMP);
hsotg             531 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: left=%d, load=%d, fifo=%d, size %d\n",
hsotg             540 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: => can_write1=%d\n",
hsotg             544 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: => can_write2=%d\n",
hsotg             548 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_en_gsint(hsotg, GINTSTS_PTXFEMP);
hsotg             551 drivers/usb/dwc2/gadget.c 	} else if (hsotg->dedicated_fifos && hs_ep->index != 0) {
hsotg             552 drivers/usb/dwc2/gadget.c 		can_write = dwc2_readl(hsotg,
hsotg             559 drivers/usb/dwc2/gadget.c 			dev_dbg(hsotg->dev,
hsotg             563 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_en_gsint(hsotg, GINTSTS_NPTXFEMP);
hsotg             573 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: GNPTXSTS=%08x, can=%d, to=%d, max_transfer %d\n",
hsotg             593 drivers/usb/dwc2/gadget.c 		if (!hsotg->dedicated_fifos)
hsotg             594 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_en_gsint(hsotg,
hsotg             622 drivers/usb/dwc2/gadget.c 		if (!hsotg->dedicated_fifos)
hsotg             623 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_en_gsint(hsotg,
hsotg             628 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "write %d/%d, can_write %d, done %d\n",
hsotg             643 drivers/usb/dwc2/gadget.c 	dwc2_writel_rep(hsotg, EPFIFO(hs_ep->index), data, to_write);
hsotg             693 drivers/usb/dwc2/gadget.c static u32 dwc2_hsotg_read_frameno(struct dwc2_hsotg *hsotg)
hsotg             697 drivers/usb/dwc2/gadget.c 	dsts = dwc2_readl(hsotg, DSTS);
hsotg             883 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg             897 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: desc chain full\n", __func__);
hsotg             905 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: Filling ep %d, dir %s isoc desc # %d\n",
hsotg             953 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg             965 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: No requests in queue\n", __func__);
hsotg             996 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, hs_ep->desc_list_dma, dma_reg);
hsotg             998 drivers/usb/dwc2/gadget.c 	ctrl = dwc2_readl(hsotg, depctl);
hsotg            1000 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, ctrl, depctl);
hsotg            1013 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_start_req(struct dwc2_hsotg *hsotg,
hsotg            1032 drivers/usb/dwc2/gadget.c 			dev_err(hsotg->dev, "%s: active request\n", __func__);
hsotg            1036 drivers/usb/dwc2/gadget.c 			dev_err(hsotg->dev,
hsotg            1047 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: DxEPCTL=0x%08x, ep %d, dir %s\n",
hsotg            1048 drivers/usb/dwc2/gadget.c 		__func__, dwc2_readl(hsotg, epctrl_reg), index,
hsotg            1052 drivers/usb/dwc2/gadget.c 	ctrl = dwc2_readl(hsotg, epctrl_reg);
hsotg            1055 drivers/usb/dwc2/gadget.c 		dev_warn(hsotg->dev, "%s: ep%d is stalled\n", __func__, index);
hsotg            1060 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "ureq->length:%d ureq->actual:%d\n",
hsotg            1063 drivers/usb/dwc2/gadget.c 	if (!using_desc_dma(hsotg))
hsotg            1071 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: length %d, max-req %d, r %d\n",
hsotg            1108 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: %d@%d/%d, 0x%08x => 0x%08x\n",
hsotg            1114 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg)) {
hsotg            1131 drivers/usb/dwc2/gadget.c 		if (!index && hsotg->ep0_state == DWC2_EP0_DATA_OUT &&
hsotg            1140 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, hs_ep->desc_list_dma, dma_reg);
hsotg            1142 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: %08x pad => 0x%08x\n",
hsotg            1146 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, epsize, epsize_reg);
hsotg            1148 drivers/usb/dwc2/gadget.c 		if (using_dma(hsotg) && !continuing && (length != 0)) {
hsotg            1154 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, ureq->dma, dma_reg);
hsotg            1156 drivers/usb/dwc2/gadget.c 			dev_dbg(hsotg->dev, "%s: %pad => 0x%08x\n",
hsotg            1162 drivers/usb/dwc2/gadget.c 		hs_ep->target_frame = dwc2_hsotg_read_frameno(hsotg);
hsotg            1173 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "ep0 state:%d\n", hsotg->ep0_state);
hsotg            1176 drivers/usb/dwc2/gadget.c 	if (!(index == 0 && hsotg->ep0_state == DWC2_EP0_SETUP))
hsotg            1179 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: DxEPCTL=0x%08x\n", __func__, ctrl);
hsotg            1180 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, ctrl, epctrl_reg);
hsotg            1190 drivers/usb/dwc2/gadget.c 	if (dir_in && !using_dma(hsotg)) {
hsotg            1194 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_write_fifo(hsotg, hs_ep, hs_req);
hsotg            1203 drivers/usb/dwc2/gadget.c 	if (!(dwc2_readl(hsotg, epctrl_reg) & DXEPCTL_EPENA))
hsotg            1204 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev,
hsotg            1206 drivers/usb/dwc2/gadget.c 			 index, dwc2_readl(hsotg, epctrl_reg));
hsotg            1208 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: DXEPCTL=0x%08x\n",
hsotg            1209 drivers/usb/dwc2/gadget.c 		__func__, dwc2_readl(hsotg, epctrl_reg));
hsotg            1212 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_ctrl_epint(hsotg, hs_ep->index, hs_ep->dir_in, 1);
hsotg            1227 drivers/usb/dwc2/gadget.c static int dwc2_hsotg_map_dma(struct dwc2_hsotg *hsotg,
hsotg            1233 drivers/usb/dwc2/gadget.c 	ret = usb_gadget_map_request(&hsotg->gadget, req, hs_ep->dir_in);
hsotg            1240 drivers/usb/dwc2/gadget.c 	dev_err(hsotg->dev, "%s: failed to map buffer %p, %d bytes\n",
hsotg            1246 drivers/usb/dwc2/gadget.c static int dwc2_hsotg_handle_unaligned_buf_start(struct dwc2_hsotg *hsotg,
hsotg            1253 drivers/usb/dwc2/gadget.c 	if (!using_dma(hsotg) || !((long)req_buf & 3))
hsotg            1258 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: %s: buf=%p length=%d\n", __func__,
hsotg            1264 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev,
hsotg            1279 drivers/usb/dwc2/gadget.c dwc2_hsotg_handle_unaligned_buf_complete(struct dwc2_hsotg *hsotg,
hsotg            1284 drivers/usb/dwc2/gadget.c 	if (!using_dma(hsotg) || !hs_req->saved_req_buf)
hsotg            1287 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: %s: status=%d actual-length=%d\n", __func__,
hsotg            1311 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            1313 drivers/usb/dwc2/gadget.c 	u32 current_frame = hsotg->frame_number;
hsotg            1334 drivers/usb/dwc2/gadget.c static int dwc2_gadget_set_ep0_desc_chain(struct dwc2_hsotg *hsotg,
hsotg            1337 drivers/usb/dwc2/gadget.c 	switch (hsotg->ep0_state) {
hsotg            1340 drivers/usb/dwc2/gadget.c 		hs_ep->desc_list = hsotg->setup_desc[0];
hsotg            1341 drivers/usb/dwc2/gadget.c 		hs_ep->desc_list_dma = hsotg->setup_desc_dma[0];
hsotg            1345 drivers/usb/dwc2/gadget.c 		hs_ep->desc_list = hsotg->ctrl_in_desc;
hsotg            1346 drivers/usb/dwc2/gadget.c 		hs_ep->desc_list_dma = hsotg->ctrl_in_desc_dma;
hsotg            1349 drivers/usb/dwc2/gadget.c 		hs_ep->desc_list = hsotg->ctrl_out_desc;
hsotg            1350 drivers/usb/dwc2/gadget.c 		hs_ep->desc_list_dma = hsotg->ctrl_out_desc_dma;
hsotg            1353 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "invalid EP 0 state in queue %d\n",
hsotg            1354 drivers/usb/dwc2/gadget.c 			hsotg->ep0_state);
hsotg            1516 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            1518 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: ep %p, req %p\n", __func__, ep, req);
hsotg            1531 drivers/usb/dwc2/gadget.c static struct dwc2_hsotg_ep *ep_from_windex(struct dwc2_hsotg *hsotg,
hsotg            1541 drivers/usb/dwc2/gadget.c 	if (idx > hsotg->num_of_eps)
hsotg            1544 drivers/usb/dwc2/gadget.c 	ep = index_to_ep(hsotg, idx, dir);
hsotg            1558 drivers/usb/dwc2/gadget.c int dwc2_hsotg_set_test_mode(struct dwc2_hsotg *hsotg, int testmode)
hsotg            1560 drivers/usb/dwc2/gadget.c 	int dctl = dwc2_readl(hsotg, DCTL);
hsotg            1574 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dctl, DCTL);
hsotg            1588 drivers/usb/dwc2/gadget.c static int dwc2_hsotg_send_reply(struct dwc2_hsotg *hsotg,
hsotg            1596 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: buff %p, len %d\n", __func__, buff, length);
hsotg            1599 drivers/usb/dwc2/gadget.c 	hsotg->ep0_reply = req;
hsotg            1601 drivers/usb/dwc2/gadget.c 		dev_warn(hsotg->dev, "%s: cannot alloc req\n", __func__);
hsotg            1605 drivers/usb/dwc2/gadget.c 	req->buf = hsotg->ep0_buff;
hsotg            1619 drivers/usb/dwc2/gadget.c 		dev_warn(hsotg->dev, "%s: cannot queue req\n", __func__);
hsotg            1631 drivers/usb/dwc2/gadget.c static int dwc2_hsotg_process_req_status(struct dwc2_hsotg *hsotg,
hsotg            1634 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg_ep *ep0 = hsotg->eps_out[0];
hsotg            1640 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: USB_REQ_GET_STATUS\n", __func__);
hsotg            1643 drivers/usb/dwc2/gadget.c 		dev_warn(hsotg->dev, "%s: direction out?\n", __func__);
hsotg            1650 drivers/usb/dwc2/gadget.c 		status |= hsotg->remote_wakeup_allowed <<
hsotg            1661 drivers/usb/dwc2/gadget.c 		ep = ep_from_windex(hsotg, le16_to_cpu(ctrl->wIndex));
hsotg            1675 drivers/usb/dwc2/gadget.c 	ret = dwc2_hsotg_send_reply(hsotg, ep0, &reply, 2);
hsotg            1677 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: failed to send reply\n", __func__);
hsotg            1709 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            1716 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_start_req(hsotg, hs_ep, hs_req, false);
hsotg            1723 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: No more ISOC-IN requests\n",
hsotg            1726 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: No more ISOC-OUT requests\n",
hsotg            1728 drivers/usb/dwc2/gadget.c 		mask = dwc2_readl(hsotg, epmsk_reg);
hsotg            1730 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, mask, epmsk_reg);
hsotg            1739 drivers/usb/dwc2/gadget.c static int dwc2_hsotg_process_req_feature(struct dwc2_hsotg *hsotg,
hsotg            1742 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg_ep *ep0 = hsotg->eps_out[0];
hsotg            1752 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: %s_FEATURE\n",
hsotg            1764 drivers/usb/dwc2/gadget.c 				hsotg->remote_wakeup_allowed = 1;
hsotg            1766 drivers/usb/dwc2/gadget.c 				hsotg->remote_wakeup_allowed = 0;
hsotg            1775 drivers/usb/dwc2/gadget.c 			hsotg->test_mode = wIndex >> 8;
hsotg            1781 drivers/usb/dwc2/gadget.c 		ret = dwc2_hsotg_send_reply(hsotg, ep0, NULL, 0);
hsotg            1783 drivers/usb/dwc2/gadget.c 			dev_err(hsotg->dev,
hsotg            1790 drivers/usb/dwc2/gadget.c 		ep = ep_from_windex(hsotg, wIndex);
hsotg            1792 drivers/usb/dwc2/gadget.c 			dev_dbg(hsotg->dev, "%s: no endpoint for 0x%04x\n",
hsotg            1803 drivers/usb/dwc2/gadget.c 			ret = dwc2_hsotg_send_reply(hsotg, ep0, NULL, 0);
hsotg            1805 drivers/usb/dwc2/gadget.c 				dev_err(hsotg->dev,
hsotg            1825 drivers/usb/dwc2/gadget.c 						spin_unlock(&hsotg->lock);
hsotg            1828 drivers/usb/dwc2/gadget.c 						spin_lock(&hsotg->lock);
hsotg            1849 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_enqueue_setup(struct dwc2_hsotg *hsotg);
hsotg            1857 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_stall_ep0(struct dwc2_hsotg *hsotg)
hsotg            1859 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg_ep *ep0 = hsotg->eps_out[0];
hsotg            1863 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "ep0 stall (dir=%d)\n", ep0->dir_in);
hsotg            1871 drivers/usb/dwc2/gadget.c 	ctrl = dwc2_readl(hsotg, reg);
hsotg            1874 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, ctrl, reg);
hsotg            1876 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev,
hsotg            1878 drivers/usb/dwc2/gadget.c 		ctrl, reg, dwc2_readl(hsotg, reg));
hsotg            1884 drivers/usb/dwc2/gadget.c 	 dwc2_hsotg_enqueue_setup(hsotg);
hsotg            1896 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_process_control(struct dwc2_hsotg *hsotg,
hsotg            1899 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg_ep *ep0 = hsotg->eps_out[0];
hsotg            1903 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev,
hsotg            1910 drivers/usb/dwc2/gadget.c 		hsotg->ep0_state = DWC2_EP0_STATUS_IN;
hsotg            1913 drivers/usb/dwc2/gadget.c 		hsotg->ep0_state = DWC2_EP0_DATA_IN;
hsotg            1916 drivers/usb/dwc2/gadget.c 		hsotg->ep0_state = DWC2_EP0_DATA_OUT;
hsotg            1922 drivers/usb/dwc2/gadget.c 			hsotg->connected = 1;
hsotg            1923 drivers/usb/dwc2/gadget.c 			dcfg = dwc2_readl(hsotg, DCFG);
hsotg            1927 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, dcfg, DCFG);
hsotg            1929 drivers/usb/dwc2/gadget.c 			dev_info(hsotg->dev, "new address %d\n", ctrl->wValue);
hsotg            1931 drivers/usb/dwc2/gadget.c 			ret = dwc2_hsotg_send_reply(hsotg, ep0, NULL, 0);
hsotg            1935 drivers/usb/dwc2/gadget.c 			ret = dwc2_hsotg_process_req_status(hsotg, ctrl);
hsotg            1940 drivers/usb/dwc2/gadget.c 			ret = dwc2_hsotg_process_req_feature(hsotg, ctrl);
hsotg            1947 drivers/usb/dwc2/gadget.c 	if (ret == 0 && hsotg->driver) {
hsotg            1948 drivers/usb/dwc2/gadget.c 		spin_unlock(&hsotg->lock);
hsotg            1949 drivers/usb/dwc2/gadget.c 		ret = hsotg->driver->setup(&hsotg->gadget, ctrl);
hsotg            1950 drivers/usb/dwc2/gadget.c 		spin_lock(&hsotg->lock);
hsotg            1952 drivers/usb/dwc2/gadget.c 			dev_dbg(hsotg->dev, "driver->setup() ret %d\n", ret);
hsotg            1955 drivers/usb/dwc2/gadget.c 	hsotg->delayed_status = false;
hsotg            1957 drivers/usb/dwc2/gadget.c 		hsotg->delayed_status = true;
hsotg            1965 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_stall_ep0(hsotg);
hsotg            1980 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            1983 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: failed %d\n", __func__, req->status);
hsotg            1987 drivers/usb/dwc2/gadget.c 	spin_lock(&hsotg->lock);
hsotg            1989 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_enqueue_setup(hsotg);
hsotg            1991 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_process_control(hsotg, req->buf);
hsotg            1992 drivers/usb/dwc2/gadget.c 	spin_unlock(&hsotg->lock);
hsotg            2002 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_enqueue_setup(struct dwc2_hsotg *hsotg)
hsotg            2004 drivers/usb/dwc2/gadget.c 	struct usb_request *req = hsotg->ctrl_req;
hsotg            2008 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: queueing setup request\n", __func__);
hsotg            2012 drivers/usb/dwc2/gadget.c 	req->buf = hsotg->ctrl_buff;
hsotg            2016 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s already queued???\n", __func__);
hsotg            2020 drivers/usb/dwc2/gadget.c 	hsotg->eps_out[0]->dir_in = 0;
hsotg            2021 drivers/usb/dwc2/gadget.c 	hsotg->eps_out[0]->send_zlp = 0;
hsotg            2022 drivers/usb/dwc2/gadget.c 	hsotg->ep0_state = DWC2_EP0_SETUP;
hsotg            2024 drivers/usb/dwc2/gadget.c 	ret = dwc2_hsotg_ep_queue(&hsotg->eps_out[0]->ep, req, GFP_ATOMIC);
hsotg            2026 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: failed queue (%d)\n", __func__, ret);
hsotg            2034 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_program_zlp(struct dwc2_hsotg *hsotg,
hsotg            2043 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "Sending zero-length packet on ep%d\n",
hsotg            2046 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "Receiving zero-length packet on ep%d\n",
hsotg            2048 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg)) {
hsotg            2053 drivers/usb/dwc2/gadget.c 			dwc2_gadget_set_ep0_desc_chain(hsotg, hs_ep);
hsotg            2057 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, DXEPTSIZ_MC(1) | DXEPTSIZ_PKTCNT(1) |
hsotg            2062 drivers/usb/dwc2/gadget.c 	ctrl = dwc2_readl(hsotg, epctl_reg);
hsotg            2066 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, ctrl, epctl_reg);
hsotg            2082 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_complete_request(struct dwc2_hsotg *hsotg,
hsotg            2088 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: nothing to complete?\n", __func__);
hsotg            2092 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "complete: ep %p %s, req %p, %d => %p\n",
hsotg            2103 drivers/usb/dwc2/gadget.c 	if (using_dma(hsotg))
hsotg            2104 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_unmap_dma(hsotg, hs_ep, hs_req);
hsotg            2106 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_handle_unaligned_buf_complete(hsotg, hs_ep, hs_req);
hsotg            2117 drivers/usb/dwc2/gadget.c 		spin_unlock(&hsotg->lock);
hsotg            2119 drivers/usb/dwc2/gadget.c 		spin_lock(&hsotg->lock);
hsotg            2123 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg) && hs_ep->isochronous)
hsotg            2147 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            2161 drivers/usb/dwc2/gadget.c 			dev_warn(hsotg->dev, "%s: ISOC EP queue empty\n", __func__);
hsotg            2186 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, 0);
hsotg            2206 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            2209 drivers/usb/dwc2/gadget.c 		dwc2_flush_rx_fifo(hsotg);
hsotg            2210 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_complete_request(hsotg, hs_ep, get_ep_head(hs_ep), 0);
hsotg            2227 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_rx_data(struct dwc2_hsotg *hsotg, int ep_idx, int size)
hsotg            2229 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg_ep *hs_ep = hsotg->eps_out[ep_idx];
hsotg            2236 drivers/usb/dwc2/gadget.c 		u32 epctl = dwc2_readl(hsotg, DOEPCTL(ep_idx));
hsotg            2239 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev,
hsotg            2245 drivers/usb/dwc2/gadget.c 			(void)dwc2_readl(hsotg, EPFIFO(ep_idx));
hsotg            2254 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: read %d/%d, done %d/%d\n",
hsotg            2275 drivers/usb/dwc2/gadget.c 	dwc2_readl_rep(hsotg, EPFIFO(ep_idx),
hsotg            2291 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_ep0_zlp(struct dwc2_hsotg *hsotg, bool dir_in)
hsotg            2294 drivers/usb/dwc2/gadget.c 	hsotg->eps_out[0]->dir_in = dir_in;
hsotg            2295 drivers/usb/dwc2/gadget.c 	hsotg->ep0_state = dir_in ? DWC2_EP0_STATUS_IN : DWC2_EP0_STATUS_OUT;
hsotg            2297 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_program_zlp(hsotg, hsotg->eps_out[0]);
hsotg            2300 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_change_ep_iso_parity(struct dwc2_hsotg *hsotg,
hsotg            2305 drivers/usb/dwc2/gadget.c 	ctrl = dwc2_readl(hsotg, epctl_reg);
hsotg            2310 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, ctrl, epctl_reg);
hsotg            2322 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            2336 drivers/usb/dwc2/gadget.c 			dev_err(hsotg->dev, "descriptor %d closed with %x\n",
hsotg            2353 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_handle_outdone(struct dwc2_hsotg *hsotg, int epnum)
hsotg            2355 drivers/usb/dwc2/gadget.c 	u32 epsize = dwc2_readl(hsotg, DOEPTSIZ(epnum));
hsotg            2356 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg_ep *hs_ep = hsotg->eps_out[epnum];
hsotg            2363 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: no request active\n", __func__);
hsotg            2367 drivers/usb/dwc2/gadget.c 	if (epnum == 0 && hsotg->ep0_state == DWC2_EP0_STATUS_OUT) {
hsotg            2368 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "zlp packet received\n");
hsotg            2369 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, 0);
hsotg            2370 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_enqueue_setup(hsotg);
hsotg            2374 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg))
hsotg            2377 drivers/usb/dwc2/gadget.c 	if (using_dma(hsotg)) {
hsotg            2397 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_start_req(hsotg, hs_ep, hs_req, true);
hsotg            2402 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: got %d/%d (short not ok) => error\n",
hsotg            2412 drivers/usb/dwc2/gadget.c 	if (!using_desc_dma(hsotg) && epnum == 0 &&
hsotg            2413 drivers/usb/dwc2/gadget.c 	    hsotg->ep0_state == DWC2_EP0_DATA_OUT) {
hsotg            2415 drivers/usb/dwc2/gadget.c 		if (!hsotg->delayed_status)
hsotg            2416 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_ep0_zlp(hsotg, true);
hsotg            2423 drivers/usb/dwc2/gadget.c 	if (!using_dma(hsotg)) {
hsotg            2425 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_change_ep_iso_parity(hsotg, DOEPCTL(epnum));
hsotg            2431 drivers/usb/dwc2/gadget.c 	if (!using_desc_dma(hsotg) && hs_ep->isochronous)
hsotg            2432 drivers/usb/dwc2/gadget.c 		req->frame_number = hsotg->frame_number;
hsotg            2434 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, result);
hsotg            2453 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_handle_rx(struct dwc2_hsotg *hsotg)
hsotg            2455 drivers/usb/dwc2/gadget.c 	u32 grxstsr = dwc2_readl(hsotg, GRXSTSP);
hsotg            2458 drivers/usb/dwc2/gadget.c 	WARN_ON(using_dma(hsotg));
hsotg            2466 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: GRXSTSP=0x%08x (%d@%d)\n",
hsotg            2471 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "GLOBALOUTNAK\n");
hsotg            2475 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "OutDone (Frame=0x%08x)\n",
hsotg            2476 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_read_frameno(hsotg));
hsotg            2478 drivers/usb/dwc2/gadget.c 		if (!using_dma(hsotg))
hsotg            2479 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_handle_outdone(hsotg, epnum);
hsotg            2483 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev,
hsotg            2485 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_read_frameno(hsotg),
hsotg            2486 drivers/usb/dwc2/gadget.c 			dwc2_readl(hsotg, DOEPCTL(0)));
hsotg            2492 drivers/usb/dwc2/gadget.c 		if (hsotg->ep0_state == DWC2_EP0_SETUP)
hsotg            2493 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_handle_outdone(hsotg, epnum);
hsotg            2497 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_rx_data(hsotg, epnum, size);
hsotg            2501 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev,
hsotg            2503 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_read_frameno(hsotg),
hsotg            2504 drivers/usb/dwc2/gadget.c 			dwc2_readl(hsotg, DOEPCTL(0)));
hsotg            2506 drivers/usb/dwc2/gadget.c 		WARN_ON(hsotg->ep0_state != DWC2_EP0_SETUP);
hsotg            2508 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_rx_data(hsotg, epnum, size);
hsotg            2512 drivers/usb/dwc2/gadget.c 		dev_warn(hsotg->dev, "%s: unknown status %08x\n",
hsotg            2515 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_dump(hsotg);
hsotg            2553 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_set_ep_maxpacket(struct dwc2_hsotg *hsotg,
hsotg            2560 drivers/usb/dwc2/gadget.c 	hs_ep = index_to_ep(hsotg, ep, dir_in);
hsotg            2583 drivers/usb/dwc2/gadget.c 		reg = dwc2_readl(hsotg, DIEPCTL(ep));
hsotg            2586 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, reg, DIEPCTL(ep));
hsotg            2588 drivers/usb/dwc2/gadget.c 		reg = dwc2_readl(hsotg, DOEPCTL(ep));
hsotg            2591 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, reg, DOEPCTL(ep));
hsotg            2597 drivers/usb/dwc2/gadget.c 	dev_err(hsotg->dev, "ep%d: bad mps of %d\n", ep, mps);
hsotg            2605 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_txfifo_flush(struct dwc2_hsotg *hsotg, unsigned int idx)
hsotg            2607 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, GRSTCTL_TXFNUM(idx) | GRSTCTL_TXFFLSH,
hsotg            2611 drivers/usb/dwc2/gadget.c 	if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_TXFFLSH, 100))
hsotg            2612 drivers/usb/dwc2/gadget.c 		dev_warn(hsotg->dev, "%s: timeout flushing fifo GRSTCTL_TXFFLSH\n",
hsotg            2624 drivers/usb/dwc2/gadget.c static int dwc2_hsotg_trytx(struct dwc2_hsotg *hsotg,
hsotg            2635 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_ctrl_epint(hsotg, hs_ep->index,
hsotg            2641 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "trying to write more for ep%d\n",
hsotg            2643 drivers/usb/dwc2/gadget.c 		return dwc2_hsotg_write_fifo(hsotg, hs_ep, hs_req);
hsotg            2657 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_complete_in(struct dwc2_hsotg *hsotg,
hsotg            2661 drivers/usb/dwc2/gadget.c 	u32 epsize = dwc2_readl(hsotg, DIEPTSIZ(hs_ep->index));
hsotg            2665 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "XferCompl but no req\n");
hsotg            2670 drivers/usb/dwc2/gadget.c 	if (hs_ep->index == 0 && hsotg->ep0_state == DWC2_EP0_STATUS_IN) {
hsotg            2671 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "zlp packet sent\n");
hsotg            2679 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, 0);
hsotg            2680 drivers/usb/dwc2/gadget.c 		if (hsotg->test_mode) {
hsotg            2683 drivers/usb/dwc2/gadget.c 			ret = dwc2_hsotg_set_test_mode(hsotg, hsotg->test_mode);
hsotg            2685 drivers/usb/dwc2/gadget.c 				dev_dbg(hsotg->dev, "Invalid Test #%d\n",
hsotg            2686 drivers/usb/dwc2/gadget.c 					hsotg->test_mode);
hsotg            2687 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_stall_ep0(hsotg);
hsotg            2691 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_enqueue_setup(hsotg);
hsotg            2704 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg)) {
hsotg            2707 drivers/usb/dwc2/gadget.c 			dev_err(hsotg->dev, "error parsing DDMA results %d\n",
hsotg            2717 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: adjusting size done %d => %d\n",
hsotg            2721 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "req->length:%d req->actual:%d req->zero:%d\n",
hsotg            2725 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s trying more for req...\n", __func__);
hsotg            2726 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_start_req(hsotg, hs_ep, hs_req, true);
hsotg            2732 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_program_zlp(hsotg, hs_ep);
hsotg            2738 drivers/usb/dwc2/gadget.c 	if (hs_ep->index == 0 && hsotg->ep0_state == DWC2_EP0_DATA_IN) {
hsotg            2740 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_ep0_zlp(hsotg, false);
hsotg            2744 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, 0);
hsotg            2756 drivers/usb/dwc2/gadget.c static u32 dwc2_gadget_read_ep_interrupts(struct dwc2_hsotg *hsotg,
hsotg            2765 drivers/usb/dwc2/gadget.c 	mask = dwc2_readl(hsotg, epmsk_reg);
hsotg            2766 drivers/usb/dwc2/gadget.c 	diepempmsk = dwc2_readl(hsotg, DIEPEMPMSK);
hsotg            2770 drivers/usb/dwc2/gadget.c 	ints = dwc2_readl(hsotg, epint_reg);
hsotg            2790 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            2795 drivers/usb/dwc2/gadget.c 	int dctl = dwc2_readl(hsotg, DCTL);
hsotg            2797 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: EPDisbld\n", __func__);
hsotg            2800 drivers/usb/dwc2/gadget.c 		int epctl = dwc2_readl(hsotg, epctl_reg);
hsotg            2802 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_txfifo_flush(hsotg, hs_ep->fifo_index);
hsotg            2805 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_complete_in(hsotg, hs_ep);
hsotg            2810 drivers/usb/dwc2/gadget.c 			int dctl = dwc2_readl(hsotg, DCTL);
hsotg            2813 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, dctl, DCTL);
hsotg            2820 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dctl, DCTL);
hsotg            2827 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: complete_ep 0x%p, ep->queue empty!\n",
hsotg            2835 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req,
hsotg            2839 drivers/usb/dwc2/gadget.c 		hsotg->frame_number = dwc2_hsotg_read_frameno(hsotg);
hsotg            2858 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = ep->parent;
hsotg            2865 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg)) {
hsotg            2868 drivers/usb/dwc2/gadget.c 			ep->target_frame = hsotg->frame_number;
hsotg            2878 drivers/usb/dwc2/gadget.c 		ep->target_frame = hsotg->frame_number;
hsotg            2881 drivers/usb/dwc2/gadget.c 		ctrl = dwc2_readl(hsotg, DOEPCTL(ep->index));
hsotg            2887 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, ctrl, DOEPCTL(ep->index));
hsotg            2891 drivers/usb/dwc2/gadget.c 	doepmsk = dwc2_readl(hsotg, DOEPMSK);
hsotg            2893 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, doepmsk, DOEPMSK);
hsotg            2912 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            2920 drivers/usb/dwc2/gadget.c 		if (using_desc_dma(hsotg)) {
hsotg            2921 drivers/usb/dwc2/gadget.c 			hs_ep->target_frame = hsotg->frame_number;
hsotg            2927 drivers/usb/dwc2/gadget.c 			if (hsotg->params.service_interval) {
hsotg            2944 drivers/usb/dwc2/gadget.c 		hs_ep->target_frame = hsotg->frame_number;
hsotg            2946 drivers/usb/dwc2/gadget.c 			u32 ctrl = dwc2_readl(hsotg,
hsotg            2953 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, ctrl, DIEPCTL(hs_ep->index));
hsotg            2956 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_complete_request(hsotg, hs_ep,
hsotg            2960 drivers/usb/dwc2/gadget.c 	if (!using_desc_dma(hsotg))
hsotg            2972 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_epint(struct dwc2_hsotg *hsotg, unsigned int idx,
hsotg            2975 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg_ep *hs_ep = index_to_ep(hsotg, idx, dir_in);
hsotg            2982 drivers/usb/dwc2/gadget.c 	ints = dwc2_gadget_read_ep_interrupts(hsotg, idx, dir_in);
hsotg            2983 drivers/usb/dwc2/gadget.c 	ctrl = dwc2_readl(hsotg, epctl_reg);
hsotg            2986 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, ints, epint_reg);
hsotg            2989 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s:Interrupt for unconfigured ep%d(%s)\n",
hsotg            2994 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: ep%d(%s) DxEPINT=0x%08x\n",
hsotg            3007 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg) && idx == 0 && !hs_ep->dir_in &&
hsotg            3008 drivers/usb/dwc2/gadget.c 	    hsotg->ep0_state == DWC2_EP0_SETUP && !(ints & DXEPINT_SETUP))
hsotg            3012 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev,
hsotg            3014 drivers/usb/dwc2/gadget.c 			__func__, dwc2_readl(hsotg, epctl_reg),
hsotg            3015 drivers/usb/dwc2/gadget.c 			dwc2_readl(hsotg, epsiz_reg));
hsotg            3018 drivers/usb/dwc2/gadget.c 		if (using_desc_dma(hsotg) && hs_ep->isochronous) {
hsotg            3031 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_complete_in(hsotg, hs_ep);
hsotg            3036 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_enqueue_setup(hsotg);
hsotg            3037 drivers/usb/dwc2/gadget.c 		} else if (using_dma(hsotg)) {
hsotg            3045 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_handle_outdone(hsotg, idx);
hsotg            3059 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: AHBErr\n", __func__);
hsotg            3062 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: Setup/Timeout\n",  __func__);
hsotg            3064 drivers/usb/dwc2/gadget.c 		if (using_dma(hsotg) && idx == 0) {
hsotg            3075 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_handle_outdone(hsotg, 0);
hsotg            3080 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: StsPhseRcvd\n", __func__);
hsotg            3083 drivers/usb/dwc2/gadget.c 		if (hsotg->ep0_state == DWC2_EP0_DATA_OUT) {
hsotg            3085 drivers/usb/dwc2/gadget.c 			if (using_desc_dma(hsotg)) {
hsotg            3086 drivers/usb/dwc2/gadget.c 				if (!hsotg->delayed_status)
hsotg            3087 drivers/usb/dwc2/gadget.c 					dwc2_hsotg_ep0_zlp(hsotg, true);
hsotg            3096 drivers/usb/dwc2/gadget.c 					dwc2_set_bit(hsotg, DIEPCTL(0),
hsotg            3104 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: B2BSetup/INEPNakEff\n", __func__);
hsotg            3107 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: BNA interrupt\n", __func__);
hsotg            3115 drivers/usb/dwc2/gadget.c 			dev_dbg(hsotg->dev, "%s: ep%d: INTknTXFEmpMsk\n",
hsotg            3121 drivers/usb/dwc2/gadget.c 			dev_warn(hsotg->dev, "%s: ep%d: INTknEP\n",
hsotg            3126 drivers/usb/dwc2/gadget.c 		if (hsotg->dedicated_fifos &&
hsotg            3128 drivers/usb/dwc2/gadget.c 			dev_dbg(hsotg->dev, "%s: ep%d: TxFIFOEmpty\n",
hsotg            3130 drivers/usb/dwc2/gadget.c 			if (!using_dma(hsotg))
hsotg            3131 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_trytx(hsotg, hs_ep);
hsotg            3143 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_irq_enumdone(struct dwc2_hsotg *hsotg)
hsotg            3145 drivers/usb/dwc2/gadget.c 	u32 dsts = dwc2_readl(hsotg, DSTS);
hsotg            3154 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "EnumDone (DSTS=0x%08x)\n", dsts);
hsotg            3166 drivers/usb/dwc2/gadget.c 		hsotg->gadget.speed = USB_SPEED_FULL;
hsotg            3172 drivers/usb/dwc2/gadget.c 		hsotg->gadget.speed = USB_SPEED_HIGH;
hsotg            3178 drivers/usb/dwc2/gadget.c 		hsotg->gadget.speed = USB_SPEED_LOW;
hsotg            3188 drivers/usb/dwc2/gadget.c 	dev_info(hsotg->dev, "new device is %s\n",
hsotg            3189 drivers/usb/dwc2/gadget.c 		 usb_speed_string(hsotg->gadget.speed));
hsotg            3199 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_set_ep_maxpacket(hsotg, 0, ep0_mps, 0, 1);
hsotg            3200 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_set_ep_maxpacket(hsotg, 0, ep0_mps, 0, 0);
hsotg            3201 drivers/usb/dwc2/gadget.c 		for (i = 1; i < hsotg->num_of_eps; i++) {
hsotg            3202 drivers/usb/dwc2/gadget.c 			if (hsotg->eps_in[i])
hsotg            3203 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_set_ep_maxpacket(hsotg, i, ep_mps,
hsotg            3205 drivers/usb/dwc2/gadget.c 			if (hsotg->eps_out[i])
hsotg            3206 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_set_ep_maxpacket(hsotg, i, ep_mps,
hsotg            3213 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_enqueue_setup(hsotg);
hsotg            3215 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "EP0: DIEPCTL0=0x%08x, DOEPCTL0=0x%08x\n",
hsotg            3216 drivers/usb/dwc2/gadget.c 		dwc2_readl(hsotg, DIEPCTL0),
hsotg            3217 drivers/usb/dwc2/gadget.c 		dwc2_readl(hsotg, DOEPCTL0));
hsotg            3229 drivers/usb/dwc2/gadget.c static void kill_all_requests(struct dwc2_hsotg *hsotg,
hsotg            3240 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_complete_request(hsotg, ep, req, result);
hsotg            3243 drivers/usb/dwc2/gadget.c 	if (!hsotg->dedicated_fifos)
hsotg            3245 drivers/usb/dwc2/gadget.c 	size = (dwc2_readl(hsotg, DTXFSTS(ep->fifo_index)) & 0xffff) * 4;
hsotg            3247 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_txfifo_flush(hsotg, ep->fifo_index);
hsotg            3258 drivers/usb/dwc2/gadget.c void dwc2_hsotg_disconnect(struct dwc2_hsotg *hsotg)
hsotg            3262 drivers/usb/dwc2/gadget.c 	if (!hsotg->connected)
hsotg            3265 drivers/usb/dwc2/gadget.c 	hsotg->connected = 0;
hsotg            3266 drivers/usb/dwc2/gadget.c 	hsotg->test_mode = 0;
hsotg            3269 drivers/usb/dwc2/gadget.c 	for (ep = 0; ep < hsotg->num_of_eps; ep++) {
hsotg            3270 drivers/usb/dwc2/gadget.c 		if (hsotg->eps_in[ep])
hsotg            3271 drivers/usb/dwc2/gadget.c 			kill_all_requests(hsotg, hsotg->eps_in[ep],
hsotg            3273 drivers/usb/dwc2/gadget.c 		if (hsotg->eps_out[ep])
hsotg            3274 drivers/usb/dwc2/gadget.c 			kill_all_requests(hsotg, hsotg->eps_out[ep],
hsotg            3278 drivers/usb/dwc2/gadget.c 	call_gadget(hsotg, disconnect);
hsotg            3279 drivers/usb/dwc2/gadget.c 	hsotg->lx_state = DWC2_L3;
hsotg            3281 drivers/usb/dwc2/gadget.c 	usb_gadget_set_state(&hsotg->gadget, USB_STATE_NOTATTACHED);
hsotg            3289 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_irq_fifoempty(struct dwc2_hsotg *hsotg, bool periodic)
hsotg            3295 drivers/usb/dwc2/gadget.c 	for (epno = 0; epno < hsotg->num_of_eps; epno++) {
hsotg            3296 drivers/usb/dwc2/gadget.c 		ep = index_to_ep(hsotg, epno, 1);
hsotg            3308 drivers/usb/dwc2/gadget.c 		ret = dwc2_hsotg_trytx(hsotg, ep);
hsotg            3327 drivers/usb/dwc2/gadget.c void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg,
hsotg            3337 drivers/usb/dwc2/gadget.c 	kill_all_requests(hsotg, hsotg->eps_out[0], -ECONNRESET);
hsotg            3340 drivers/usb/dwc2/gadget.c 		if (dwc2_core_reset(hsotg, true))
hsotg            3344 drivers/usb/dwc2/gadget.c 		for (ep = 1; ep < hsotg->num_of_eps; ep++) {
hsotg            3345 drivers/usb/dwc2/gadget.c 			if (hsotg->eps_in[ep])
hsotg            3346 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_ep_disable(&hsotg->eps_in[ep]->ep);
hsotg            3347 drivers/usb/dwc2/gadget.c 			if (hsotg->eps_out[ep])
hsotg            3348 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_ep_disable(&hsotg->eps_out[ep]->ep);
hsotg            3358 drivers/usb/dwc2/gadget.c 	usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            3364 drivers/usb/dwc2/gadget.c         dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg            3366 drivers/usb/dwc2/gadget.c 	dwc2_phy_init(hsotg, true);
hsotg            3368 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_init_fifo(hsotg);
hsotg            3371 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, DCTL, DCTL_SFTDISCON);
hsotg            3375 drivers/usb/dwc2/gadget.c 	switch (hsotg->params.speed) {
hsotg            3380 drivers/usb/dwc2/gadget.c 		if (hsotg->params.phy_type == DWC2_PHY_TYPE_PARAM_FS)
hsotg            3389 drivers/usb/dwc2/gadget.c 	if (hsotg->params.ipg_isoc_en)
hsotg            3392 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dcfg,  DCFG);
hsotg            3395 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, 0xffffffff, GOTGINT);
hsotg            3398 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg            3406 drivers/usb/dwc2/gadget.c 	if (!using_desc_dma(hsotg))
hsotg            3409 drivers/usb/dwc2/gadget.c 	if (!hsotg->params.external_id_pin_ctl)
hsotg            3412 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, intmsk, GINTMSK);
hsotg            3414 drivers/usb/dwc2/gadget.c 	if (using_dma(hsotg)) {
hsotg            3415 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, GAHBCFG_GLBL_INTR_EN | GAHBCFG_DMA_EN |
hsotg            3416 drivers/usb/dwc2/gadget.c 			    hsotg->params.ahbcfg,
hsotg            3420 drivers/usb/dwc2/gadget.c 		if (using_desc_dma(hsotg))
hsotg            3421 drivers/usb/dwc2/gadget.c 			dwc2_set_bit(hsotg, DCFG, DCFG_DESCDMA_EN);
hsotg            3424 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, ((hsotg->dedicated_fifos) ?
hsotg            3436 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, ((hsotg->dedicated_fifos && !using_dma(hsotg)) ?
hsotg            3446 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, (using_dma(hsotg) ? (DIEPMSK_XFERCOMPLMSK |
hsotg            3453 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg)) {
hsotg            3454 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, DOEPMSK, DOEPMSK_BNAMSK);
hsotg            3455 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, DIEPMSK, DIEPMSK_BNAININTRMSK);
hsotg            3459 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg) && hsotg->params.service_interval)
hsotg            3460 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, DCTL, DCTL_SERVICE_INTERVAL_SUPPORTED);
hsotg            3462 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, 0, DAINTMSK);
hsotg            3464 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "EP0: DIEPCTL0=0x%08x, DOEPCTL0=0x%08x\n",
hsotg            3465 drivers/usb/dwc2/gadget.c 		dwc2_readl(hsotg, DIEPCTL0),
hsotg            3466 drivers/usb/dwc2/gadget.c 		dwc2_readl(hsotg, DOEPCTL0));
hsotg            3469 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_en_gsint(hsotg, GINTSTS_OEPINT | GINTSTS_IEPINT);
hsotg            3476 drivers/usb/dwc2/gadget.c 	if (!using_dma(hsotg))
hsotg            3477 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_en_gsint(hsotg, GINTSTS_RXFLVL);
hsotg            3480 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_ctrl_epint(hsotg, 0, 0, 1);
hsotg            3481 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_ctrl_epint(hsotg, 0, 1, 1);
hsotg            3484 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, DCTL, DCTL_PWRONPRGDONE);
hsotg            3486 drivers/usb/dwc2/gadget.c 		dwc2_clear_bit(hsotg, DCTL, DCTL_PWRONPRGDONE);
hsotg            3489 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "DCTL=0x%08x\n", dwc2_readl(hsotg, DCTL));
hsotg            3497 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, DXEPTSIZ_MC(1) | DXEPTSIZ_PKTCNT(1) |
hsotg            3500 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dwc2_hsotg_ep0_mps(hsotg->eps_out[0]->ep.maxpacket) |
hsotg            3506 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dwc2_hsotg_ep0_mps(hsotg->eps_out[0]->ep.maxpacket) |
hsotg            3513 drivers/usb/dwc2/gadget.c 	dwc2_set_bit(hsotg, DCTL, val);
hsotg            3516 drivers/usb/dwc2/gadget.c 	dwc2_gadget_init_lpm(hsotg);
hsotg            3519 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg) && hsotg->params.service_interval)
hsotg            3520 drivers/usb/dwc2/gadget.c 		dwc2_gadget_program_ref_clk(hsotg);
hsotg            3525 drivers/usb/dwc2/gadget.c 	hsotg->lx_state = DWC2_L0;
hsotg            3527 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_enqueue_setup(hsotg);
hsotg            3529 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "EP0: DIEPCTL0=0x%08x, DOEPCTL0=0x%08x\n",
hsotg            3530 drivers/usb/dwc2/gadget.c 		dwc2_readl(hsotg, DIEPCTL0),
hsotg            3531 drivers/usb/dwc2/gadget.c 		dwc2_readl(hsotg, DOEPCTL0));
hsotg            3534 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_core_disconnect(struct dwc2_hsotg *hsotg)
hsotg            3537 drivers/usb/dwc2/gadget.c 	dwc2_set_bit(hsotg, DCTL, DCTL_SFTDISCON);
hsotg            3540 drivers/usb/dwc2/gadget.c void dwc2_hsotg_core_connect(struct dwc2_hsotg *hsotg)
hsotg            3543 drivers/usb/dwc2/gadget.c 	dwc2_clear_bit(hsotg, DCTL, DCTL_SFTDISCON);
hsotg            3559 drivers/usb/dwc2/gadget.c static void dwc2_gadget_handle_incomplete_isoc_in(struct dwc2_hsotg *hsotg)
hsotg            3566 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "Incomplete isoc in interrupt received:\n");
hsotg            3568 drivers/usb/dwc2/gadget.c 	daintmsk = dwc2_readl(hsotg, DAINTMSK);
hsotg            3570 drivers/usb/dwc2/gadget.c 	for (idx = 1; idx < hsotg->num_of_eps; idx++) {
hsotg            3571 drivers/usb/dwc2/gadget.c 		hs_ep = hsotg->eps_in[idx];
hsotg            3576 drivers/usb/dwc2/gadget.c 		epctrl = dwc2_readl(hsotg, DIEPCTL(idx));
hsotg            3581 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, epctrl, DIEPCTL(idx));
hsotg            3586 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, GINTSTS_INCOMPL_SOIN, GINTSTS);
hsotg            3602 drivers/usb/dwc2/gadget.c static void dwc2_gadget_handle_incomplete_isoc_out(struct dwc2_hsotg *hsotg)
hsotg            3611 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: GINTSTS_INCOMPL_SOOUT\n", __func__);
hsotg            3613 drivers/usb/dwc2/gadget.c 	daintmsk = dwc2_readl(hsotg, DAINTMSK);
hsotg            3616 drivers/usb/dwc2/gadget.c 	for (idx = 1; idx < hsotg->num_of_eps; idx++) {
hsotg            3617 drivers/usb/dwc2/gadget.c 		hs_ep = hsotg->eps_out[idx];
hsotg            3622 drivers/usb/dwc2/gadget.c 		epctrl = dwc2_readl(hsotg, DOEPCTL(idx));
hsotg            3626 drivers/usb/dwc2/gadget.c 			gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg            3628 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg            3630 drivers/usb/dwc2/gadget.c 			gintsts = dwc2_readl(hsotg, GINTSTS);
hsotg            3632 drivers/usb/dwc2/gadget.c 				dwc2_set_bit(hsotg, DCTL, DCTL_SGOUTNAK);
hsotg            3639 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, GINTSTS_INCOMPL_SOOUT, GINTSTS);
hsotg            3649 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = pw;
hsotg            3654 drivers/usb/dwc2/gadget.c 	if (!dwc2_is_device_mode(hsotg))
hsotg            3657 drivers/usb/dwc2/gadget.c 	spin_lock(&hsotg->lock);
hsotg            3659 drivers/usb/dwc2/gadget.c 	gintsts = dwc2_readl(hsotg, GINTSTS);
hsotg            3660 drivers/usb/dwc2/gadget.c 	gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg            3662 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: %08x %08x (%08x) retry %d\n",
hsotg            3668 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: USBRstDet\n", __func__);
hsotg            3670 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, GINTSTS_RESETDET, GINTSTS);
hsotg            3673 drivers/usb/dwc2/gadget.c 		if (hsotg->lx_state == DWC2_L2) {
hsotg            3674 drivers/usb/dwc2/gadget.c 			dwc2_exit_partial_power_down(hsotg, true);
hsotg            3675 drivers/usb/dwc2/gadget.c 			hsotg->lx_state = DWC2_L0;
hsotg            3680 drivers/usb/dwc2/gadget.c 		u32 usb_status = dwc2_readl(hsotg, GOTGCTL);
hsotg            3681 drivers/usb/dwc2/gadget.c 		u32 connected = hsotg->connected;
hsotg            3683 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: USBRst\n", __func__);
hsotg            3684 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "GNPTXSTS=%08x\n",
hsotg            3685 drivers/usb/dwc2/gadget.c 			dwc2_readl(hsotg, GNPTXSTS));
hsotg            3687 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, GINTSTS_USBRST, GINTSTS);
hsotg            3690 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_disconnect(hsotg);
hsotg            3693 drivers/usb/dwc2/gadget.c 		dwc2_clear_bit(hsotg, DCFG, DCFG_DEVADDR_MASK);
hsotg            3696 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_core_init_disconnected(hsotg, true);
hsotg            3700 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, GINTSTS_ENUMDONE, GINTSTS);
hsotg            3702 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_irq_enumdone(hsotg);
hsotg            3706 drivers/usb/dwc2/gadget.c 		u32 daint = dwc2_readl(hsotg, DAINT);
hsotg            3707 drivers/usb/dwc2/gadget.c 		u32 daintmsk = dwc2_readl(hsotg, DAINTMSK);
hsotg            3715 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "%s: daint=%08x\n", __func__, daint);
hsotg            3717 drivers/usb/dwc2/gadget.c 		for (ep = 0; ep < hsotg->num_of_eps && daint_out;
hsotg            3720 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_epint(hsotg, ep, 0);
hsotg            3723 drivers/usb/dwc2/gadget.c 		for (ep = 0; ep < hsotg->num_of_eps  && daint_in;
hsotg            3726 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_epint(hsotg, ep, 1);
hsotg            3733 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "NPTxFEmp\n");
hsotg            3741 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_disable_gsint(hsotg, GINTSTS_NPTXFEMP);
hsotg            3742 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_irq_fifoempty(hsotg, false);
hsotg            3746 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "PTxFEmp\n");
hsotg            3750 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_disable_gsint(hsotg, GINTSTS_PTXFEMP);
hsotg            3751 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_irq_fifoempty(hsotg, true);
hsotg            3761 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_handle_rx(hsotg);
hsotg            3765 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "GINTSTS_ErlySusp\n");
hsotg            3766 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, GINTSTS_ERLYSUSP, GINTSTS);
hsotg            3782 drivers/usb/dwc2/gadget.c 		daintmsk = dwc2_readl(hsotg, DAINTMSK);
hsotg            3785 drivers/usb/dwc2/gadget.c 		gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg            3787 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg            3789 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "GOUTNakEff triggered\n");
hsotg            3790 drivers/usb/dwc2/gadget.c 		for (idx = 1; idx < hsotg->num_of_eps; idx++) {
hsotg            3791 drivers/usb/dwc2/gadget.c 			hs_ep = hsotg->eps_out[idx];
hsotg            3796 drivers/usb/dwc2/gadget.c 			epctrl = dwc2_readl(hsotg, DOEPCTL(idx));
hsotg            3801 drivers/usb/dwc2/gadget.c 				dwc2_writel(hsotg, epctrl, DOEPCTL(idx));
hsotg            3809 drivers/usb/dwc2/gadget.c 		dev_info(hsotg->dev, "GINNakEff triggered\n");
hsotg            3811 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, DCTL, DCTL_CGNPINNAK);
hsotg            3813 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_dump(hsotg);
hsotg            3817 drivers/usb/dwc2/gadget.c 		dwc2_gadget_handle_incomplete_isoc_in(hsotg);
hsotg            3820 drivers/usb/dwc2/gadget.c 		dwc2_gadget_handle_incomplete_isoc_out(hsotg);
hsotg            3831 drivers/usb/dwc2/gadget.c 	if (hsotg->params.service_interval)
hsotg            3832 drivers/usb/dwc2/gadget.c 		dwc2_gadget_wkup_alert_handler(hsotg);
hsotg            3834 drivers/usb/dwc2/gadget.c 	spin_unlock(&hsotg->lock);
hsotg            3839 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_ep_stop_xfr(struct dwc2_hsotg *hsotg,
hsotg            3850 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: stopping transfer on %s\n", __func__,
hsotg            3854 drivers/usb/dwc2/gadget.c 		if (hsotg->dedicated_fifos || hs_ep->periodic) {
hsotg            3855 drivers/usb/dwc2/gadget.c 			dwc2_set_bit(hsotg, epctrl_reg, DXEPCTL_SNAK);
hsotg            3857 drivers/usb/dwc2/gadget.c 			if (dwc2_hsotg_wait_bit_set(hsotg, epint_reg,
hsotg            3859 drivers/usb/dwc2/gadget.c 				dev_warn(hsotg->dev,
hsotg            3863 drivers/usb/dwc2/gadget.c 			dwc2_set_bit(hsotg, DCTL, DCTL_SGNPINNAK);
hsotg            3865 drivers/usb/dwc2/gadget.c 			if (dwc2_hsotg_wait_bit_set(hsotg, GINTSTS,
hsotg            3867 drivers/usb/dwc2/gadget.c 				dev_warn(hsotg->dev,
hsotg            3872 drivers/usb/dwc2/gadget.c 		if (!(dwc2_readl(hsotg, GINTSTS) & GINTSTS_GOUTNAKEFF))
hsotg            3873 drivers/usb/dwc2/gadget.c 			dwc2_set_bit(hsotg, DCTL, DCTL_SGOUTNAK);
hsotg            3876 drivers/usb/dwc2/gadget.c 		if (dwc2_hsotg_wait_bit_set(hsotg, GINTSTS,
hsotg            3878 drivers/usb/dwc2/gadget.c 			dev_warn(hsotg->dev, "%s: timeout GINTSTS.GOUTNAKEFF\n",
hsotg            3883 drivers/usb/dwc2/gadget.c 	dwc2_set_bit(hsotg, epctrl_reg, DXEPCTL_EPDIS | DXEPCTL_SNAK);
hsotg            3886 drivers/usb/dwc2/gadget.c 	if (dwc2_hsotg_wait_bit_set(hsotg, epint_reg, DXEPINT_EPDISBLD, 100))
hsotg            3887 drivers/usb/dwc2/gadget.c 		dev_warn(hsotg->dev,
hsotg            3891 drivers/usb/dwc2/gadget.c 	dwc2_set_bit(hsotg, epint_reg, DXEPINT_EPDISBLD);
hsotg            3896 drivers/usb/dwc2/gadget.c 		if (hsotg->dedicated_fifos || hs_ep->periodic)
hsotg            3902 drivers/usb/dwc2/gadget.c 		dwc2_flush_tx_fifo(hsotg, fifo_index);
hsotg            3905 drivers/usb/dwc2/gadget.c 		if (!hsotg->dedicated_fifos && !hs_ep->periodic)
hsotg            3906 drivers/usb/dwc2/gadget.c 			dwc2_set_bit(hsotg, DCTL, DCTL_CGNPINNAK);
hsotg            3910 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, DCTL, DCTL_CGOUTNAK);
hsotg            3925 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            3939 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev,
hsotg            3946 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: called for EP 0\n", __func__);
hsotg            3952 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: direction mismatch!\n", __func__);
hsotg            3961 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg) && ep_type == USB_ENDPOINT_XFER_ISOC &&
hsotg            3963 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev,
hsotg            3969 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg) && ep_type == USB_ENDPOINT_XFER_ISOC &&
hsotg            3971 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev,
hsotg            3979 drivers/usb/dwc2/gadget.c 	epctrl = dwc2_readl(hsotg, epctrl_reg);
hsotg            3981 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: read DxEPCTL=0x%08x from 0x%08x\n",
hsotg            3984 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg) && ep_type == USB_ENDPOINT_XFER_ISOC)
hsotg            3990 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg) && !hs_ep->desc_list) {
hsotg            3991 drivers/usb/dwc2/gadget.c 		hs_ep->desc_list = dmam_alloc_coherent(hsotg->dev,
hsotg            4000 drivers/usb/dwc2/gadget.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4012 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_set_ep_maxpacket(hsotg, hs_ep->index, mps, mc, dir_in);
hsotg            4031 drivers/usb/dwc2/gadget.c 			mask = dwc2_readl(hsotg, DIEPMSK);
hsotg            4033 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, mask, DIEPMSK);
hsotg            4035 drivers/usb/dwc2/gadget.c 			mask = dwc2_readl(hsotg, DOEPMSK);
hsotg            4037 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, mask, DOEPMSK);
hsotg            4049 drivers/usb/dwc2/gadget.c 		if (hsotg->gadget.speed == USB_SPEED_HIGH)
hsotg            4064 drivers/usb/dwc2/gadget.c 	if (dir_in && hsotg->dedicated_fifos) {
hsotg            4065 drivers/usb/dwc2/gadget.c 		unsigned fifo_count = dwc2_hsotg_tx_fifo_count(hsotg);
hsotg            4071 drivers/usb/dwc2/gadget.c 			if (hsotg->fifo_map & (1 << i))
hsotg            4073 drivers/usb/dwc2/gadget.c 			val = dwc2_readl(hsotg, DPTXFSIZN(i));
hsotg            4084 drivers/usb/dwc2/gadget.c 			dev_err(hsotg->dev,
hsotg            4090 drivers/usb/dwc2/gadget.c 		hsotg->fifo_map |= 1 << fifo_index;
hsotg            4106 drivers/usb/dwc2/gadget.c 	if (hsotg->gadget.speed == USB_SPEED_FULL &&
hsotg            4112 drivers/usb/dwc2/gadget.c 		u32 gsnpsid = dwc2_readl(hsotg, GSNPSID);
hsotg            4121 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: write DxEPCTL=0x%08x\n",
hsotg            4124 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, epctrl, epctrl_reg);
hsotg            4125 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: read DxEPCTL=0x%08x\n",
hsotg            4126 drivers/usb/dwc2/gadget.c 		__func__, dwc2_readl(hsotg, epctrl_reg));
hsotg            4129 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_ctrl_epint(hsotg, index, dir_in, 1);
hsotg            4132 drivers/usb/dwc2/gadget.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4135 drivers/usb/dwc2/gadget.c 	if (ret && using_desc_dma(hsotg) && hs_ep->desc_list) {
hsotg            4136 drivers/usb/dwc2/gadget.c 		dmam_free_coherent(hsotg->dev, desc_num *
hsotg            4152 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            4158 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s(ep %p)\n", __func__, ep);
hsotg            4160 drivers/usb/dwc2/gadget.c 	if (ep == &hsotg->eps_out[0]->ep) {
hsotg            4161 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: called for ep0\n", __func__);
hsotg            4165 drivers/usb/dwc2/gadget.c 	if (hsotg->op_state != OTG_STATE_B_PERIPHERAL) {
hsotg            4166 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: called in host mode?\n", __func__);
hsotg            4172 drivers/usb/dwc2/gadget.c 	ctrl = dwc2_readl(hsotg, epctrl_reg);
hsotg            4175 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_ep_stop_xfr(hsotg, hs_ep);
hsotg            4181 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: DxEPCTL=0x%08x\n", __func__, ctrl);
hsotg            4182 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, ctrl, epctrl_reg);
hsotg            4185 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_ctrl_epint(hsotg, hs_ep->index, hs_ep->dir_in, 0);
hsotg            4188 drivers/usb/dwc2/gadget.c 	kill_all_requests(hsotg, hs_ep, -ESHUTDOWN);
hsotg            4190 drivers/usb/dwc2/gadget.c 	hsotg->fifo_map &= ~(1 << hs_ep->fifo_index);
hsotg            4200 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = hs_ep->parent;
hsotg            4204 drivers/usb/dwc2/gadget.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4206 drivers/usb/dwc2/gadget.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4370 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_init(struct dwc2_hsotg *hsotg)
hsotg            4374 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, DIEPMSK_TIMEOUTMSK | DIEPMSK_AHBERRMSK |
hsotg            4378 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, DOEPMSK_SETUPMSK | DOEPMSK_AHBERRMSK |
hsotg            4382 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, 0, DAINTMSK);
hsotg            4385 drivers/usb/dwc2/gadget.c 	dwc2_set_bit(hsotg, DCTL, DCTL_SFTDISCON);
hsotg            4389 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "GRXFSIZ=0x%08x, GNPTXFSIZ=0x%08x\n",
hsotg            4390 drivers/usb/dwc2/gadget.c 		dwc2_readl(hsotg, GRXFSIZ),
hsotg            4391 drivers/usb/dwc2/gadget.c 		dwc2_readl(hsotg, GNPTXFSIZ));
hsotg            4393 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_init_fifo(hsotg);
hsotg            4395 drivers/usb/dwc2/gadget.c 	if (using_dma(hsotg))
hsotg            4396 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, GAHBCFG, GAHBCFG_DMA_EN);
hsotg            4410 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = to_hsotg(gadget);
hsotg            4414 drivers/usb/dwc2/gadget.c 	if (!hsotg) {
hsotg            4420 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: no driver\n", __func__);
hsotg            4425 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: bad speed\n", __func__);
hsotg            4428 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: missing entry points\n", __func__);
hsotg            4432 drivers/usb/dwc2/gadget.c 	WARN_ON(hsotg->driver);
hsotg            4435 drivers/usb/dwc2/gadget.c 	hsotg->driver = driver;
hsotg            4436 drivers/usb/dwc2/gadget.c 	hsotg->gadget.dev.of_node = hsotg->dev->of_node;
hsotg            4437 drivers/usb/dwc2/gadget.c 	hsotg->gadget.speed = USB_SPEED_UNKNOWN;
hsotg            4439 drivers/usb/dwc2/gadget.c 	if (hsotg->dr_mode == USB_DR_MODE_PERIPHERAL) {
hsotg            4440 drivers/usb/dwc2/gadget.c 		ret = dwc2_lowlevel_hw_enable(hsotg);
hsotg            4445 drivers/usb/dwc2/gadget.c 	if (!IS_ERR_OR_NULL(hsotg->uphy))
hsotg            4446 drivers/usb/dwc2/gadget.c 		otg_set_peripheral(hsotg->uphy->otg, &hsotg->gadget);
hsotg            4448 drivers/usb/dwc2/gadget.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4449 drivers/usb/dwc2/gadget.c 	if (dwc2_hw_is_device(hsotg)) {
hsotg            4450 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_init(hsotg);
hsotg            4451 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_core_init_disconnected(hsotg, false);
hsotg            4454 drivers/usb/dwc2/gadget.c 	hsotg->enabled = 0;
hsotg            4455 drivers/usb/dwc2/gadget.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4457 drivers/usb/dwc2/gadget.c 	gadget->sg_supported = using_desc_dma(hsotg);
hsotg            4458 drivers/usb/dwc2/gadget.c 	dev_info(hsotg->dev, "bound driver %s\n", driver->driver.name);
hsotg            4463 drivers/usb/dwc2/gadget.c 	hsotg->driver = NULL;
hsotg            4475 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = to_hsotg(gadget);
hsotg            4479 drivers/usb/dwc2/gadget.c 	if (!hsotg)
hsotg            4483 drivers/usb/dwc2/gadget.c 	for (ep = 1; ep < hsotg->num_of_eps; ep++) {
hsotg            4484 drivers/usb/dwc2/gadget.c 		if (hsotg->eps_in[ep])
hsotg            4485 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_ep_disable_lock(&hsotg->eps_in[ep]->ep);
hsotg            4486 drivers/usb/dwc2/gadget.c 		if (hsotg->eps_out[ep])
hsotg            4487 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_ep_disable_lock(&hsotg->eps_out[ep]->ep);
hsotg            4490 drivers/usb/dwc2/gadget.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4492 drivers/usb/dwc2/gadget.c 	hsotg->driver = NULL;
hsotg            4493 drivers/usb/dwc2/gadget.c 	hsotg->gadget.speed = USB_SPEED_UNKNOWN;
hsotg            4494 drivers/usb/dwc2/gadget.c 	hsotg->enabled = 0;
hsotg            4496 drivers/usb/dwc2/gadget.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4498 drivers/usb/dwc2/gadget.c 	if (!IS_ERR_OR_NULL(hsotg->uphy))
hsotg            4499 drivers/usb/dwc2/gadget.c 		otg_set_peripheral(hsotg->uphy->otg, NULL);
hsotg            4501 drivers/usb/dwc2/gadget.c 	if (hsotg->dr_mode == USB_DR_MODE_PERIPHERAL)
hsotg            4502 drivers/usb/dwc2/gadget.c 		dwc2_lowlevel_hw_disable(hsotg);
hsotg            4527 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = to_hsotg(gadget);
hsotg            4530 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: is_on: %d op_state: %d\n", __func__, is_on,
hsotg            4531 drivers/usb/dwc2/gadget.c 		hsotg->op_state);
hsotg            4534 drivers/usb/dwc2/gadget.c 	if (hsotg->op_state != OTG_STATE_B_PERIPHERAL) {
hsotg            4535 drivers/usb/dwc2/gadget.c 		hsotg->enabled = is_on;
hsotg            4539 drivers/usb/dwc2/gadget.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4541 drivers/usb/dwc2/gadget.c 		hsotg->enabled = 1;
hsotg            4542 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_core_init_disconnected(hsotg, false);
hsotg            4544 drivers/usb/dwc2/gadget.c 		dwc2_enable_acg(hsotg);
hsotg            4545 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_core_connect(hsotg);
hsotg            4547 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_core_disconnect(hsotg);
hsotg            4548 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_disconnect(hsotg);
hsotg            4549 drivers/usb/dwc2/gadget.c 		hsotg->enabled = 0;
hsotg            4552 drivers/usb/dwc2/gadget.c 	hsotg->gadget.speed = USB_SPEED_UNKNOWN;
hsotg            4553 drivers/usb/dwc2/gadget.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4560 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = to_hsotg(gadget);
hsotg            4563 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s: is_active: %d\n", __func__, is_active);
hsotg            4564 drivers/usb/dwc2/gadget.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4570 drivers/usb/dwc2/gadget.c 	if (hsotg->lx_state == DWC2_L2)
hsotg            4571 drivers/usb/dwc2/gadget.c 		dwc2_exit_partial_power_down(hsotg, false);
hsotg            4574 drivers/usb/dwc2/gadget.c 		hsotg->op_state = OTG_STATE_B_PERIPHERAL;
hsotg            4576 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_core_init_disconnected(hsotg, false);
hsotg            4577 drivers/usb/dwc2/gadget.c 		if (hsotg->enabled) {
hsotg            4579 drivers/usb/dwc2/gadget.c 			dwc2_enable_acg(hsotg);
hsotg            4580 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_core_connect(hsotg);
hsotg            4583 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_core_disconnect(hsotg);
hsotg            4584 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_disconnect(hsotg);
hsotg            4587 drivers/usb/dwc2/gadget.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4600 drivers/usb/dwc2/gadget.c 	struct dwc2_hsotg *hsotg = to_hsotg(gadget);
hsotg            4602 drivers/usb/dwc2/gadget.c 	if (IS_ERR_OR_NULL(hsotg->uphy))
hsotg            4604 drivers/usb/dwc2/gadget.c 	return usb_phy_set_power(hsotg->uphy, mA);
hsotg            4627 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_initep(struct dwc2_hsotg *hsotg,
hsotg            4651 drivers/usb/dwc2/gadget.c 		list_add_tail(&hs_ep->ep.ep_list, &hsotg->gadget.ep_list);
hsotg            4653 drivers/usb/dwc2/gadget.c 	hs_ep->parent = hsotg;
hsotg            4656 drivers/usb/dwc2/gadget.c 	if (hsotg->params.speed == DWC2_SPEED_PARAM_LOW)
hsotg            4666 drivers/usb/dwc2/gadget.c 		if (hsotg->params.speed != DWC2_SPEED_PARAM_LOW) {
hsotg            4683 drivers/usb/dwc2/gadget.c 	if (using_dma(hsotg)) {
hsotg            4687 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, next, DIEPCTL(epnum));
hsotg            4689 drivers/usb/dwc2/gadget.c 			dwc2_writel(hsotg, next, DOEPCTL(epnum));
hsotg            4699 drivers/usb/dwc2/gadget.c static int dwc2_hsotg_hw_cfg(struct dwc2_hsotg *hsotg)
hsotg            4707 drivers/usb/dwc2/gadget.c 	hsotg->num_of_eps = hsotg->hw_params.num_dev_ep;
hsotg            4710 drivers/usb/dwc2/gadget.c 	hsotg->num_of_eps++;
hsotg            4712 drivers/usb/dwc2/gadget.c 	hsotg->eps_in[0] = devm_kzalloc(hsotg->dev,
hsotg            4715 drivers/usb/dwc2/gadget.c 	if (!hsotg->eps_in[0])
hsotg            4718 drivers/usb/dwc2/gadget.c 	hsotg->eps_out[0] = hsotg->eps_in[0];
hsotg            4720 drivers/usb/dwc2/gadget.c 	cfg = hsotg->hw_params.dev_ep_dirs;
hsotg            4721 drivers/usb/dwc2/gadget.c 	for (i = 1, cfg >>= 2; i < hsotg->num_of_eps; i++, cfg >>= 2) {
hsotg            4725 drivers/usb/dwc2/gadget.c 			hsotg->eps_in[i] = devm_kzalloc(hsotg->dev,
hsotg            4727 drivers/usb/dwc2/gadget.c 			if (!hsotg->eps_in[i])
hsotg            4732 drivers/usb/dwc2/gadget.c 			hsotg->eps_out[i] = devm_kzalloc(hsotg->dev,
hsotg            4734 drivers/usb/dwc2/gadget.c 			if (!hsotg->eps_out[i])
hsotg            4739 drivers/usb/dwc2/gadget.c 	hsotg->fifo_mem = hsotg->hw_params.total_fifo_size;
hsotg            4740 drivers/usb/dwc2/gadget.c 	hsotg->dedicated_fifos = hsotg->hw_params.en_multiple_tx_fifo;
hsotg            4742 drivers/usb/dwc2/gadget.c 	dev_info(hsotg->dev, "EPs: %d, %s fifos, %d entries in SPRAM\n",
hsotg            4743 drivers/usb/dwc2/gadget.c 		 hsotg->num_of_eps,
hsotg            4744 drivers/usb/dwc2/gadget.c 		 hsotg->dedicated_fifos ? "dedicated" : "shared",
hsotg            4745 drivers/usb/dwc2/gadget.c 		 hsotg->fifo_mem);
hsotg            4754 drivers/usb/dwc2/gadget.c static void dwc2_hsotg_dump(struct dwc2_hsotg *hsotg)
hsotg            4757 drivers/usb/dwc2/gadget.c 	struct device *dev = hsotg->dev;
hsotg            4762 drivers/usb/dwc2/gadget.c 		 dwc2_readl(hsotg, DCFG), dwc2_readl(hsotg, DCTL),
hsotg            4763 drivers/usb/dwc2/gadget.c 		 dwc2_readl(hsotg, DIEPMSK));
hsotg            4766 drivers/usb/dwc2/gadget.c 		 dwc2_readl(hsotg, GAHBCFG), dwc2_readl(hsotg, GHWCFG1));
hsotg            4769 drivers/usb/dwc2/gadget.c 		 dwc2_readl(hsotg, GRXFSIZ), dwc2_readl(hsotg, GNPTXFSIZ));
hsotg            4773 drivers/usb/dwc2/gadget.c 	for (idx = 1; idx < hsotg->num_of_eps; idx++) {
hsotg            4774 drivers/usb/dwc2/gadget.c 		val = dwc2_readl(hsotg, DPTXFSIZN(idx));
hsotg            4780 drivers/usb/dwc2/gadget.c 	for (idx = 0; idx < hsotg->num_of_eps; idx++) {
hsotg            4783 drivers/usb/dwc2/gadget.c 			 dwc2_readl(hsotg, DIEPCTL(idx)),
hsotg            4784 drivers/usb/dwc2/gadget.c 			 dwc2_readl(hsotg, DIEPTSIZ(idx)),
hsotg            4785 drivers/usb/dwc2/gadget.c 			 dwc2_readl(hsotg, DIEPDMA(idx)));
hsotg            4787 drivers/usb/dwc2/gadget.c 		val = dwc2_readl(hsotg, DOEPCTL(idx));
hsotg            4790 drivers/usb/dwc2/gadget.c 			 idx, dwc2_readl(hsotg, DOEPCTL(idx)),
hsotg            4791 drivers/usb/dwc2/gadget.c 			 dwc2_readl(hsotg, DOEPTSIZ(idx)),
hsotg            4792 drivers/usb/dwc2/gadget.c 			 dwc2_readl(hsotg, DOEPDMA(idx)));
hsotg            4796 drivers/usb/dwc2/gadget.c 		 dwc2_readl(hsotg, DVBUSDIS), dwc2_readl(hsotg, DVBUSPULSE));
hsotg            4805 drivers/usb/dwc2/gadget.c int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
hsotg            4807 drivers/usb/dwc2/gadget.c 	struct device *dev = hsotg->dev;
hsotg            4813 drivers/usb/dwc2/gadget.c 		hsotg->params.g_np_tx_fifo_size);
hsotg            4814 drivers/usb/dwc2/gadget.c 	dev_dbg(dev, "RXFIFO size: %d\n", hsotg->params.g_rx_fifo_size);
hsotg            4816 drivers/usb/dwc2/gadget.c 	hsotg->gadget.max_speed = USB_SPEED_HIGH;
hsotg            4817 drivers/usb/dwc2/gadget.c 	hsotg->gadget.ops = &dwc2_hsotg_gadget_ops;
hsotg            4818 drivers/usb/dwc2/gadget.c 	hsotg->gadget.name = dev_name(dev);
hsotg            4819 drivers/usb/dwc2/gadget.c 	hsotg->remote_wakeup_allowed = 0;
hsotg            4821 drivers/usb/dwc2/gadget.c 	if (hsotg->params.lpm)
hsotg            4822 drivers/usb/dwc2/gadget.c 		hsotg->gadget.lpm_capable = true;
hsotg            4824 drivers/usb/dwc2/gadget.c 	if (hsotg->dr_mode == USB_DR_MODE_OTG)
hsotg            4825 drivers/usb/dwc2/gadget.c 		hsotg->gadget.is_otg = 1;
hsotg            4826 drivers/usb/dwc2/gadget.c 	else if (hsotg->dr_mode == USB_DR_MODE_PERIPHERAL)
hsotg            4827 drivers/usb/dwc2/gadget.c 		hsotg->op_state = OTG_STATE_B_PERIPHERAL;
hsotg            4829 drivers/usb/dwc2/gadget.c 	ret = dwc2_hsotg_hw_cfg(hsotg);
hsotg            4831 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "Hardware configuration failed: %d\n", ret);
hsotg            4835 drivers/usb/dwc2/gadget.c 	hsotg->ctrl_buff = devm_kzalloc(hsotg->dev,
hsotg            4837 drivers/usb/dwc2/gadget.c 	if (!hsotg->ctrl_buff)
hsotg            4840 drivers/usb/dwc2/gadget.c 	hsotg->ep0_buff = devm_kzalloc(hsotg->dev,
hsotg            4842 drivers/usb/dwc2/gadget.c 	if (!hsotg->ep0_buff)
hsotg            4845 drivers/usb/dwc2/gadget.c 	if (using_desc_dma(hsotg)) {
hsotg            4846 drivers/usb/dwc2/gadget.c 		ret = dwc2_gadget_alloc_ctrl_desc_chains(hsotg);
hsotg            4851 drivers/usb/dwc2/gadget.c 	ret = devm_request_irq(hsotg->dev, hsotg->irq, dwc2_hsotg_irq,
hsotg            4852 drivers/usb/dwc2/gadget.c 			       IRQF_SHARED, dev_name(hsotg->dev), hsotg);
hsotg            4860 drivers/usb/dwc2/gadget.c 	if (hsotg->num_of_eps == 0) {
hsotg            4867 drivers/usb/dwc2/gadget.c 	INIT_LIST_HEAD(&hsotg->gadget.ep_list);
hsotg            4868 drivers/usb/dwc2/gadget.c 	hsotg->gadget.ep0 = &hsotg->eps_out[0]->ep;
hsotg            4872 drivers/usb/dwc2/gadget.c 	hsotg->ctrl_req = dwc2_hsotg_ep_alloc_request(&hsotg->eps_out[0]->ep,
hsotg            4874 drivers/usb/dwc2/gadget.c 	if (!hsotg->ctrl_req) {
hsotg            4880 drivers/usb/dwc2/gadget.c 	for (epnum = 0; epnum < hsotg->num_of_eps; epnum++) {
hsotg            4881 drivers/usb/dwc2/gadget.c 		if (hsotg->eps_in[epnum])
hsotg            4882 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_initep(hsotg, hsotg->eps_in[epnum],
hsotg            4884 drivers/usb/dwc2/gadget.c 		if (hsotg->eps_out[epnum])
hsotg            4885 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_initep(hsotg, hsotg->eps_out[epnum],
hsotg            4889 drivers/usb/dwc2/gadget.c 	ret = usb_add_gadget_udc(dev, &hsotg->gadget);
hsotg            4891 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep,
hsotg            4892 drivers/usb/dwc2/gadget.c 					   hsotg->ctrl_req);
hsotg            4895 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_dump(hsotg);
hsotg            4905 drivers/usb/dwc2/gadget.c int dwc2_hsotg_remove(struct dwc2_hsotg *hsotg)
hsotg            4907 drivers/usb/dwc2/gadget.c 	usb_del_gadget_udc(&hsotg->gadget);
hsotg            4908 drivers/usb/dwc2/gadget.c 	dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep, hsotg->ctrl_req);
hsotg            4913 drivers/usb/dwc2/gadget.c int dwc2_hsotg_suspend(struct dwc2_hsotg *hsotg)
hsotg            4917 drivers/usb/dwc2/gadget.c 	if (hsotg->lx_state != DWC2_L0)
hsotg            4920 drivers/usb/dwc2/gadget.c 	if (hsotg->driver) {
hsotg            4923 drivers/usb/dwc2/gadget.c 		dev_info(hsotg->dev, "suspending usb gadget %s\n",
hsotg            4924 drivers/usb/dwc2/gadget.c 			 hsotg->driver->driver.name);
hsotg            4926 drivers/usb/dwc2/gadget.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4927 drivers/usb/dwc2/gadget.c 		if (hsotg->enabled)
hsotg            4928 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_core_disconnect(hsotg);
hsotg            4929 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_disconnect(hsotg);
hsotg            4930 drivers/usb/dwc2/gadget.c 		hsotg->gadget.speed = USB_SPEED_UNKNOWN;
hsotg            4931 drivers/usb/dwc2/gadget.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4933 drivers/usb/dwc2/gadget.c 		for (ep = 0; ep < hsotg->num_of_eps; ep++) {
hsotg            4934 drivers/usb/dwc2/gadget.c 			if (hsotg->eps_in[ep])
hsotg            4935 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_ep_disable_lock(&hsotg->eps_in[ep]->ep);
hsotg            4936 drivers/usb/dwc2/gadget.c 			if (hsotg->eps_out[ep])
hsotg            4937 drivers/usb/dwc2/gadget.c 				dwc2_hsotg_ep_disable_lock(&hsotg->eps_out[ep]->ep);
hsotg            4944 drivers/usb/dwc2/gadget.c int dwc2_hsotg_resume(struct dwc2_hsotg *hsotg)
hsotg            4948 drivers/usb/dwc2/gadget.c 	if (hsotg->lx_state == DWC2_L2)
hsotg            4951 drivers/usb/dwc2/gadget.c 	if (hsotg->driver) {
hsotg            4952 drivers/usb/dwc2/gadget.c 		dev_info(hsotg->dev, "resuming usb gadget %s\n",
hsotg            4953 drivers/usb/dwc2/gadget.c 			 hsotg->driver->driver.name);
hsotg            4955 drivers/usb/dwc2/gadget.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4956 drivers/usb/dwc2/gadget.c 		dwc2_hsotg_core_init_disconnected(hsotg, false);
hsotg            4957 drivers/usb/dwc2/gadget.c 		if (hsotg->enabled) {
hsotg            4959 drivers/usb/dwc2/gadget.c 			dwc2_enable_acg(hsotg);
hsotg            4960 drivers/usb/dwc2/gadget.c 			dwc2_hsotg_core_connect(hsotg);
hsotg            4962 drivers/usb/dwc2/gadget.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4975 drivers/usb/dwc2/gadget.c int dwc2_backup_device_registers(struct dwc2_hsotg *hsotg)
hsotg            4980 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s\n", __func__);
hsotg            4983 drivers/usb/dwc2/gadget.c 	dr = &hsotg->dr_backup;
hsotg            4985 drivers/usb/dwc2/gadget.c 	dr->dcfg = dwc2_readl(hsotg, DCFG);
hsotg            4986 drivers/usb/dwc2/gadget.c 	dr->dctl = dwc2_readl(hsotg, DCTL);
hsotg            4987 drivers/usb/dwc2/gadget.c 	dr->daintmsk = dwc2_readl(hsotg, DAINTMSK);
hsotg            4988 drivers/usb/dwc2/gadget.c 	dr->diepmsk = dwc2_readl(hsotg, DIEPMSK);
hsotg            4989 drivers/usb/dwc2/gadget.c 	dr->doepmsk = dwc2_readl(hsotg, DOEPMSK);
hsotg            4991 drivers/usb/dwc2/gadget.c 	for (i = 0; i < hsotg->num_of_eps; i++) {
hsotg            4993 drivers/usb/dwc2/gadget.c 		dr->diepctl[i] = dwc2_readl(hsotg, DIEPCTL(i));
hsotg            5001 drivers/usb/dwc2/gadget.c 		dr->dieptsiz[i] = dwc2_readl(hsotg, DIEPTSIZ(i));
hsotg            5002 drivers/usb/dwc2/gadget.c 		dr->diepdma[i] = dwc2_readl(hsotg, DIEPDMA(i));
hsotg            5005 drivers/usb/dwc2/gadget.c 		dr->doepctl[i] = dwc2_readl(hsotg, DOEPCTL(i));
hsotg            5013 drivers/usb/dwc2/gadget.c 		dr->doeptsiz[i] = dwc2_readl(hsotg, DOEPTSIZ(i));
hsotg            5014 drivers/usb/dwc2/gadget.c 		dr->doepdma[i] = dwc2_readl(hsotg, DOEPDMA(i));
hsotg            5015 drivers/usb/dwc2/gadget.c 		dr->dtxfsiz[i] = dwc2_readl(hsotg, DPTXFSIZN(i));
hsotg            5031 drivers/usb/dwc2/gadget.c int dwc2_restore_device_registers(struct dwc2_hsotg *hsotg, int remote_wakeup)
hsotg            5036 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "%s\n", __func__);
hsotg            5039 drivers/usb/dwc2/gadget.c 	dr = &hsotg->dr_backup;
hsotg            5041 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: no device registers to restore\n",
hsotg            5048 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->dctl, DCTL);
hsotg            5050 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dr->daintmsk, DAINTMSK);
hsotg            5051 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dr->diepmsk, DIEPMSK);
hsotg            5052 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dr->doepmsk, DOEPMSK);
hsotg            5054 drivers/usb/dwc2/gadget.c 	for (i = 0; i < hsotg->num_of_eps; i++) {
hsotg            5056 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->dieptsiz[i], DIEPTSIZ(i));
hsotg            5057 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->diepdma[i], DIEPDMA(i));
hsotg            5058 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->doeptsiz[i], DOEPTSIZ(i));
hsotg            5064 drivers/usb/dwc2/gadget.c 		if (hsotg->params.g_dma_desc &&
hsotg            5066 drivers/usb/dwc2/gadget.c 			dr->diepdma[i] = hsotg->eps_in[i]->desc_list_dma;
hsotg            5067 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->dtxfsiz[i], DPTXFSIZN(i));
hsotg            5068 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->diepctl[i], DIEPCTL(i));
hsotg            5070 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->doeptsiz[i], DOEPTSIZ(i));
hsotg            5076 drivers/usb/dwc2/gadget.c 		if (hsotg->params.g_dma_desc &&
hsotg            5078 drivers/usb/dwc2/gadget.c 			dr->doepdma[i] = hsotg->eps_out[i]->desc_list_dma;
hsotg            5079 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->doepdma[i], DOEPDMA(i));
hsotg            5080 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->doepctl[i], DOEPCTL(i));
hsotg            5092 drivers/usb/dwc2/gadget.c void dwc2_gadget_init_lpm(struct dwc2_hsotg *hsotg)
hsotg            5096 drivers/usb/dwc2/gadget.c 	if (!hsotg->params.lpm)
hsotg            5100 drivers/usb/dwc2/gadget.c 	val |= hsotg->params.hird_threshold_en ? GLPMCFG_HIRD_THRES_EN : 0;
hsotg            5101 drivers/usb/dwc2/gadget.c 	val |= hsotg->params.lpm_clock_gating ? GLPMCFG_ENBLSLPM : 0;
hsotg            5102 drivers/usb/dwc2/gadget.c 	val |= hsotg->params.hird_threshold << GLPMCFG_HIRD_THRES_SHIFT;
hsotg            5103 drivers/usb/dwc2/gadget.c 	val |= hsotg->params.besl ? GLPMCFG_ENBESL : 0;
hsotg            5106 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, val, GLPMCFG);
hsotg            5107 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "GLPMCFG=0x%08x\n", dwc2_readl(hsotg, GLPMCFG));
hsotg            5110 drivers/usb/dwc2/gadget.c 	if (hsotg->params.service_interval)
hsotg            5111 drivers/usb/dwc2/gadget.c 		dwc2_set_bit(hsotg, GINTMSK2, GINTMSK2_WKUP_ALERT_INT_MSK);
hsotg            5120 drivers/usb/dwc2/gadget.c void dwc2_gadget_program_ref_clk(struct dwc2_hsotg *hsotg)
hsotg            5125 drivers/usb/dwc2/gadget.c 	val |= hsotg->params.ref_clk_per << GREFCLK_REFCLKPER_SHIFT;
hsotg            5126 drivers/usb/dwc2/gadget.c 	val |= hsotg->params.sof_cnt_wkup_alert <<
hsotg            5129 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, val, GREFCLK);
hsotg            5130 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "GREFCLK=0x%08x\n", dwc2_readl(hsotg, GREFCLK));
hsotg            5140 drivers/usb/dwc2/gadget.c int dwc2_gadget_enter_hibernation(struct dwc2_hsotg *hsotg)
hsotg            5146 drivers/usb/dwc2/gadget.c 	hsotg->lx_state = DWC2_L2;
hsotg            5147 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "Start of hibernation completed\n");
hsotg            5148 drivers/usb/dwc2/gadget.c 	ret = dwc2_backup_global_registers(hsotg);
hsotg            5150 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: failed to backup global registers\n",
hsotg            5154 drivers/usb/dwc2/gadget.c 	ret = dwc2_backup_device_registers(hsotg);
hsotg            5156 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: failed to backup device registers\n",
hsotg            5163 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5167 drivers/usb/dwc2/gadget.c 	hsotg->hibernated = 1;
hsotg            5170 drivers/usb/dwc2/gadget.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5172 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5176 drivers/usb/dwc2/gadget.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5180 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5184 drivers/usb/dwc2/gadget.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5186 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5190 drivers/usb/dwc2/gadget.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5192 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5196 drivers/usb/dwc2/gadget.c 	hsotg->gr_backup.gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5197 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "Hibernation completed\n");
hsotg            5213 drivers/usb/dwc2/gadget.c int dwc2_gadget_exit_hibernation(struct dwc2_hsotg *hsotg,
hsotg            5223 drivers/usb/dwc2/gadget.c 	gr = &hsotg->gr_backup;
hsotg            5224 drivers/usb/dwc2/gadget.c 	dr = &hsotg->dr_backup;
hsotg            5226 drivers/usb/dwc2/gadget.c 	if (!hsotg->hibernated) {
hsotg            5227 drivers/usb/dwc2/gadget.c 		dev_dbg(hsotg->dev, "Already exited from Hibernation\n");
hsotg            5230 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev,
hsotg            5234 drivers/usb/dwc2/gadget.c 	dwc2_hib_restore_common(hsotg, rem_wakeup, 0);
hsotg            5238 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg            5242 drivers/usb/dwc2/gadget.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5244 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5248 drivers/usb/dwc2/gadget.c 		pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg            5250 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg            5254 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, gr->gusbcfg, GUSBCFG);
hsotg            5255 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dr->dcfg, DCFG);
hsotg            5256 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, dr->dctl, DCTL);
hsotg            5259 drivers/usb/dwc2/gadget.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5261 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5266 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dr->dctl | DCTL_RMTWKUPSIG, DCTL);
hsotg            5270 drivers/usb/dwc2/gadget.c 		dctl = dwc2_readl(hsotg, DCTL);
hsotg            5272 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dctl, DCTL);
hsotg            5277 drivers/usb/dwc2/gadget.c 	dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg            5280 drivers/usb/dwc2/gadget.c 	ret = dwc2_restore_global_registers(hsotg);
hsotg            5282 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: failed to restore registers\n",
hsotg            5288 drivers/usb/dwc2/gadget.c 	ret = dwc2_restore_device_registers(hsotg, rem_wakeup);
hsotg            5290 drivers/usb/dwc2/gadget.c 		dev_err(hsotg->dev, "%s: failed to restore device registers\n",
hsotg            5297 drivers/usb/dwc2/gadget.c 		dctl = dwc2_readl(hsotg, DCTL);
hsotg            5299 drivers/usb/dwc2/gadget.c 		dwc2_writel(hsotg, dctl, DCTL);
hsotg            5302 drivers/usb/dwc2/gadget.c 	hsotg->hibernated = 0;
hsotg            5303 drivers/usb/dwc2/gadget.c 	hsotg->lx_state = DWC2_L0;
hsotg            5304 drivers/usb/dwc2/gadget.c 	dev_dbg(hsotg->dev, "Hibernation recovery completes here\n");
hsotg              59 drivers/usb/dwc2/hcd.c static void dwc2_port_resume(struct dwc2_hsotg *hsotg);
hsotg              73 drivers/usb/dwc2/hcd.c static void dwc2_enable_common_interrupts(struct dwc2_hsotg *hsotg)
hsotg              78 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0xffffffff, GOTGINT);
hsotg              81 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg              86 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.host_dma)
hsotg              88 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.external_id_pin_ctl)
hsotg              94 drivers/usb/dwc2/hcd.c 	if (dwc2_is_device_mode(hsotg) && hsotg->params.lpm)
hsotg              97 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, intmsk, GINTMSK);
hsotg             100 drivers/usb/dwc2/hcd.c static int dwc2_gahbcfg_init(struct dwc2_hsotg *hsotg)
hsotg             102 drivers/usb/dwc2/hcd.c 	u32 ahbcfg = dwc2_readl(hsotg, GAHBCFG);
hsotg             104 drivers/usb/dwc2/hcd.c 	switch (hsotg->hw_params.arch) {
hsotg             106 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "External DMA Mode not supported\n");
hsotg             110 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "Internal DMA Mode\n");
hsotg             111 drivers/usb/dwc2/hcd.c 		if (hsotg->params.ahbcfg != -1) {
hsotg             113 drivers/usb/dwc2/hcd.c 			ahbcfg |= hsotg->params.ahbcfg &
hsotg             120 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "Slave Only Mode\n");
hsotg             124 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma)
hsotg             127 drivers/usb/dwc2/hcd.c 		hsotg->params.dma_desc_enable = false;
hsotg             129 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, ahbcfg, GAHBCFG);
hsotg             134 drivers/usb/dwc2/hcd.c static void dwc2_gusbcfg_init(struct dwc2_hsotg *hsotg)
hsotg             138 drivers/usb/dwc2/hcd.c 	usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg             141 drivers/usb/dwc2/hcd.c 	switch (hsotg->hw_params.op_mode) {
hsotg             143 drivers/usb/dwc2/hcd.c 		if (hsotg->params.otg_cap ==
hsotg             146 drivers/usb/dwc2/hcd.c 		if (hsotg->params.otg_cap !=
hsotg             154 drivers/usb/dwc2/hcd.c 		if (hsotg->params.otg_cap !=
hsotg             166 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg             169 drivers/usb/dwc2/hcd.c static int dwc2_vbus_supply_init(struct dwc2_hsotg *hsotg)
hsotg             171 drivers/usb/dwc2/hcd.c 	if (hsotg->vbus_supply)
hsotg             172 drivers/usb/dwc2/hcd.c 		return regulator_enable(hsotg->vbus_supply);
hsotg             177 drivers/usb/dwc2/hcd.c static int dwc2_vbus_supply_exit(struct dwc2_hsotg *hsotg)
hsotg             179 drivers/usb/dwc2/hcd.c 	if (hsotg->vbus_supply)
hsotg             180 drivers/usb/dwc2/hcd.c 		return regulator_disable(hsotg->vbus_supply);
hsotg             190 drivers/usb/dwc2/hcd.c static void dwc2_enable_host_interrupts(struct dwc2_hsotg *hsotg)
hsotg             194 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s()\n", __func__);
hsotg             197 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0, GINTMSK);
hsotg             198 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0, HAINTMSK);
hsotg             201 drivers/usb/dwc2/hcd.c 	dwc2_enable_common_interrupts(hsotg);
hsotg             204 drivers/usb/dwc2/hcd.c 	intmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             206 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, intmsk, GINTMSK);
hsotg             214 drivers/usb/dwc2/hcd.c static void dwc2_disable_host_interrupts(struct dwc2_hsotg *hsotg)
hsotg             216 drivers/usb/dwc2/hcd.c 	u32 intmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             221 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, intmsk, GINTMSK);
hsotg             231 drivers/usb/dwc2/hcd.c static void dwc2_calculate_dynamic_fifo(struct dwc2_hsotg *hsotg)
hsotg             233 drivers/usb/dwc2/hcd.c 	struct dwc2_core_params *params = &hsotg->params;
hsotg             234 drivers/usb/dwc2/hcd.c 	struct dwc2_hw_params *hw = &hsotg->hw_params;
hsotg             287 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "invalid fifo sizes\n");
hsotg             290 drivers/usb/dwc2/hcd.c static void dwc2_config_fifos(struct dwc2_hsotg *hsotg)
hsotg             292 drivers/usb/dwc2/hcd.c 	struct dwc2_core_params *params = &hsotg->params;
hsotg             298 drivers/usb/dwc2/hcd.c 	dwc2_calculate_dynamic_fifo(hsotg);
hsotg             301 drivers/usb/dwc2/hcd.c 	grxfsiz = dwc2_readl(hsotg, GRXFSIZ);
hsotg             302 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "initial grxfsiz=%08x\n", grxfsiz);
hsotg             306 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, grxfsiz, GRXFSIZ);
hsotg             307 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "new grxfsiz=%08x\n",
hsotg             308 drivers/usb/dwc2/hcd.c 		dwc2_readl(hsotg, GRXFSIZ));
hsotg             311 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "initial gnptxfsiz=%08x\n",
hsotg             312 drivers/usb/dwc2/hcd.c 		dwc2_readl(hsotg, GNPTXFSIZ));
hsotg             317 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, nptxfsiz, GNPTXFSIZ);
hsotg             318 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "new gnptxfsiz=%08x\n",
hsotg             319 drivers/usb/dwc2/hcd.c 		dwc2_readl(hsotg, GNPTXFSIZ));
hsotg             322 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "initial hptxfsiz=%08x\n",
hsotg             323 drivers/usb/dwc2/hcd.c 		dwc2_readl(hsotg, HPTXFSIZ));
hsotg             329 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hptxfsiz, HPTXFSIZ);
hsotg             330 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "new hptxfsiz=%08x\n",
hsotg             331 drivers/usb/dwc2/hcd.c 		dwc2_readl(hsotg, HPTXFSIZ));
hsotg             333 drivers/usb/dwc2/hcd.c 	if (hsotg->params.en_multiple_tx_fifo &&
hsotg             334 drivers/usb/dwc2/hcd.c 	    hsotg->hw_params.snpsid >= DWC2_CORE_REV_2_91a) {
hsotg             340 drivers/usb/dwc2/hcd.c 		dfifocfg = dwc2_readl(hsotg, GDFIFOCFG);
hsotg             347 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, dfifocfg, GDFIFOCFG);
hsotg             361 drivers/usb/dwc2/hcd.c u32 dwc2_calc_frame_interval(struct dwc2_hsotg *hsotg)
hsotg             367 drivers/usb/dwc2/hcd.c 	usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg             368 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg             373 drivers/usb/dwc2/hcd.c 	if ((usbcfg & GUSBCFG_PHYSEL) && hsotg->hw_params.fs_phy_type ==
hsotg             386 drivers/usb/dwc2/hcd.c 	    hsotg->hw_params.fs_phy_type == GHWCFG2_FS_PHY_TYPE_SHARED_UTMI)
hsotg             389 drivers/usb/dwc2/hcd.c 	    hsotg->hw_params.fs_phy_type == GHWCFG2_FS_PHY_TYPE_DEDICATED)
hsotg             408 drivers/usb/dwc2/hcd.c void dwc2_read_packet(struct dwc2_hsotg *hsotg, u8 *dest, u16 bytes)
hsotg             420 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "%s(%p,%p,%d)\n", __func__, hsotg, dest, bytes);
hsotg             423 drivers/usb/dwc2/hcd.c 		*data_buf = dwc2_readl(hsotg, HCFIFO(0));
hsotg             437 drivers/usb/dwc2/hcd.c static void dwc2_dump_channel_info(struct dwc2_hsotg *hsotg,
hsotg             441 drivers/usb/dwc2/hcd.c 	int num_channels = hsotg->params.host_channels;
hsotg             452 drivers/usb/dwc2/hcd.c 	hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
hsotg             453 drivers/usb/dwc2/hcd.c 	hcsplt = dwc2_readl(hsotg, HCSPLT(chan->hc_num));
hsotg             454 drivers/usb/dwc2/hcd.c 	hctsiz = dwc2_readl(hsotg, HCTSIZ(chan->hc_num));
hsotg             455 drivers/usb/dwc2/hcd.c 	hc_dma = dwc2_readl(hsotg, HCDMA(chan->hc_num));
hsotg             457 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  Assigned to channel %p:\n", chan);
hsotg             458 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    hcchar 0x%08x, hcsplt 0x%08x\n",
hsotg             460 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    hctsiz 0x%08x, hc_dma 0x%08x\n",
hsotg             462 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    dev_addr: %d, ep_num: %d, ep_is_in: %d\n",
hsotg             464 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    ep_type: %d\n", chan->ep_type);
hsotg             465 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    max_packet: %d\n", chan->max_packet);
hsotg             466 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    data_pid_start: %d\n", chan->data_pid_start);
hsotg             467 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    xfer_started: %d\n", chan->xfer_started);
hsotg             468 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    halt_status: %d\n", chan->halt_status);
hsotg             469 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    xfer_buf: %p\n", chan->xfer_buf);
hsotg             470 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    xfer_dma: %08lx\n",
hsotg             472 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    xfer_len: %d\n", chan->xfer_len);
hsotg             473 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "    qh: %p\n", chan->qh);
hsotg             474 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  NP inactive sched:\n");
hsotg             475 drivers/usb/dwc2/hcd.c 	list_for_each_entry(qh, &hsotg->non_periodic_sched_inactive,
hsotg             477 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    %p\n", qh);
hsotg             478 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  NP waiting sched:\n");
hsotg             479 drivers/usb/dwc2/hcd.c 	list_for_each_entry(qh, &hsotg->non_periodic_sched_waiting,
hsotg             481 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    %p\n", qh);
hsotg             482 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  NP active sched:\n");
hsotg             483 drivers/usb/dwc2/hcd.c 	list_for_each_entry(qh, &hsotg->non_periodic_sched_active,
hsotg             485 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    %p\n", qh);
hsotg             486 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  Channels:\n");
hsotg             488 drivers/usb/dwc2/hcd.c 		struct dwc2_host_chan *chan = hsotg->hc_ptr_array[i];
hsotg             490 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    %2d: %p\n", i, chan);
hsotg             497 drivers/usb/dwc2/hcd.c static void dwc2_host_start(struct dwc2_hsotg *hsotg)
hsotg             499 drivers/usb/dwc2/hcd.c 	struct usb_hcd *hcd = dwc2_hsotg_to_hcd(hsotg);
hsotg             501 drivers/usb/dwc2/hcd.c 	hcd->self.is_b_host = dwc2_hcd_is_b_host(hsotg);
hsotg             505 drivers/usb/dwc2/hcd.c static void dwc2_host_disconnect(struct dwc2_hsotg *hsotg)
hsotg             507 drivers/usb/dwc2/hcd.c 	struct usb_hcd *hcd = dwc2_hsotg_to_hcd(hsotg);
hsotg             512 drivers/usb/dwc2/hcd.c static void dwc2_host_hub_info(struct dwc2_hsotg *hsotg, void *context,
hsotg             530 drivers/usb/dwc2/hcd.c static void dwc2_hc_enable_slave_ints(struct dwc2_hsotg *hsotg,
hsotg             538 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "control/bulk\n");
hsotg             566 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "intr\n");
hsotg             588 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "isoc\n");
hsotg             599 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "## Unknown EP type ##\n");
hsotg             603 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
hsotg             605 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "set HCINTMSK to %08x\n", hcintmsk);
hsotg             608 drivers/usb/dwc2/hcd.c static void dwc2_hc_enable_dma_ints(struct dwc2_hsotg *hsotg,
hsotg             617 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.dma_desc_enable) {
hsotg             619 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "desc DMA disabled\n");
hsotg             623 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "desc DMA enabled\n");
hsotg             631 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "setting ACK\n");
hsotg             640 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
hsotg             642 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "set HCINTMSK to %08x\n", hcintmsk);
hsotg             645 drivers/usb/dwc2/hcd.c static void dwc2_hc_enable_ints(struct dwc2_hsotg *hsotg,
hsotg             650 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma) {
hsotg             652 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "DMA enabled\n");
hsotg             653 drivers/usb/dwc2/hcd.c 		dwc2_hc_enable_dma_ints(hsotg, chan);
hsotg             656 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "DMA disabled\n");
hsotg             657 drivers/usb/dwc2/hcd.c 		dwc2_hc_enable_slave_ints(hsotg, chan);
hsotg             661 drivers/usb/dwc2/hcd.c 	intmsk = dwc2_readl(hsotg, HAINTMSK);
hsotg             663 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, intmsk, HAINTMSK);
hsotg             665 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "set HAINTMSK to %08x\n", intmsk);
hsotg             668 drivers/usb/dwc2/hcd.c 	intmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             670 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, intmsk, GINTMSK);
hsotg             672 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "set GINTMSK to %08x\n", intmsk);
hsotg             686 drivers/usb/dwc2/hcd.c static void dwc2_hc_init(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan)
hsotg             694 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg             699 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcintmsk, HCINT(hc_num));
hsotg             702 drivers/usb/dwc2/hcd.c 	dwc2_hc_enable_ints(hsotg, chan);
hsotg             716 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcchar, HCCHAR(hc_num));
hsotg             718 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "set HCCHAR(%d) to %08x\n",
hsotg             721 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s: Channel %d\n",
hsotg             723 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Dev Addr: %d\n",
hsotg             725 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Ep Num: %d\n",
hsotg             727 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Is In: %d\n",
hsotg             729 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Is Low Speed: %d\n",
hsotg             731 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Ep Type: %d\n",
hsotg             733 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Max Pkt: %d\n",
hsotg             740 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev,
hsotg             753 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "	  comp split %d\n",
hsotg             755 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "	  xact pos %d\n",
hsotg             757 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "	  hub addr %d\n",
hsotg             759 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "	  hub port %d\n",
hsotg             761 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "	  is_in %d\n",
hsotg             763 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "	  Max Pkt %d\n",
hsotg             765 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "	  xferlen %d\n",
hsotg             770 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcsplt, HCSPLT(hc_num));
hsotg             801 drivers/usb/dwc2/hcd.c void dwc2_hc_halt(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan,
hsotg             807 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg             815 drivers/usb/dwc2/hcd.c 	if ((hsotg->params.g_dma && !hsotg->params.g_dma_desc) ||
hsotg             816 drivers/usb/dwc2/hcd.c 	    hsotg->hw_params.arch == GHWCFG2_EXT_DMA_ARCH) {
hsotg             820 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev, "%s() Channel can't be halted\n",
hsotg             827 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "!!! halt_status = %d !!!\n", halt_status);
hsotg             839 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "dequeue/error\n");
hsotg             840 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
hsotg             847 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, ~hcintmsk, HCINT(chan->hc_num));
hsotg             856 drivers/usb/dwc2/hcd.c 		hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
hsotg             878 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev,
hsotg             884 drivers/usb/dwc2/hcd.c 	hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
hsotg             888 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.dma_desc_enable) {
hsotg             890 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "desc DMA disabled\n");
hsotg             894 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "desc DMA enabled\n");
hsotg             898 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.host_dma) {
hsotg             900 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "DMA not enabled\n");
hsotg             906 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "control/bulk\n");
hsotg             907 drivers/usb/dwc2/hcd.c 			nptxsts = dwc2_readl(hsotg, GNPTXSTS);
hsotg             909 drivers/usb/dwc2/hcd.c 				dev_vdbg(hsotg->dev, "Disabling channel\n");
hsotg             914 drivers/usb/dwc2/hcd.c 				dev_vdbg(hsotg->dev, "isoc/intr\n");
hsotg             915 drivers/usb/dwc2/hcd.c 			hptxsts = dwc2_readl(hsotg, HPTXSTS);
hsotg             917 drivers/usb/dwc2/hcd.c 			    hsotg->queuing_high_bandwidth) {
hsotg             919 drivers/usb/dwc2/hcd.c 					dev_vdbg(hsotg->dev, "Disabling channel\n");
hsotg             925 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "DMA enabled\n");
hsotg             928 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
hsotg             933 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "Channel enabled\n");
hsotg             938 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "Channel disabled\n");
hsotg             943 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s: Channel %d\n", __func__,
hsotg             945 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 hcchar: 0x%08x\n",
hsotg             947 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 halt_pending: %d\n",
hsotg             949 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 halt_on_queue: %d\n",
hsotg             951 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 halt_status: %d\n",
hsotg             965 drivers/usb/dwc2/hcd.c void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan)
hsotg             977 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0, HCINTMSK(chan->hc_num));
hsotg             980 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcintmsk, HCINT(chan->hc_num));
hsotg             993 drivers/usb/dwc2/hcd.c static void dwc2_hc_set_even_odd_frame(struct dwc2_hsotg *hsotg,
hsotg            1034 drivers/usb/dwc2/hcd.c 		fifo_space = (dwc2_readl(hsotg, HPTXSTS) &
hsotg            1037 drivers/usb/dwc2/hcd.c 				(hsotg->params.host_perio_tx_fifo_size -
hsotg            1053 drivers/usb/dwc2/hcd.c 		frame_number = dwc2_hcd_get_future_frame_number(hsotg, xfer_us);
hsotg            1066 drivers/usb/dwc2/hcd.c 			dwc2_sch_vdbg(hsotg,
hsotg            1128 drivers/usb/dwc2/hcd.c static void dwc2_hc_write_packet(struct dwc2_hsotg *hsotg,
hsotg            1138 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg            1151 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, *data_buf, HCFIFO(chan->hc_num));
hsotg            1157 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, data, HCFIFO(chan->hc_num));
hsotg            1174 drivers/usb/dwc2/hcd.c static void dwc2_hc_do_ping(struct dwc2_hsotg *hsotg,
hsotg            1181 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s: Channel %d\n", __func__,
hsotg            1186 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
hsotg            1188 drivers/usb/dwc2/hcd.c 	hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
hsotg            1191 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
hsotg            1227 drivers/usb/dwc2/hcd.c static void dwc2_hc_start_transfer(struct dwc2_hsotg *hsotg,
hsotg            1230 drivers/usb/dwc2/hcd.c 	u32 max_hc_xfer_size = hsotg->params.max_transfer_size;
hsotg            1231 drivers/usb/dwc2/hcd.c 	u16 max_hc_pkt_count = hsotg->params.max_packet_count;
hsotg            1238 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg            1241 drivers/usb/dwc2/hcd.c 		if (!hsotg->params.host_dma) {
hsotg            1243 drivers/usb/dwc2/hcd.c 				dev_vdbg(hsotg->dev, "ping, no DMA\n");
hsotg            1244 drivers/usb/dwc2/hcd.c 			dwc2_hc_do_ping(hsotg, chan);
hsotg            1250 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "ping, DMA\n");
hsotg            1257 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "split\n");
hsotg            1282 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "no split\n");
hsotg            1351 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
hsotg            1353 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "Wrote %08x to HCTSIZ(%d)\n",
hsotg            1356 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s: Channel %d\n", __func__,
hsotg            1358 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Xfer Size: %d\n",
hsotg            1361 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Num Pkts: %d\n",
hsotg            1364 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Start PID: %d\n",
hsotg            1369 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma) {
hsotg            1374 drivers/usb/dwc2/hcd.c 				dev_vdbg(hsotg->dev, "align_buf\n");
hsotg            1379 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, (u32)dma_addr, HCDMA(chan->hc_num));
hsotg            1382 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "Wrote %08lx to HCDMA(%d)\n",
hsotg            1388 drivers/usb/dwc2/hcd.c 		u32 hcsplt = dwc2_readl(hsotg, HCSPLT(chan->hc_num));
hsotg            1391 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hcsplt, HCSPLT(chan->hc_num));
hsotg            1394 drivers/usb/dwc2/hcd.c 	hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
hsotg            1397 drivers/usb/dwc2/hcd.c 	dwc2_hc_set_even_odd_frame(hsotg, chan, &hcchar);
hsotg            1400 drivers/usb/dwc2/hcd.c 		dev_warn(hsotg->dev,
hsotg            1409 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Multi Cnt: %d\n",
hsotg            1413 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
hsotg            1415 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "Wrote %08x to HCCHAR(%d)\n", hcchar,
hsotg            1421 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.host_dma &&
hsotg            1424 drivers/usb/dwc2/hcd.c 		dwc2_hc_write_packet(hsotg, chan);
hsotg            1441 drivers/usb/dwc2/hcd.c void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg,
hsotg            1464 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s: Channel %d\n", __func__,
hsotg            1466 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Start PID: %d\n",
hsotg            1468 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 NTD: %d\n", chan->ntd - 1);
hsotg            1471 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
hsotg            1473 drivers/usb/dwc2/hcd.c 	dma_sync_single_for_device(hsotg->dev, chan->desc_list_addr,
hsotg            1476 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, chan->desc_list_addr, HCDMA(chan->hc_num));
hsotg            1479 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "Wrote %pad to HCDMA(%d)\n",
hsotg            1482 drivers/usb/dwc2/hcd.c 	hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
hsotg            1488 drivers/usb/dwc2/hcd.c 		dev_warn(hsotg->dev,
hsotg            1497 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "	 Multi Cnt: %d\n",
hsotg            1501 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
hsotg            1503 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "Wrote %08x to HCCHAR(%d)\n", hcchar,
hsotg            1530 drivers/usb/dwc2/hcd.c static int dwc2_hc_continue_transfer(struct dwc2_hsotg *hsotg,
hsotg            1534 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s: Channel %d\n", __func__,
hsotg            1558 drivers/usb/dwc2/hcd.c 		u32 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
hsotg            1560 drivers/usb/dwc2/hcd.c 		dwc2_hc_set_even_odd_frame(hsotg, chan, &hcchar);
hsotg            1564 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "	 IN xfer: hcchar = 0x%08x\n",
hsotg            1566 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
hsotg            1576 drivers/usb/dwc2/hcd.c 			u32 hcchar = dwc2_readl(hsotg,
hsotg            1579 drivers/usb/dwc2/hcd.c 			dwc2_hc_set_even_odd_frame(hsotg, chan,
hsotg            1584 drivers/usb/dwc2/hcd.c 		dwc2_hc_write_packet(hsotg, chan);
hsotg            1604 drivers/usb/dwc2/hcd.c static void dwc2_kill_urbs_in_qh_list(struct dwc2_hsotg *hsotg,
hsotg            1613 drivers/usb/dwc2/hcd.c 			dwc2_host_complete(hsotg, qtd, -ECONNRESET);
hsotg            1614 drivers/usb/dwc2/hcd.c 			dwc2_hcd_qtd_unlink_and_free(hsotg, qtd, qh);
hsotg            1619 drivers/usb/dwc2/hcd.c static void dwc2_qh_list_free(struct dwc2_hsotg *hsotg,
hsotg            1630 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            1633 drivers/usb/dwc2/hcd.c 	dwc2_kill_urbs_in_qh_list(hsotg, qh_list);
hsotg            1636 drivers/usb/dwc2/hcd.c 		dwc2_hcd_qh_unlink(hsotg, qh);
hsotg            1641 drivers/usb/dwc2/hcd.c 			dwc2_hcd_qtd_unlink_and_free(hsotg, qtd, qh);
hsotg            1646 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            1647 drivers/usb/dwc2/hcd.c 		dwc2_hcd_qh_free(hsotg, qh);
hsotg            1648 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            1651 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            1662 drivers/usb/dwc2/hcd.c static void dwc2_kill_all_urbs(struct dwc2_hsotg *hsotg)
hsotg            1664 drivers/usb/dwc2/hcd.c 	dwc2_kill_urbs_in_qh_list(hsotg, &hsotg->non_periodic_sched_inactive);
hsotg            1665 drivers/usb/dwc2/hcd.c 	dwc2_kill_urbs_in_qh_list(hsotg, &hsotg->non_periodic_sched_waiting);
hsotg            1666 drivers/usb/dwc2/hcd.c 	dwc2_kill_urbs_in_qh_list(hsotg, &hsotg->non_periodic_sched_active);
hsotg            1667 drivers/usb/dwc2/hcd.c 	dwc2_kill_urbs_in_qh_list(hsotg, &hsotg->periodic_sched_inactive);
hsotg            1668 drivers/usb/dwc2/hcd.c 	dwc2_kill_urbs_in_qh_list(hsotg, &hsotg->periodic_sched_ready);
hsotg            1669 drivers/usb/dwc2/hcd.c 	dwc2_kill_urbs_in_qh_list(hsotg, &hsotg->periodic_sched_assigned);
hsotg            1670 drivers/usb/dwc2/hcd.c 	dwc2_kill_urbs_in_qh_list(hsotg, &hsotg->periodic_sched_queued);
hsotg            1678 drivers/usb/dwc2/hcd.c void dwc2_hcd_start(struct dwc2_hsotg *hsotg)
hsotg            1682 drivers/usb/dwc2/hcd.c 	if (hsotg->op_state == OTG_STATE_B_HOST) {
hsotg            1688 drivers/usb/dwc2/hcd.c 		hprt0 = dwc2_read_hprt0(hsotg);
hsotg            1690 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            1693 drivers/usb/dwc2/hcd.c 	queue_delayed_work(hsotg->wq_otg, &hsotg->start_work,
hsotg            1698 drivers/usb/dwc2/hcd.c static void dwc2_hcd_cleanup_channels(struct dwc2_hsotg *hsotg)
hsotg            1700 drivers/usb/dwc2/hcd.c 	int num_channels = hsotg->params.host_channels;
hsotg            1705 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.host_dma) {
hsotg            1708 drivers/usb/dwc2/hcd.c 			channel = hsotg->hc_ptr_array[i];
hsotg            1711 drivers/usb/dwc2/hcd.c 			hcchar = dwc2_readl(hsotg, HCCHAR(i));
hsotg            1715 drivers/usb/dwc2/hcd.c 				dwc2_writel(hsotg, hcchar, HCCHAR(i));
hsotg            1721 drivers/usb/dwc2/hcd.c 		channel = hsotg->hc_ptr_array[i];
hsotg            1724 drivers/usb/dwc2/hcd.c 		hcchar = dwc2_readl(hsotg, HCCHAR(i));
hsotg            1728 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hcchar, HCCHAR(i));
hsotg            1731 drivers/usb/dwc2/hcd.c 		dwc2_hc_cleanup(hsotg, channel);
hsotg            1732 drivers/usb/dwc2/hcd.c 		list_add_tail(&channel->hc_list_entry, &hsotg->free_hc_list);
hsotg            1741 drivers/usb/dwc2/hcd.c 	if (hsotg->params.uframe_sched) {
hsotg            1742 drivers/usb/dwc2/hcd.c 		hsotg->available_host_channels =
hsotg            1743 drivers/usb/dwc2/hcd.c 			hsotg->params.host_channels;
hsotg            1745 drivers/usb/dwc2/hcd.c 		hsotg->non_periodic_channels = 0;
hsotg            1746 drivers/usb/dwc2/hcd.c 		hsotg->periodic_channels = 0;
hsotg            1757 drivers/usb/dwc2/hcd.c void dwc2_hcd_connect(struct dwc2_hsotg *hsotg)
hsotg            1759 drivers/usb/dwc2/hcd.c 	if (hsotg->lx_state != DWC2_L0)
hsotg            1760 drivers/usb/dwc2/hcd.c 		usb_hcd_resume_root_hub(hsotg->priv);
hsotg            1762 drivers/usb/dwc2/hcd.c 	hsotg->flags.b.port_connect_status_change = 1;
hsotg            1763 drivers/usb/dwc2/hcd.c 	hsotg->flags.b.port_connect_status = 1;
hsotg            1774 drivers/usb/dwc2/hcd.c void dwc2_hcd_disconnect(struct dwc2_hsotg *hsotg, bool force)
hsotg            1780 drivers/usb/dwc2/hcd.c 	hsotg->flags.b.port_connect_status_change = 1;
hsotg            1781 drivers/usb/dwc2/hcd.c 	hsotg->flags.b.port_connect_status = 0;
hsotg            1788 drivers/usb/dwc2/hcd.c 	intr = dwc2_readl(hsotg, GINTMSK);
hsotg            1790 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, intr, GINTMSK);
hsotg            1792 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, intr, GINTSTS);
hsotg            1799 drivers/usb/dwc2/hcd.c 	if (dwc2_is_device_mode(hsotg)) {
hsotg            1800 drivers/usb/dwc2/hcd.c 		if (hsotg->op_state != OTG_STATE_A_SUSPEND) {
hsotg            1801 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "Disconnect: PortPower off\n");
hsotg            1802 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, 0, HPRT0);
hsotg            1805 drivers/usb/dwc2/hcd.c 		dwc2_disable_host_interrupts(hsotg);
hsotg            1809 drivers/usb/dwc2/hcd.c 	dwc2_kill_all_urbs(hsotg);
hsotg            1811 drivers/usb/dwc2/hcd.c 	if (dwc2_is_host_mode(hsotg))
hsotg            1813 drivers/usb/dwc2/hcd.c 		dwc2_hcd_cleanup_channels(hsotg);
hsotg            1815 drivers/usb/dwc2/hcd.c 	dwc2_host_disconnect(hsotg);
hsotg            1830 drivers/usb/dwc2/hcd.c 		hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg            1832 drivers/usb/dwc2/hcd.c 			dwc2_hcd_connect(hsotg);
hsotg            1841 drivers/usb/dwc2/hcd.c static void dwc2_hcd_rem_wakeup(struct dwc2_hsotg *hsotg)
hsotg            1843 drivers/usb/dwc2/hcd.c 	if (hsotg->bus_suspended) {
hsotg            1844 drivers/usb/dwc2/hcd.c 		hsotg->flags.b.port_suspend_change = 1;
hsotg            1845 drivers/usb/dwc2/hcd.c 		usb_hcd_resume_root_hub(hsotg->priv);
hsotg            1848 drivers/usb/dwc2/hcd.c 	if (hsotg->lx_state == DWC2_L1)
hsotg            1849 drivers/usb/dwc2/hcd.c 		hsotg->flags.b.port_l1_change = 1;
hsotg            1859 drivers/usb/dwc2/hcd.c void dwc2_hcd_stop(struct dwc2_hsotg *hsotg)
hsotg            1861 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "DWC OTG HCD STOP\n");
hsotg            1870 drivers/usb/dwc2/hcd.c 	dwc2_disable_host_interrupts(hsotg);
hsotg            1873 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "PortPower off\n");
hsotg            1874 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0, HPRT0);
hsotg            1878 drivers/usb/dwc2/hcd.c static int dwc2_hcd_urb_enqueue(struct dwc2_hsotg *hsotg,
hsotg            1886 drivers/usb/dwc2/hcd.c 	if (!hsotg->flags.b.port_connect_status) {
hsotg            1888 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "Not connected\n");
hsotg            1892 drivers/usb/dwc2/hcd.c 	dev_speed = dwc2_host_get_speed(hsotg, urb->priv);
hsotg            1896 drivers/usb/dwc2/hcd.c 	    (hsotg->hw_params.fs_phy_type == GHWCFG2_FS_PHY_TYPE_DEDICATED) &&
hsotg            1897 drivers/usb/dwc2/hcd.c 	    (hsotg->hw_params.hs_phy_type == GHWCFG2_HS_PHY_TYPE_UTMI)) {
hsotg            1898 drivers/usb/dwc2/hcd.c 		u32 hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg            1909 drivers/usb/dwc2/hcd.c 	retval = dwc2_hcd_qtd_add(hsotg, qtd, qh);
hsotg            1911 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev,
hsotg            1917 drivers/usb/dwc2/hcd.c 	intr_mask = dwc2_readl(hsotg, GINTMSK);
hsotg            1929 drivers/usb/dwc2/hcd.c 		tr_type = dwc2_hcd_select_transactions(hsotg);
hsotg            1931 drivers/usb/dwc2/hcd.c 			dwc2_hcd_queue_transactions(hsotg, tr_type);
hsotg            1938 drivers/usb/dwc2/hcd.c static int dwc2_hcd_urb_dequeue(struct dwc2_hsotg *hsotg,
hsotg            1946 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "## Urb QTD is NULL ##\n");
hsotg            1952 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "## Urb QTD QH is NULL ##\n");
hsotg            1959 drivers/usb/dwc2/hcd.c 		dwc2_dump_channel_info(hsotg, qh->channel);
hsotg            1962 drivers/usb/dwc2/hcd.c 		if (hsotg->flags.b.port_connect_status)
hsotg            1970 drivers/usb/dwc2/hcd.c 			dwc2_hc_halt(hsotg, qh->channel,
hsotg            1978 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.dma_desc_enable) {
hsotg            1981 drivers/usb/dwc2/hcd.c 		dwc2_hcd_qtd_unlink_and_free(hsotg, urb_qtd, qh);
hsotg            1983 drivers/usb/dwc2/hcd.c 			dwc2_hcd_qh_deactivate(hsotg, qh, 0);
hsotg            1986 drivers/usb/dwc2/hcd.c 			dwc2_hcd_qh_unlink(hsotg, qh);
hsotg            1989 drivers/usb/dwc2/hcd.c 		dwc2_hcd_qtd_unlink_and_free(hsotg, urb_qtd, qh);
hsotg            1996 drivers/usb/dwc2/hcd.c static int dwc2_hcd_endpoint_disable(struct dwc2_hsotg *hsotg,
hsotg            2004 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            2014 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            2020 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            2022 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            2030 drivers/usb/dwc2/hcd.c 	dwc2_hcd_qh_unlink(hsotg, qh);
hsotg            2034 drivers/usb/dwc2/hcd.c 		dwc2_hcd_qtd_unlink_and_free(hsotg, qtd, qh);
hsotg            2041 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            2043 drivers/usb/dwc2/hcd.c 	dwc2_hcd_qh_free(hsotg, qh);
hsotg            2049 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            2055 drivers/usb/dwc2/hcd.c static int dwc2_hcd_endpoint_reset(struct dwc2_hsotg *hsotg,
hsotg            2075 drivers/usb/dwc2/hcd.c int dwc2_core_init(struct dwc2_hsotg *hsotg, bool initial_setup)
hsotg            2080 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s(%p)\n", __func__, hsotg);
hsotg            2082 drivers/usb/dwc2/hcd.c 	usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            2086 drivers/usb/dwc2/hcd.c 	if (hsotg->params.phy_ulpi_ext_vbus)
hsotg            2091 drivers/usb/dwc2/hcd.c 	if (hsotg->params.ts_dline)
hsotg            2094 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg            2104 drivers/usb/dwc2/hcd.c 		retval = dwc2_core_reset(hsotg, false);
hsotg            2106 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev, "%s(): Reset failed, aborting\n",
hsotg            2115 drivers/usb/dwc2/hcd.c 	retval = dwc2_phy_init(hsotg, initial_setup);
hsotg            2120 drivers/usb/dwc2/hcd.c 	retval = dwc2_gahbcfg_init(hsotg);
hsotg            2125 drivers/usb/dwc2/hcd.c 	dwc2_gusbcfg_init(hsotg);
hsotg            2128 drivers/usb/dwc2/hcd.c 	otgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg            2130 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, otgctl, GOTGCTL);
hsotg            2133 drivers/usb/dwc2/hcd.c 	hsotg->srp_success = 0;
hsotg            2136 drivers/usb/dwc2/hcd.c 	dwc2_enable_common_interrupts(hsotg);
hsotg            2142 drivers/usb/dwc2/hcd.c 	if (dwc2_is_host_mode(hsotg)) {
hsotg            2143 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "Host Mode\n");
hsotg            2144 drivers/usb/dwc2/hcd.c 		hsotg->op_state = OTG_STATE_A_HOST;
hsotg            2146 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "Device Mode\n");
hsotg            2147 drivers/usb/dwc2/hcd.c 		hsotg->op_state = OTG_STATE_B_PERIPHERAL;
hsotg            2163 drivers/usb/dwc2/hcd.c static void dwc2_core_host_init(struct dwc2_hsotg *hsotg)
hsotg            2167 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s(%p)\n", __func__, hsotg);
hsotg            2177 drivers/usb/dwc2/hcd.c 	usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            2179 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg            2182 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0, PCGCTL);
hsotg            2185 drivers/usb/dwc2/hcd.c 	dwc2_init_fs_ls_pclk_sel(hsotg);
hsotg            2186 drivers/usb/dwc2/hcd.c 	if (hsotg->params.speed == DWC2_SPEED_PARAM_FULL ||
hsotg            2187 drivers/usb/dwc2/hcd.c 	    hsotg->params.speed == DWC2_SPEED_PARAM_LOW) {
hsotg            2188 drivers/usb/dwc2/hcd.c 		hcfg = dwc2_readl(hsotg, HCFG);
hsotg            2190 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hcfg, HCFG);
hsotg            2198 drivers/usb/dwc2/hcd.c 	if (hsotg->params.reload_ctl) {
hsotg            2199 drivers/usb/dwc2/hcd.c 		hfir = dwc2_readl(hsotg, HFIR);
hsotg            2201 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hfir, HFIR);
hsotg            2204 drivers/usb/dwc2/hcd.c 	if (hsotg->params.dma_desc_enable) {
hsotg            2205 drivers/usb/dwc2/hcd.c 		u32 op_mode = hsotg->hw_params.op_mode;
hsotg            2207 drivers/usb/dwc2/hcd.c 		if (hsotg->hw_params.snpsid < DWC2_CORE_REV_2_90a ||
hsotg            2208 drivers/usb/dwc2/hcd.c 		    !hsotg->hw_params.dma_desc_enable ||
hsotg            2212 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            2214 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            2216 drivers/usb/dwc2/hcd.c 			hsotg->params.dma_desc_enable = false;
hsotg            2218 drivers/usb/dwc2/hcd.c 			hcfg = dwc2_readl(hsotg, HCFG);
hsotg            2220 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hcfg, HCFG);
hsotg            2225 drivers/usb/dwc2/hcd.c 	dwc2_config_fifos(hsotg);
hsotg            2229 drivers/usb/dwc2/hcd.c 	otgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg            2231 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, otgctl, GOTGCTL);
hsotg            2234 drivers/usb/dwc2/hcd.c 	dwc2_flush_tx_fifo(hsotg, 0x10 /* all TX FIFOs */);
hsotg            2235 drivers/usb/dwc2/hcd.c 	dwc2_flush_rx_fifo(hsotg);
hsotg            2238 drivers/usb/dwc2/hcd.c 	otgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg            2240 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, otgctl, GOTGCTL);
hsotg            2242 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.dma_desc_enable) {
hsotg            2247 drivers/usb/dwc2/hcd.c 		num_channels = hsotg->params.host_channels;
hsotg            2249 drivers/usb/dwc2/hcd.c 			hcchar = dwc2_readl(hsotg, HCCHAR(i));
hsotg            2254 drivers/usb/dwc2/hcd.c 				dwc2_writel(hsotg, hcchar, HCCHAR(i));
hsotg            2260 drivers/usb/dwc2/hcd.c 			hcchar = dwc2_readl(hsotg, HCCHAR(i));
hsotg            2264 drivers/usb/dwc2/hcd.c 				dwc2_writel(hsotg, hcchar, HCCHAR(i));
hsotg            2265 drivers/usb/dwc2/hcd.c 				dev_dbg(hsotg->dev, "%s: Halt channel %d\n",
hsotg            2268 drivers/usb/dwc2/hcd.c 				if (dwc2_hsotg_wait_bit_clear(hsotg, HCCHAR(i),
hsotg            2271 drivers/usb/dwc2/hcd.c 					dev_warn(hsotg->dev,
hsotg            2280 drivers/usb/dwc2/hcd.c 	dwc2_enable_acg(hsotg);
hsotg            2283 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "Init: Port Power? op_state=%d\n", hsotg->op_state);
hsotg            2284 drivers/usb/dwc2/hcd.c 	if (hsotg->op_state == OTG_STATE_A_HOST) {
hsotg            2285 drivers/usb/dwc2/hcd.c 		u32 hprt0 = dwc2_read_hprt0(hsotg);
hsotg            2287 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "Init: Power Port (%d)\n",
hsotg            2291 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            2295 drivers/usb/dwc2/hcd.c 	dwc2_enable_host_interrupts(hsotg);
hsotg            2303 drivers/usb/dwc2/hcd.c static void dwc2_hcd_reinit(struct dwc2_hsotg *hsotg)
hsotg            2309 drivers/usb/dwc2/hcd.c 	hsotg->flags.d32 = 0;
hsotg            2310 drivers/usb/dwc2/hcd.c 	hsotg->non_periodic_qh_ptr = &hsotg->non_periodic_sched_active;
hsotg            2312 drivers/usb/dwc2/hcd.c 	if (hsotg->params.uframe_sched) {
hsotg            2313 drivers/usb/dwc2/hcd.c 		hsotg->available_host_channels =
hsotg            2314 drivers/usb/dwc2/hcd.c 			hsotg->params.host_channels;
hsotg            2316 drivers/usb/dwc2/hcd.c 		hsotg->non_periodic_channels = 0;
hsotg            2317 drivers/usb/dwc2/hcd.c 		hsotg->periodic_channels = 0;
hsotg            2324 drivers/usb/dwc2/hcd.c 	list_for_each_entry_safe(chan, chan_tmp, &hsotg->free_hc_list,
hsotg            2328 drivers/usb/dwc2/hcd.c 	num_channels = hsotg->params.host_channels;
hsotg            2330 drivers/usb/dwc2/hcd.c 		chan = hsotg->hc_ptr_array[i];
hsotg            2331 drivers/usb/dwc2/hcd.c 		list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list);
hsotg            2332 drivers/usb/dwc2/hcd.c 		dwc2_hc_cleanup(hsotg, chan);
hsotg            2336 drivers/usb/dwc2/hcd.c 	dwc2_core_host_init(hsotg);
hsotg            2339 drivers/usb/dwc2/hcd.c static void dwc2_hc_init_split(struct dwc2_hsotg *hsotg,
hsotg            2348 drivers/usb/dwc2/hcd.c 	dwc2_host_hub_info(hsotg, urb->priv, &hub_addr, &hub_port);
hsotg            2353 drivers/usb/dwc2/hcd.c static void dwc2_hc_init_xfer(struct dwc2_hsotg *hsotg,
hsotg            2366 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "  Control setup transaction\n");
hsotg            2370 drivers/usb/dwc2/hcd.c 			if (hsotg->params.host_dma)
hsotg            2378 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "  Control data transaction\n");
hsotg            2387 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "  Control status transaction\n");
hsotg            2397 drivers/usb/dwc2/hcd.c 			if (hsotg->params.host_dma)
hsotg            2398 drivers/usb/dwc2/hcd.c 				chan->xfer_dma = hsotg->status_buf_dma;
hsotg            2400 drivers/usb/dwc2/hcd.c 				chan->xfer_buf = hsotg->status_buf;
hsotg            2415 drivers/usb/dwc2/hcd.c 		if (hsotg->params.dma_desc_enable)
hsotg            2421 drivers/usb/dwc2/hcd.c 		if (hsotg->params.host_dma) {
hsotg            2443 drivers/usb/dwc2/hcd.c static int dwc2_alloc_split_dma_aligned_buf(struct dwc2_hsotg *hsotg,
hsotg            2447 drivers/usb/dwc2/hcd.c 	if (!hsotg->unaligned_cache ||
hsotg            2452 drivers/usb/dwc2/hcd.c 		qh->dw_align_buf = kmem_cache_alloc(hsotg->unaligned_cache,
hsotg            2458 drivers/usb/dwc2/hcd.c 	qh->dw_align_buf_dma = dma_map_single(hsotg->dev, qh->dw_align_buf,
hsotg            2462 drivers/usb/dwc2/hcd.c 	if (dma_mapping_error(hsotg->dev, qh->dw_align_buf_dma)) {
hsotg            2463 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "can't map align_buf\n");
hsotg            2578 drivers/usb/dwc2/hcd.c static int dwc2_assign_and_init_hc(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            2585 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "%s(%p,%p)\n", __func__, hsotg, qh);
hsotg            2588 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "No QTDs in QH list\n");
hsotg            2592 drivers/usb/dwc2/hcd.c 	if (list_empty(&hsotg->free_hc_list)) {
hsotg            2593 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "No free channel to assign\n");
hsotg            2597 drivers/usb/dwc2/hcd.c 	chan = list_first_entry(&hsotg->free_hc_list, struct dwc2_host_chan,
hsotg            2644 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma)
hsotg            2654 drivers/usb/dwc2/hcd.c 		dwc2_hc_init_split(hsotg, chan, qtd, urb);
hsotg            2659 drivers/usb/dwc2/hcd.c 	dwc2_hc_init_xfer(hsotg, chan, qtd);
hsotg            2662 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma && qh->do_split &&
hsotg            2664 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "Non-aligned buffer\n");
hsotg            2665 drivers/usb/dwc2/hcd.c 		if (dwc2_alloc_split_dma_aligned_buf(hsotg, qh, chan)) {
hsotg            2666 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            2672 drivers/usb/dwc2/hcd.c 				      &hsotg->free_hc_list);
hsotg            2682 drivers/usb/dwc2/hcd.c 		WARN_ON_ONCE(hsotg->params.host_dma &&
hsotg            2695 drivers/usb/dwc2/hcd.c 	if (hsotg->params.dma_desc_enable) {
hsotg            2700 drivers/usb/dwc2/hcd.c 	dwc2_hc_init(hsotg, chan);
hsotg            2716 drivers/usb/dwc2/hcd.c 		struct dwc2_hsotg *hsotg)
hsotg            2724 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Select Transactions\n");
hsotg            2728 drivers/usb/dwc2/hcd.c 	qh_ptr = hsotg->periodic_sched_ready.next;
hsotg            2729 drivers/usb/dwc2/hcd.c 	while (qh_ptr != &hsotg->periodic_sched_ready) {
hsotg            2730 drivers/usb/dwc2/hcd.c 		if (list_empty(&hsotg->free_hc_list))
hsotg            2732 drivers/usb/dwc2/hcd.c 		if (hsotg->params.uframe_sched) {
hsotg            2733 drivers/usb/dwc2/hcd.c 			if (hsotg->available_host_channels <= 1)
hsotg            2735 drivers/usb/dwc2/hcd.c 			hsotg->available_host_channels--;
hsotg            2738 drivers/usb/dwc2/hcd.c 		if (dwc2_assign_and_init_hc(hsotg, qh))
hsotg            2747 drivers/usb/dwc2/hcd.c 			       &hsotg->periodic_sched_assigned);
hsotg            2756 drivers/usb/dwc2/hcd.c 	num_channels = hsotg->params.host_channels;
hsotg            2757 drivers/usb/dwc2/hcd.c 	qh_ptr = hsotg->non_periodic_sched_inactive.next;
hsotg            2758 drivers/usb/dwc2/hcd.c 	while (qh_ptr != &hsotg->non_periodic_sched_inactive) {
hsotg            2759 drivers/usb/dwc2/hcd.c 		if (!hsotg->params.uframe_sched &&
hsotg            2760 drivers/usb/dwc2/hcd.c 		    hsotg->non_periodic_channels >= num_channels -
hsotg            2761 drivers/usb/dwc2/hcd.c 						hsotg->periodic_channels)
hsotg            2763 drivers/usb/dwc2/hcd.c 		if (list_empty(&hsotg->free_hc_list))
hsotg            2766 drivers/usb/dwc2/hcd.c 		if (hsotg->params.uframe_sched) {
hsotg            2767 drivers/usb/dwc2/hcd.c 			if (hsotg->available_host_channels < 1)
hsotg            2769 drivers/usb/dwc2/hcd.c 			hsotg->available_host_channels--;
hsotg            2772 drivers/usb/dwc2/hcd.c 		if (dwc2_assign_and_init_hc(hsotg, qh))
hsotg            2781 drivers/usb/dwc2/hcd.c 			       &hsotg->non_periodic_sched_active);
hsotg            2788 drivers/usb/dwc2/hcd.c 		if (!hsotg->params.uframe_sched)
hsotg            2789 drivers/usb/dwc2/hcd.c 			hsotg->non_periodic_channels++;
hsotg            2816 drivers/usb/dwc2/hcd.c static int dwc2_queue_transaction(struct dwc2_hsotg *hsotg,
hsotg            2825 drivers/usb/dwc2/hcd.c 			       &hsotg->split_order);
hsotg            2827 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma) {
hsotg            2828 drivers/usb/dwc2/hcd.c 		if (hsotg->params.dma_desc_enable) {
hsotg            2831 drivers/usb/dwc2/hcd.c 				dwc2_hcd_start_xfer_ddma(hsotg, chan->qh);
hsotg            2835 drivers/usb/dwc2/hcd.c 			dwc2_hc_start_transfer(hsotg, chan);
hsotg            2841 drivers/usb/dwc2/hcd.c 		dwc2_hc_halt(hsotg, chan, chan->halt_status);
hsotg            2844 drivers/usb/dwc2/hcd.c 			dwc2_hc_start_transfer(hsotg, chan);
hsotg            2849 drivers/usb/dwc2/hcd.c 				dwc2_hc_start_transfer(hsotg, chan);
hsotg            2852 drivers/usb/dwc2/hcd.c 				retval = dwc2_hc_continue_transfer(hsotg, chan);
hsotg            2859 drivers/usb/dwc2/hcd.c 			dwc2_hc_start_transfer(hsotg, chan);
hsotg            2862 drivers/usb/dwc2/hcd.c 			retval = dwc2_hc_continue_transfer(hsotg, chan);
hsotg            2878 drivers/usb/dwc2/hcd.c static void dwc2_process_periodic_channels(struct dwc2_hsotg *hsotg)
hsotg            2891 drivers/usb/dwc2/hcd.c 	if (list_empty(&hsotg->periodic_sched_assigned))
hsotg            2895 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "Queue periodic transactions\n");
hsotg            2897 drivers/usb/dwc2/hcd.c 	tx_status = dwc2_readl(hsotg, HPTXSTS);
hsotg            2904 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "  P Tx Req Queue Space Avail (before queue): %d\n",
hsotg            2906 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "  P Tx FIFO Space Avail (before queue): %d\n",
hsotg            2910 drivers/usb/dwc2/hcd.c 	qh_ptr = hsotg->periodic_sched_assigned.next;
hsotg            2911 drivers/usb/dwc2/hcd.c 	while (qh_ptr != &hsotg->periodic_sched_assigned) {
hsotg            2912 drivers/usb/dwc2/hcd.c 		tx_status = dwc2_readl(hsotg, HPTXSTS);
hsotg            2937 drivers/usb/dwc2/hcd.c 		if (!hsotg->params.host_dma &&
hsotg            2939 drivers/usb/dwc2/hcd.c 			hsotg->queuing_high_bandwidth = 1;
hsotg            2943 drivers/usb/dwc2/hcd.c 		status = dwc2_queue_transaction(hsotg, qh->channel, fspcavail);
hsotg            2956 drivers/usb/dwc2/hcd.c 		if (hsotg->params.host_dma || status == 0 ||
hsotg            2964 drivers/usb/dwc2/hcd.c 				       &hsotg->periodic_sched_queued);
hsotg            2967 drivers/usb/dwc2/hcd.c 			hsotg->queuing_high_bandwidth = 0;
hsotg            2973 drivers/usb/dwc2/hcd.c 	    (!hsotg->params.host_dma &&
hsotg            2974 drivers/usb/dwc2/hcd.c 	     !list_empty(&hsotg->periodic_sched_assigned))) {
hsotg            2982 drivers/usb/dwc2/hcd.c 		gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg            2985 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg            2995 drivers/usb/dwc2/hcd.c 		gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg            2998 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg            3012 drivers/usb/dwc2/hcd.c static void dwc2_process_non_periodic_channels(struct dwc2_hsotg *hsotg)
hsotg            3025 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "Queue non-periodic transactions\n");
hsotg            3027 drivers/usb/dwc2/hcd.c 	tx_status = dwc2_readl(hsotg, GNPTXSTS);
hsotg            3032 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  NP Tx Req Queue Space Avail (before queue): %d\n",
hsotg            3034 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  NP Tx FIFO Space Avail (before queue): %d\n",
hsotg            3041 drivers/usb/dwc2/hcd.c 	if (hsotg->non_periodic_qh_ptr == &hsotg->non_periodic_sched_active)
hsotg            3042 drivers/usb/dwc2/hcd.c 		hsotg->non_periodic_qh_ptr = hsotg->non_periodic_qh_ptr->next;
hsotg            3043 drivers/usb/dwc2/hcd.c 	orig_qh_ptr = hsotg->non_periodic_qh_ptr;
hsotg            3050 drivers/usb/dwc2/hcd.c 		tx_status = dwc2_readl(hsotg, GNPTXSTS);
hsotg            3053 drivers/usb/dwc2/hcd.c 		if (!hsotg->params.host_dma && qspcavail == 0) {
hsotg            3058 drivers/usb/dwc2/hcd.c 		qh = list_entry(hsotg->non_periodic_qh_ptr, struct dwc2_qh,
hsotg            3069 drivers/usb/dwc2/hcd.c 		status = dwc2_queue_transaction(hsotg, qh->channel, fspcavail);
hsotg            3079 drivers/usb/dwc2/hcd.c 		hsotg->non_periodic_qh_ptr = hsotg->non_periodic_qh_ptr->next;
hsotg            3080 drivers/usb/dwc2/hcd.c 		if (hsotg->non_periodic_qh_ptr ==
hsotg            3081 drivers/usb/dwc2/hcd.c 				&hsotg->non_periodic_sched_active)
hsotg            3082 drivers/usb/dwc2/hcd.c 			hsotg->non_periodic_qh_ptr =
hsotg            3083 drivers/usb/dwc2/hcd.c 					hsotg->non_periodic_qh_ptr->next;
hsotg            3084 drivers/usb/dwc2/hcd.c 	} while (hsotg->non_periodic_qh_ptr != orig_qh_ptr);
hsotg            3086 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.host_dma) {
hsotg            3087 drivers/usb/dwc2/hcd.c 		tx_status = dwc2_readl(hsotg, GNPTXSTS);
hsotg            3092 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev,
hsotg            3095 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev,
hsotg            3107 drivers/usb/dwc2/hcd.c 			gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg            3109 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg            3118 drivers/usb/dwc2/hcd.c 			gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg            3120 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg            3136 drivers/usb/dwc2/hcd.c void dwc2_hcd_queue_transactions(struct dwc2_hsotg *hsotg,
hsotg            3140 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "Queue Transactions\n");
hsotg            3145 drivers/usb/dwc2/hcd.c 		dwc2_process_periodic_channels(hsotg);
hsotg            3150 drivers/usb/dwc2/hcd.c 		if (!list_empty(&hsotg->non_periodic_sched_active)) {
hsotg            3151 drivers/usb/dwc2/hcd.c 			dwc2_process_non_periodic_channels(hsotg);
hsotg            3157 drivers/usb/dwc2/hcd.c 			u32 gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg            3160 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg            3167 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = container_of(work, struct dwc2_hsotg,
hsotg            3173 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s()\n", __func__);
hsotg            3175 drivers/usb/dwc2/hcd.c 	gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg            3176 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "gotgctl=%0x\n", gotgctl);
hsotg            3177 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "gotgctl.b.conidsts=%d\n",
hsotg            3182 drivers/usb/dwc2/hcd.c 		dwc2_vbus_supply_exit(hsotg);
hsotg            3184 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "connId B\n");
hsotg            3185 drivers/usb/dwc2/hcd.c 		if (hsotg->bus_suspended) {
hsotg            3186 drivers/usb/dwc2/hcd.c 			dev_info(hsotg->dev,
hsotg            3188 drivers/usb/dwc2/hcd.c 			dwc2_port_resume(hsotg);
hsotg            3190 drivers/usb/dwc2/hcd.c 		while (!dwc2_is_device_mode(hsotg)) {
hsotg            3191 drivers/usb/dwc2/hcd.c 			dev_info(hsotg->dev,
hsotg            3193 drivers/usb/dwc2/hcd.c 				 dwc2_is_host_mode(hsotg) ? "Host" :
hsotg            3201 drivers/usb/dwc2/hcd.c 			gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg            3208 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            3210 drivers/usb/dwc2/hcd.c 		hsotg->op_state = OTG_STATE_B_PERIPHERAL;
hsotg            3211 drivers/usb/dwc2/hcd.c 		dwc2_core_init(hsotg, false);
hsotg            3212 drivers/usb/dwc2/hcd.c 		dwc2_enable_global_interrupts(hsotg);
hsotg            3213 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            3214 drivers/usb/dwc2/hcd.c 		dwc2_hsotg_core_init_disconnected(hsotg, false);
hsotg            3215 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            3217 drivers/usb/dwc2/hcd.c 		dwc2_enable_acg(hsotg);
hsotg            3218 drivers/usb/dwc2/hcd.c 		dwc2_hsotg_core_connect(hsotg);
hsotg            3222 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "connId A\n");
hsotg            3223 drivers/usb/dwc2/hcd.c 		while (!dwc2_is_host_mode(hsotg)) {
hsotg            3224 drivers/usb/dwc2/hcd.c 			dev_info(hsotg->dev, "Waiting for Host Mode, Mode=%s\n",
hsotg            3225 drivers/usb/dwc2/hcd.c 				 dwc2_is_host_mode(hsotg) ?
hsotg            3232 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            3235 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            3236 drivers/usb/dwc2/hcd.c 		dwc2_hsotg_disconnect(hsotg);
hsotg            3237 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            3239 drivers/usb/dwc2/hcd.c 		hsotg->op_state = OTG_STATE_A_HOST;
hsotg            3241 drivers/usb/dwc2/hcd.c 		dwc2_core_init(hsotg, false);
hsotg            3242 drivers/usb/dwc2/hcd.c 		dwc2_enable_global_interrupts(hsotg);
hsotg            3243 drivers/usb/dwc2/hcd.c 		dwc2_hcd_start(hsotg);
hsotg            3249 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = from_timer(hsotg, t, wkp_timer);
hsotg            3252 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s()\n", __func__);
hsotg            3258 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3259 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "Resume: HPRT0=%0x\n", hprt0);
hsotg            3261 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3262 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "Clear Resume: HPRT0=%0x\n",
hsotg            3263 drivers/usb/dwc2/hcd.c 		dwc2_readl(hsotg, HPRT0));
hsotg            3265 drivers/usb/dwc2/hcd.c 	dwc2_hcd_rem_wakeup(hsotg);
hsotg            3266 drivers/usb/dwc2/hcd.c 	hsotg->bus_suspended = false;
hsotg            3269 drivers/usb/dwc2/hcd.c 	hsotg->lx_state = DWC2_L0;
hsotg            3272 drivers/usb/dwc2/hcd.c static int dwc2_host_is_b_hnp_enabled(struct dwc2_hsotg *hsotg)
hsotg            3274 drivers/usb/dwc2/hcd.c 	struct usb_hcd *hcd = dwc2_hsotg_to_hcd(hsotg);
hsotg            3280 drivers/usb/dwc2/hcd.c static void dwc2_port_suspend(struct dwc2_hsotg *hsotg, u16 windex)
hsotg            3287 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s()\n", __func__);
hsotg            3289 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            3291 drivers/usb/dwc2/hcd.c 	if (windex == hsotg->otg_port && dwc2_host_is_b_hnp_enabled(hsotg)) {
hsotg            3292 drivers/usb/dwc2/hcd.c 		gotgctl = dwc2_readl(hsotg, GOTGCTL);
hsotg            3294 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, gotgctl, GOTGCTL);
hsotg            3295 drivers/usb/dwc2/hcd.c 		hsotg->op_state = OTG_STATE_A_SUSPEND;
hsotg            3298 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3300 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3302 drivers/usb/dwc2/hcd.c 	hsotg->bus_suspended = true;
hsotg            3308 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.power_down) {
hsotg            3310 drivers/usb/dwc2/hcd.c 		pcgctl = dwc2_readl(hsotg, PCGCTL);
hsotg            3312 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, pcgctl, PCGCTL);
hsotg            3317 drivers/usb/dwc2/hcd.c 	if (dwc2_host_is_b_hnp_enabled(hsotg)) {
hsotg            3318 drivers/usb/dwc2/hcd.c 		pcgctl = dwc2_readl(hsotg, PCGCTL);
hsotg            3320 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, pcgctl, PCGCTL);
hsotg            3322 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            3326 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            3331 drivers/usb/dwc2/hcd.c static void dwc2_port_resume(struct dwc2_hsotg *hsotg)
hsotg            3337 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            3343 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.power_down) {
hsotg            3344 drivers/usb/dwc2/hcd.c 		pcgctl = dwc2_readl(hsotg, PCGCTL);
hsotg            3346 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, pcgctl, PCGCTL);
hsotg            3347 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            3349 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            3352 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3355 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3356 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            3360 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            3361 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3363 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3364 drivers/usb/dwc2/hcd.c 	hsotg->bus_suspended = false;
hsotg            3365 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            3369 drivers/usb/dwc2/hcd.c static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq,
hsotg            3382 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "ClearHubFeature %1xh\n", wvalue);
hsotg            3392 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            3404 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3406 drivers/usb/dwc2/hcd.c 			hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3408 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3412 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3415 drivers/usb/dwc2/hcd.c 			if (hsotg->bus_suspended) {
hsotg            3416 drivers/usb/dwc2/hcd.c 				if (hsotg->hibernated)
hsotg            3417 drivers/usb/dwc2/hcd.c 					dwc2_exit_hibernation(hsotg, 0, 0, 1);
hsotg            3419 drivers/usb/dwc2/hcd.c 					dwc2_port_resume(hsotg);
hsotg            3424 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3426 drivers/usb/dwc2/hcd.c 			hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3429 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3431 drivers/usb/dwc2/hcd.c 				dwc2_vbus_supply_exit(hsotg);
hsotg            3435 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3444 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3446 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_connect_status_change = 0;
hsotg            3451 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3453 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_reset_change = 0;
hsotg            3461 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3463 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_enable_change = 0;
hsotg            3472 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3474 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_suspend_change = 0;
hsotg            3478 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3480 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_l1_change = 0;
hsotg            3484 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3486 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_over_current_change = 0;
hsotg            3491 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            3498 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "GetHubDescriptor\n");
hsotg            3513 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "GetHubStatus\n");
hsotg            3518 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev,
hsotg            3520 drivers/usb/dwc2/hcd.c 			 hsotg->flags.d32);
hsotg            3525 drivers/usb/dwc2/hcd.c 		if (hsotg->flags.b.port_connect_status_change)
hsotg            3527 drivers/usb/dwc2/hcd.c 		if (hsotg->flags.b.port_enable_change)
hsotg            3529 drivers/usb/dwc2/hcd.c 		if (hsotg->flags.b.port_suspend_change)
hsotg            3531 drivers/usb/dwc2/hcd.c 		if (hsotg->flags.b.port_l1_change)
hsotg            3533 drivers/usb/dwc2/hcd.c 		if (hsotg->flags.b.port_reset_change)
hsotg            3535 drivers/usb/dwc2/hcd.c 		if (hsotg->flags.b.port_over_current_change) {
hsotg            3536 drivers/usb/dwc2/hcd.c 			dev_warn(hsotg->dev, "Overcurrent change detected\n");
hsotg            3540 drivers/usb/dwc2/hcd.c 		if (!hsotg->flags.b.port_connect_status) {
hsotg            3552 drivers/usb/dwc2/hcd.c 		hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg            3553 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "  HPRT0: 0x%08x\n", hprt0);
hsotg            3578 drivers/usb/dwc2/hcd.c 		if (hsotg->params.dma_desc_fs_enable) {
hsotg            3583 drivers/usb/dwc2/hcd.c 			if (hsotg->new_connection &&
hsotg            3591 drivers/usb/dwc2/hcd.c 				dev_info(hsotg->dev, "Enabling descriptor DMA mode\n");
hsotg            3592 drivers/usb/dwc2/hcd.c 				hsotg->params.dma_desc_enable = true;
hsotg            3593 drivers/usb/dwc2/hcd.c 				hcfg = dwc2_readl(hsotg, HCFG);
hsotg            3595 drivers/usb/dwc2/hcd.c 				dwc2_writel(hsotg, hcfg, HCFG);
hsotg            3596 drivers/usb/dwc2/hcd.c 				hsotg->new_connection = false;
hsotg            3600 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "port_status=%08x\n", port_status);
hsotg            3605 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "SetHubFeature\n");
hsotg            3610 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "SetPortFeature\n");
hsotg            3614 drivers/usb/dwc2/hcd.c 		if (!hsotg->flags.b.port_connect_status) {
hsotg            3627 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3629 drivers/usb/dwc2/hcd.c 			if (windex != hsotg->otg_port)
hsotg            3631 drivers/usb/dwc2/hcd.c 			if (hsotg->params.power_down == 2)
hsotg            3632 drivers/usb/dwc2/hcd.c 				dwc2_enter_hibernation(hsotg, 1);
hsotg            3634 drivers/usb/dwc2/hcd.c 				dwc2_port_suspend(hsotg, windex);
hsotg            3638 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3640 drivers/usb/dwc2/hcd.c 			hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3643 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3645 drivers/usb/dwc2/hcd.c 				dwc2_vbus_supply_init(hsotg);
hsotg            3649 drivers/usb/dwc2/hcd.c 			if (hsotg->params.power_down == 2 &&
hsotg            3650 drivers/usb/dwc2/hcd.c 			    hsotg->hibernated)
hsotg            3651 drivers/usb/dwc2/hcd.c 				dwc2_exit_hibernation(hsotg, 0, 1, 1);
hsotg            3652 drivers/usb/dwc2/hcd.c 			hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3653 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3655 drivers/usb/dwc2/hcd.c 			pcgctl = dwc2_readl(hsotg, PCGCTL);
hsotg            3657 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, pcgctl, PCGCTL);
hsotg            3659 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, 0, PCGCTL);
hsotg            3661 drivers/usb/dwc2/hcd.c 			hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3671 drivers/usb/dwc2/hcd.c 			if (!dwc2_hcd_is_b_host(hsotg)) {
hsotg            3673 drivers/usb/dwc2/hcd.c 				dev_dbg(hsotg->dev,
hsotg            3675 drivers/usb/dwc2/hcd.c 				dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3677 drivers/usb/dwc2/hcd.c 					dwc2_vbus_supply_init(hsotg);
hsotg            3683 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3684 drivers/usb/dwc2/hcd.c 			hsotg->lx_state = DWC2_L0; /* Now back to On state */
hsotg            3688 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3694 drivers/usb/dwc2/hcd.c 			hprt0 = dwc2_read_hprt0(hsotg);
hsotg            3695 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev,
hsotg            3699 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            3704 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            3714 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev,
hsotg            3723 drivers/usb/dwc2/hcd.c static int dwc2_hcd_is_status_changed(struct dwc2_hsotg *hsotg, int port)
hsotg            3730 drivers/usb/dwc2/hcd.c 	retval = (hsotg->flags.b.port_connect_status_change ||
hsotg            3731 drivers/usb/dwc2/hcd.c 		  hsotg->flags.b.port_reset_change ||
hsotg            3732 drivers/usb/dwc2/hcd.c 		  hsotg->flags.b.port_enable_change ||
hsotg            3733 drivers/usb/dwc2/hcd.c 		  hsotg->flags.b.port_suspend_change ||
hsotg            3734 drivers/usb/dwc2/hcd.c 		  hsotg->flags.b.port_over_current_change);
hsotg            3737 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev,
hsotg            3739 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "  port_connect_status_change: %d\n",
hsotg            3740 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_connect_status_change);
hsotg            3741 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "  port_reset_change: %d\n",
hsotg            3742 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_reset_change);
hsotg            3743 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "  port_enable_change: %d\n",
hsotg            3744 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_enable_change);
hsotg            3745 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "  port_suspend_change: %d\n",
hsotg            3746 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_suspend_change);
hsotg            3747 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "  port_over_current_change: %d\n",
hsotg            3748 drivers/usb/dwc2/hcd.c 			hsotg->flags.b.port_over_current_change);
hsotg            3754 drivers/usb/dwc2/hcd.c int dwc2_hcd_get_frame_number(struct dwc2_hsotg *hsotg)
hsotg            3756 drivers/usb/dwc2/hcd.c 	u32 hfnum = dwc2_readl(hsotg, HFNUM);
hsotg            3759 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "DWC OTG HCD GET FRAME NUMBER %d\n",
hsotg            3765 drivers/usb/dwc2/hcd.c int dwc2_hcd_get_future_frame_number(struct dwc2_hsotg *hsotg, int us)
hsotg            3767 drivers/usb/dwc2/hcd.c 	u32 hprt = dwc2_readl(hsotg, HPRT0);
hsotg            3768 drivers/usb/dwc2/hcd.c 	u32 hfir = dwc2_readl(hsotg, HFIR);
hsotg            3769 drivers/usb/dwc2/hcd.c 	u32 hfnum = dwc2_readl(hsotg, HFNUM);
hsotg            3794 drivers/usb/dwc2/hcd.c int dwc2_hcd_is_b_host(struct dwc2_hsotg *hsotg)
hsotg            3796 drivers/usb/dwc2/hcd.c 	return hsotg->op_state == OTG_STATE_B_HOST;
hsotg            3799 drivers/usb/dwc2/hcd.c static struct dwc2_hcd_urb *dwc2_hcd_urb_alloc(struct dwc2_hsotg *hsotg,
hsotg            3811 drivers/usb/dwc2/hcd.c static void dwc2_hcd_urb_set_pipeinfo(struct dwc2_hsotg *hsotg,
hsotg            3819 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev,
hsotg            3834 drivers/usb/dwc2/hcd.c void dwc2_hcd_dump_state(struct dwc2_hsotg *hsotg)
hsotg            3845 drivers/usb/dwc2/hcd.c 	num_channels = hsotg->params.host_channels;
hsotg            3846 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "\n");
hsotg            3847 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev,
hsotg            3849 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "HCD State:\n");
hsotg            3850 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  Num channels: %d\n", num_channels);
hsotg            3853 drivers/usb/dwc2/hcd.c 		chan = hsotg->hc_ptr_array[i];
hsotg            3854 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "  Channel %d:\n", i);
hsotg            3855 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev,
hsotg            3858 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    speed: %d\n", chan->speed);
hsotg            3859 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    ep_type: %d\n", chan->ep_type);
hsotg            3860 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    max_packet: %d\n", chan->max_packet);
hsotg            3861 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    data_pid_start: %d\n",
hsotg            3863 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    multi_count: %d\n", chan->multi_count);
hsotg            3864 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    xfer_started: %d\n",
hsotg            3866 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    xfer_buf: %p\n", chan->xfer_buf);
hsotg            3867 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    xfer_dma: %08lx\n",
hsotg            3869 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    xfer_len: %d\n", chan->xfer_len);
hsotg            3870 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    xfer_count: %d\n", chan->xfer_count);
hsotg            3871 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    halt_on_queue: %d\n",
hsotg            3873 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    halt_pending: %d\n",
hsotg            3875 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    halt_status: %d\n", chan->halt_status);
hsotg            3876 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    do_split: %d\n", chan->do_split);
hsotg            3877 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    complete_split: %d\n",
hsotg            3879 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    hub_addr: %d\n", chan->hub_addr);
hsotg            3880 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    hub_port: %d\n", chan->hub_port);
hsotg            3881 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    xact_pos: %d\n", chan->xact_pos);
hsotg            3882 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    requests: %d\n", chan->requests);
hsotg            3883 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "    qh: %p\n", chan->qh);
hsotg            3888 drivers/usb/dwc2/hcd.c 			hfnum = dwc2_readl(hsotg, HFNUM);
hsotg            3889 drivers/usb/dwc2/hcd.c 			hcchar = dwc2_readl(hsotg, HCCHAR(i));
hsotg            3890 drivers/usb/dwc2/hcd.c 			hctsiz = dwc2_readl(hsotg, HCTSIZ(i));
hsotg            3891 drivers/usb/dwc2/hcd.c 			hcint = dwc2_readl(hsotg, HCINT(i));
hsotg            3892 drivers/usb/dwc2/hcd.c 			hcintmsk = dwc2_readl(hsotg, HCINTMSK(i));
hsotg            3893 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "    hfnum: 0x%08x\n", hfnum);
hsotg            3894 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "    hcchar: 0x%08x\n", hcchar);
hsotg            3895 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "    hctsiz: 0x%08x\n", hctsiz);
hsotg            3896 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "    hcint: 0x%08x\n", hcint);
hsotg            3897 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "    hcintmsk: 0x%08x\n", hcintmsk);
hsotg            3907 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "    URB Info:\n");
hsotg            3908 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "      qtd: %p, urb: %p\n",
hsotg            3911 drivers/usb/dwc2/hcd.c 				dev_dbg(hsotg->dev,
hsotg            3917 drivers/usb/dwc2/hcd.c 				dev_dbg(hsotg->dev,
hsotg            3921 drivers/usb/dwc2/hcd.c 				dev_dbg(hsotg->dev,
hsotg            3924 drivers/usb/dwc2/hcd.c 				dev_dbg(hsotg->dev,
hsotg            3927 drivers/usb/dwc2/hcd.c 				dev_dbg(hsotg->dev,
hsotg            3930 drivers/usb/dwc2/hcd.c 				dev_dbg(hsotg->dev, "      actual_length: %d\n",
hsotg            3936 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  non_periodic_channels: %d\n",
hsotg            3937 drivers/usb/dwc2/hcd.c 		hsotg->non_periodic_channels);
hsotg            3938 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  periodic_channels: %d\n",
hsotg            3939 drivers/usb/dwc2/hcd.c 		hsotg->periodic_channels);
hsotg            3940 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  periodic_usecs: %d\n", hsotg->periodic_usecs);
hsotg            3941 drivers/usb/dwc2/hcd.c 	np_tx_status = dwc2_readl(hsotg, GNPTXSTS);
hsotg            3942 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  NP Tx Req Queue Space Avail: %d\n",
hsotg            3944 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  NP Tx FIFO Space Avail: %d\n",
hsotg            3946 drivers/usb/dwc2/hcd.c 	p_tx_status = dwc2_readl(hsotg, HPTXSTS);
hsotg            3947 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  P Tx Req Queue Space Avail: %d\n",
hsotg            3949 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  P Tx FIFO Space Avail: %d\n",
hsotg            3951 drivers/usb/dwc2/hcd.c 	dwc2_dump_global_registers(hsotg);
hsotg            3952 drivers/usb/dwc2/hcd.c 	dwc2_dump_host_registers(hsotg);
hsotg            3953 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev,
hsotg            3955 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "\n");
hsotg            3960 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg;
hsotg            3969 drivers/usb/dwc2/hcd.c 	return p->hsotg;
hsotg            3992 drivers/usb/dwc2/hcd.c struct dwc2_tt *dwc2_host_get_tt_info(struct dwc2_hsotg *hsotg, void *context,
hsotg            4040 drivers/usb/dwc2/hcd.c void dwc2_host_put_tt_info(struct dwc2_hsotg *hsotg, struct dwc2_tt *dwc_tt)
hsotg            4055 drivers/usb/dwc2/hcd.c int dwc2_host_get_speed(struct dwc2_hsotg *hsotg, void *context)
hsotg            4094 drivers/usb/dwc2/hcd.c void dwc2_host_complete(struct dwc2_hsotg *hsotg, struct dwc2_qtd *qtd,
hsotg            4101 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "## %s: qtd is NULL ##\n", __func__);
hsotg            4106 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "## %s: qtd->urb is NULL ##\n", __func__);
hsotg            4112 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "## %s: urb->priv is NULL ##\n", __func__);
hsotg            4119 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev,
hsotg            4139 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, " ISO Desc %d status %d\n",
hsotg            4155 drivers/usb/dwc2/hcd.c 			dwc2_free_bus_bandwidth(dwc2_hsotg_to_hcd(hsotg),
hsotg            4156 drivers/usb/dwc2/hcd.c 					dwc2_hcd_get_ep_bandwidth(hsotg, ep),
hsotg            4160 drivers/usb/dwc2/hcd.c 	usb_hcd_unlink_urb_from_ep(dwc2_hsotg_to_hcd(hsotg), urb);
hsotg            4165 drivers/usb/dwc2/hcd.c 	usb_hcd_giveback_urb(dwc2_hsotg_to_hcd(hsotg), urb, status);
hsotg            4173 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = container_of(work, struct dwc2_hsotg,
hsotg            4176 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s() %p\n", __func__, hsotg);
hsotg            4177 drivers/usb/dwc2/hcd.c 	dwc2_host_start(hsotg);
hsotg            4185 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = container_of(work, struct dwc2_hsotg,
hsotg            4190 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "USB RESET function called\n");
hsotg            4192 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4194 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_read_hprt0(hsotg);
hsotg            4196 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            4197 drivers/usb/dwc2/hcd.c 	hsotg->flags.b.port_reset_change = 1;
hsotg            4199 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4204 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = container_of(work, struct dwc2_hsotg,
hsotg            4208 drivers/usb/dwc2/hcd.c 	ret = phy_reset(hsotg->phy);
hsotg            4210 drivers/usb/dwc2/hcd.c 		dev_warn(hsotg->dev, "PHY reset failed\n");
hsotg            4226 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4232 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "DWC OTG HCD START\n");
hsotg            4234 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4235 drivers/usb/dwc2/hcd.c 	hsotg->lx_state = DWC2_L0;
hsotg            4239 drivers/usb/dwc2/hcd.c 	if (dwc2_is_device_mode(hsotg)) {
hsotg            4240 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4244 drivers/usb/dwc2/hcd.c 	dwc2_hcd_reinit(hsotg);
hsotg            4246 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_read_hprt0(hsotg);
hsotg            4250 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4251 drivers/usb/dwc2/hcd.c 		ret = dwc2_vbus_supply_init(hsotg);
hsotg            4254 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4259 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "DWC OTG HCD Has Root Hub\n");
hsotg            4264 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4275 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4280 drivers/usb/dwc2/hcd.c 	dwc2_disable_host_interrupts(hsotg);
hsotg            4285 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4286 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_read_hprt0(hsotg);
hsotg            4288 drivers/usb/dwc2/hcd.c 	dwc2_hcd_disconnect(hsotg, true);
hsotg            4289 drivers/usb/dwc2/hcd.c 	dwc2_hcd_stop(hsotg);
hsotg            4290 drivers/usb/dwc2/hcd.c 	hsotg->lx_state = DWC2_L3;
hsotg            4293 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4297 drivers/usb/dwc2/hcd.c 		dwc2_vbus_supply_exit(hsotg);
hsotg            4304 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4310 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4312 drivers/usb/dwc2/hcd.c 	if (dwc2_is_device_mode(hsotg))
hsotg            4315 drivers/usb/dwc2/hcd.c 	if (hsotg->lx_state != DWC2_L0)
hsotg            4321 drivers/usb/dwc2/hcd.c 	if (hsotg->op_state == OTG_STATE_B_PERIPHERAL)
hsotg            4324 drivers/usb/dwc2/hcd.c 	if (hsotg->params.power_down > DWC2_POWER_DOWN_PARAM_PARTIAL)
hsotg            4331 drivers/usb/dwc2/hcd.c 	if (!hsotg->bus_suspended) {
hsotg            4332 drivers/usb/dwc2/hcd.c 		hprt0 = dwc2_read_hprt0(hsotg);
hsotg            4335 drivers/usb/dwc2/hcd.c 			if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_PARTIAL)
hsotg            4337 drivers/usb/dwc2/hcd.c 			dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            4339 drivers/usb/dwc2/hcd.c 		if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_PARTIAL) {
hsotg            4340 drivers/usb/dwc2/hcd.c 			spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4341 drivers/usb/dwc2/hcd.c 			dwc2_vbus_supply_exit(hsotg);
hsotg            4342 drivers/usb/dwc2/hcd.c 			spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4344 drivers/usb/dwc2/hcd.c 			pcgctl = readl(hsotg->regs + PCGCTL);
hsotg            4346 drivers/usb/dwc2/hcd.c 			writel(pcgctl, hsotg->regs + PCGCTL);
hsotg            4350 drivers/usb/dwc2/hcd.c 	if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_PARTIAL) {
hsotg            4352 drivers/usb/dwc2/hcd.c 		ret = dwc2_enter_partial_power_down(hsotg);
hsotg            4355 drivers/usb/dwc2/hcd.c 				dev_err(hsotg->dev,
hsotg            4365 drivers/usb/dwc2/hcd.c 	if (!IS_ERR_OR_NULL(hsotg->uphy)) {
hsotg            4366 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4367 drivers/usb/dwc2/hcd.c 		usb_phy_set_suspend(hsotg->uphy, true);
hsotg            4368 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4372 drivers/usb/dwc2/hcd.c 	hsotg->lx_state = DWC2_L2;
hsotg            4374 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4381 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4386 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4388 drivers/usb/dwc2/hcd.c 	if (dwc2_is_device_mode(hsotg))
hsotg            4391 drivers/usb/dwc2/hcd.c 	if (hsotg->lx_state != DWC2_L2)
hsotg            4394 drivers/usb/dwc2/hcd.c 	if (hsotg->params.power_down > DWC2_POWER_DOWN_PARAM_PARTIAL) {
hsotg            4395 drivers/usb/dwc2/hcd.c 		hsotg->lx_state = DWC2_L0;
hsotg            4404 drivers/usb/dwc2/hcd.c 	if (!IS_ERR_OR_NULL(hsotg->uphy)) {
hsotg            4405 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4406 drivers/usb/dwc2/hcd.c 		usb_phy_set_suspend(hsotg->uphy, false);
hsotg            4407 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4410 drivers/usb/dwc2/hcd.c 	if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_PARTIAL) {
hsotg            4419 drivers/usb/dwc2/hcd.c 		ret = dwc2_exit_partial_power_down(hsotg, true);
hsotg            4421 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev, "exit partial_power_down failed\n");
hsotg            4423 drivers/usb/dwc2/hcd.c 		pcgctl = readl(hsotg->regs + PCGCTL);
hsotg            4425 drivers/usb/dwc2/hcd.c 		writel(pcgctl, hsotg->regs + PCGCTL);
hsotg            4428 drivers/usb/dwc2/hcd.c 	hsotg->lx_state = DWC2_L0;
hsotg            4430 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4432 drivers/usb/dwc2/hcd.c 	if (hsotg->bus_suspended) {
hsotg            4433 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4434 drivers/usb/dwc2/hcd.c 		hsotg->flags.b.port_suspend_change = 1;
hsotg            4435 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4436 drivers/usb/dwc2/hcd.c 		dwc2_port_resume(hsotg);
hsotg            4438 drivers/usb/dwc2/hcd.c 		if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_PARTIAL) {
hsotg            4439 drivers/usb/dwc2/hcd.c 			dwc2_vbus_supply_init(hsotg);
hsotg            4449 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, HPRT0_PWR | HPRT0_CONNDET |
hsotg            4457 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4465 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4467 drivers/usb/dwc2/hcd.c 	return dwc2_hcd_get_frame_number(hsotg);
hsotg            4474 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4478 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "%s, urb %p\n", fn_name, urb);
hsotg            4479 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Device address: %d\n",
hsotg            4481 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Endpoint: %d, %s\n",
hsotg            4500 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Endpoint type: %s %s (%s)\n", pipetype,
hsotg            4519 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Speed: %s\n", speed);
hsotg            4520 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Max packet size: %d (%d mult)\n",
hsotg            4524 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Data buffer length: %d\n",
hsotg            4526 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Transfer buffer: %p, Transfer DMA: %08lx\n",
hsotg            4528 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Setup buffer: %p, Setup DMA: %08lx\n",
hsotg            4530 drivers/usb/dwc2/hcd.c 	dev_vdbg(hsotg->dev, "  Interval: %d\n", urb->interval);
hsotg            4536 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "  ISO Desc %d:\n", i);
hsotg            4537 drivers/usb/dwc2/hcd.c 			dev_vdbg(hsotg->dev, "    offset: %d, length %d\n",
hsotg            4553 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4568 drivers/usb/dwc2/hcd.c 		dev_vdbg(hsotg->dev, "DWC OTG HCD URB Enqueue\n");
hsotg            4577 drivers/usb/dwc2/hcd.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4578 drivers/usb/dwc2/hcd.c 		if (!dwc2_hcd_is_bandwidth_allocated(hsotg, ep))
hsotg            4580 drivers/usb/dwc2/hcd.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4598 drivers/usb/dwc2/hcd.c 	dwc2_urb = dwc2_hcd_urb_alloc(hsotg, urb->number_of_packets,
hsotg            4603 drivers/usb/dwc2/hcd.c 	dwc2_hcd_urb_set_pipeinfo(hsotg, dwc2_urb, usb_pipedevice(urb->pipe),
hsotg            4613 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            4645 drivers/usb/dwc2/hcd.c 		qh = dwc2_hcd_qh_create(hsotg, dwc2_urb, mem_flags);
hsotg            4660 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4665 drivers/usb/dwc2/hcd.c 	retval = dwc2_hcd_urb_enqueue(hsotg, dwc2_urb, qh, qtd);
hsotg            4671 drivers/usb/dwc2/hcd.c 				dwc2_hcd_get_ep_bandwidth(hsotg, ep),
hsotg            4675 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4685 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4693 drivers/usb/dwc2/hcd.c 		dwc2_hcd_qh_unlink(hsotg, qh);
hsotg            4697 drivers/usb/dwc2/hcd.c 			dwc2_hcd_qtd_unlink_and_free(hsotg, qtd2, qh);
hsotg            4698 drivers/usb/dwc2/hcd.c 		dwc2_hcd_qh_free(hsotg, qh);
hsotg            4712 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4716 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "DWC OTG HCD URB Dequeue\n");
hsotg            4719 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4726 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "## urb->hcpriv is NULL ##\n");
hsotg            4730 drivers/usb/dwc2/hcd.c 	rc = dwc2_hcd_urb_dequeue(hsotg, urb->hcpriv);
hsotg            4738 drivers/usb/dwc2/hcd.c 	spin_unlock(&hsotg->lock);
hsotg            4740 drivers/usb/dwc2/hcd.c 	spin_lock(&hsotg->lock);
hsotg            4742 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "Called usb_hcd_giveback_urb()\n");
hsotg            4743 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "  urb->status = %d\n", urb->status);
hsotg            4745 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4758 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4760 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev,
hsotg            4763 drivers/usb/dwc2/hcd.c 	dwc2_hcd_endpoint_disable(hsotg, ep, 250);
hsotg            4774 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4777 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev,
hsotg            4781 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4782 drivers/usb/dwc2/hcd.c 	dwc2_hcd_endpoint_reset(hsotg, ep);
hsotg            4783 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4795 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4797 drivers/usb/dwc2/hcd.c 	return dwc2_handle_hcd_intr(hsotg);
hsotg            4808 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4810 drivers/usb/dwc2/hcd.c 	buf[0] = dwc2_hcd_is_status_changed(hsotg, 1) << 1;
hsotg            4827 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4835 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            4838 drivers/usb/dwc2/hcd.c 	if (hsotg->flags.b.port_connect_status)
hsotg            4839 drivers/usb/dwc2/hcd.c 		dwc2_hcd_queue_transactions(hsotg, DWC2_TRANSACTION_ALL);
hsotg            4841 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            4850 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4852 drivers/usb/dwc2/hcd.c 	if (hsotg->params.speed == speed)
hsotg            4855 drivers/usb/dwc2/hcd.c 	hsotg->params.speed = speed;
hsotg            4856 drivers/usb/dwc2/hcd.c 	queue_work(hsotg->wq_otg, &hsotg->wf_otg);
hsotg            4861 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4863 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.change_speed_quirk)
hsotg            4871 drivers/usb/dwc2/hcd.c 		dev_info(hsotg->dev, "Set speed to default high-speed\n");
hsotg            4878 drivers/usb/dwc2/hcd.c 	struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
hsotg            4880 drivers/usb/dwc2/hcd.c 	if (!hsotg->params.change_speed_quirk)
hsotg            4884 drivers/usb/dwc2/hcd.c 		dev_info(hsotg->dev, "Set speed to high-speed\n");
hsotg            4892 drivers/usb/dwc2/hcd.c 		dev_info(hsotg->dev, "Set speed to full-speed\n");
hsotg            4930 drivers/usb/dwc2/hcd.c static void dwc2_hcd_free(struct dwc2_hsotg *hsotg)
hsotg            4936 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "DWC OTG HCD FREE\n");
hsotg            4939 drivers/usb/dwc2/hcd.c 	dwc2_qh_list_free(hsotg, &hsotg->non_periodic_sched_inactive);
hsotg            4940 drivers/usb/dwc2/hcd.c 	dwc2_qh_list_free(hsotg, &hsotg->non_periodic_sched_waiting);
hsotg            4941 drivers/usb/dwc2/hcd.c 	dwc2_qh_list_free(hsotg, &hsotg->non_periodic_sched_active);
hsotg            4942 drivers/usb/dwc2/hcd.c 	dwc2_qh_list_free(hsotg, &hsotg->periodic_sched_inactive);
hsotg            4943 drivers/usb/dwc2/hcd.c 	dwc2_qh_list_free(hsotg, &hsotg->periodic_sched_ready);
hsotg            4944 drivers/usb/dwc2/hcd.c 	dwc2_qh_list_free(hsotg, &hsotg->periodic_sched_assigned);
hsotg            4945 drivers/usb/dwc2/hcd.c 	dwc2_qh_list_free(hsotg, &hsotg->periodic_sched_queued);
hsotg            4949 drivers/usb/dwc2/hcd.c 		struct dwc2_host_chan *chan = hsotg->hc_ptr_array[i];
hsotg            4952 drivers/usb/dwc2/hcd.c 			dev_dbg(hsotg->dev, "HCD Free channel #%i, chan=%p\n",
hsotg            4954 drivers/usb/dwc2/hcd.c 			hsotg->hc_ptr_array[i] = NULL;
hsotg            4959 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma) {
hsotg            4960 drivers/usb/dwc2/hcd.c 		if (hsotg->status_buf) {
hsotg            4961 drivers/usb/dwc2/hcd.c 			dma_free_coherent(hsotg->dev, DWC2_HCD_STATUS_BUF_SIZE,
hsotg            4962 drivers/usb/dwc2/hcd.c 					  hsotg->status_buf,
hsotg            4963 drivers/usb/dwc2/hcd.c 					  hsotg->status_buf_dma);
hsotg            4964 drivers/usb/dwc2/hcd.c 			hsotg->status_buf = NULL;
hsotg            4967 drivers/usb/dwc2/hcd.c 		kfree(hsotg->status_buf);
hsotg            4968 drivers/usb/dwc2/hcd.c 		hsotg->status_buf = NULL;
hsotg            4971 drivers/usb/dwc2/hcd.c 	ahbcfg = dwc2_readl(hsotg, GAHBCFG);
hsotg            4975 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, ahbcfg, GAHBCFG);
hsotg            4976 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0, GINTMSK);
hsotg            4978 drivers/usb/dwc2/hcd.c 	if (hsotg->hw_params.snpsid >= DWC2_CORE_REV_3_00a) {
hsotg            4979 drivers/usb/dwc2/hcd.c 		dctl = dwc2_readl(hsotg, DCTL);
hsotg            4981 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, dctl, DCTL);
hsotg            4984 drivers/usb/dwc2/hcd.c 	if (hsotg->wq_otg) {
hsotg            4985 drivers/usb/dwc2/hcd.c 		if (!cancel_work_sync(&hsotg->wf_otg))
hsotg            4986 drivers/usb/dwc2/hcd.c 			flush_workqueue(hsotg->wq_otg);
hsotg            4987 drivers/usb/dwc2/hcd.c 		destroy_workqueue(hsotg->wq_otg);
hsotg            4990 drivers/usb/dwc2/hcd.c 	cancel_work_sync(&hsotg->phy_reset_work);
hsotg            4992 drivers/usb/dwc2/hcd.c 	del_timer(&hsotg->wkp_timer);
hsotg            4995 drivers/usb/dwc2/hcd.c static void dwc2_hcd_release(struct dwc2_hsotg *hsotg)
hsotg            4998 drivers/usb/dwc2/hcd.c 	dwc2_disable_host_interrupts(hsotg);
hsotg            5000 drivers/usb/dwc2/hcd.c 	dwc2_hcd_free(hsotg);
hsotg            5009 drivers/usb/dwc2/hcd.c int dwc2_hcd_init(struct dwc2_hsotg *hsotg)
hsotg            5011 drivers/usb/dwc2/hcd.c 	struct platform_device *pdev = to_platform_device(hsotg->dev);
hsotg            5022 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "DWC OTG HCD INIT\n");
hsotg            5026 drivers/usb/dwc2/hcd.c 	hcfg = dwc2_readl(hsotg, HCFG);
hsotg            5027 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "hcfg=%08x\n", hcfg);
hsotg            5030 drivers/usb/dwc2/hcd.c 	hsotg->frame_num_array = kcalloc(FRAME_NUM_ARRAY_SIZE,
hsotg            5031 drivers/usb/dwc2/hcd.c 					 sizeof(*hsotg->frame_num_array),
hsotg            5033 drivers/usb/dwc2/hcd.c 	if (!hsotg->frame_num_array)
hsotg            5035 drivers/usb/dwc2/hcd.c 	hsotg->last_frame_num_array =
hsotg            5037 drivers/usb/dwc2/hcd.c 			sizeof(*hsotg->last_frame_num_array), GFP_KERNEL);
hsotg            5038 drivers/usb/dwc2/hcd.c 	if (!hsotg->last_frame_num_array)
hsotg            5041 drivers/usb/dwc2/hcd.c 	hsotg->last_frame_num = HFNUM_MAX_FRNUM;
hsotg            5044 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma &&
hsotg            5045 drivers/usb/dwc2/hcd.c 	    !hsotg->dev->dma_mask) {
hsotg            5046 drivers/usb/dwc2/hcd.c 		dev_warn(hsotg->dev,
hsotg            5048 drivers/usb/dwc2/hcd.c 		hsotg->params.host_dma = false;
hsotg            5049 drivers/usb/dwc2/hcd.c 		hsotg->params.dma_desc_enable = false;
hsotg            5053 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma) {
hsotg            5054 drivers/usb/dwc2/hcd.c 		if (dma_set_mask(hsotg->dev, DMA_BIT_MASK(32)) < 0)
hsotg            5055 drivers/usb/dwc2/hcd.c 			dev_warn(hsotg->dev, "can't set DMA mask\n");
hsotg            5056 drivers/usb/dwc2/hcd.c 		if (dma_set_coherent_mask(hsotg->dev, DMA_BIT_MASK(32)) < 0)
hsotg            5057 drivers/usb/dwc2/hcd.c 			dev_warn(hsotg->dev, "can't set coherent DMA mask\n");
hsotg            5060 drivers/usb/dwc2/hcd.c 	if (hsotg->params.change_speed_quirk) {
hsotg            5065 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma)
hsotg            5068 drivers/usb/dwc2/hcd.c 	hcd = usb_create_hcd(&dwc2_hc_driver, hsotg->dev, dev_name(hsotg->dev));
hsotg            5078 drivers/usb/dwc2/hcd.c 	((struct wrapper_priv_data *)&hcd->hcd_priv)->hsotg = hsotg;
hsotg            5079 drivers/usb/dwc2/hcd.c 	hsotg->priv = hcd;
hsotg            5085 drivers/usb/dwc2/hcd.c 	dwc2_disable_global_interrupts(hsotg);
hsotg            5088 drivers/usb/dwc2/hcd.c 	retval = dwc2_core_init(hsotg, true);
hsotg            5094 drivers/usb/dwc2/hcd.c 	hsotg->wq_otg = alloc_ordered_workqueue("dwc2", 0);
hsotg            5095 drivers/usb/dwc2/hcd.c 	if (!hsotg->wq_otg) {
hsotg            5096 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "Failed to create workqueue\n");
hsotg            5099 drivers/usb/dwc2/hcd.c 	INIT_WORK(&hsotg->wf_otg, dwc2_conn_id_status_change);
hsotg            5101 drivers/usb/dwc2/hcd.c 	timer_setup(&hsotg->wkp_timer, dwc2_wakeup_detected, 0);
hsotg            5104 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->non_periodic_sched_inactive);
hsotg            5105 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->non_periodic_sched_waiting);
hsotg            5106 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->non_periodic_sched_active);
hsotg            5109 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->periodic_sched_inactive);
hsotg            5110 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->periodic_sched_ready);
hsotg            5111 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->periodic_sched_assigned);
hsotg            5112 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->periodic_sched_queued);
hsotg            5114 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->split_order);
hsotg            5120 drivers/usb/dwc2/hcd.c 	INIT_LIST_HEAD(&hsotg->free_hc_list);
hsotg            5121 drivers/usb/dwc2/hcd.c 	num_channels = hsotg->params.host_channels;
hsotg            5122 drivers/usb/dwc2/hcd.c 	memset(&hsotg->hc_ptr_array[0], 0, sizeof(hsotg->hc_ptr_array));
hsotg            5130 drivers/usb/dwc2/hcd.c 		hsotg->hc_ptr_array[i] = channel;
hsotg            5134 drivers/usb/dwc2/hcd.c 	INIT_DELAYED_WORK(&hsotg->start_work, dwc2_hcd_start_func);
hsotg            5135 drivers/usb/dwc2/hcd.c 	INIT_DELAYED_WORK(&hsotg->reset_work, dwc2_hcd_reset_func);
hsotg            5136 drivers/usb/dwc2/hcd.c 	INIT_WORK(&hsotg->phy_reset_work, dwc2_hcd_phy_reset_func);
hsotg            5144 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma)
hsotg            5145 drivers/usb/dwc2/hcd.c 		hsotg->status_buf = dma_alloc_coherent(hsotg->dev,
hsotg            5147 drivers/usb/dwc2/hcd.c 					&hsotg->status_buf_dma, GFP_KERNEL);
hsotg            5149 drivers/usb/dwc2/hcd.c 		hsotg->status_buf = kzalloc(DWC2_HCD_STATUS_BUF_SIZE,
hsotg            5152 drivers/usb/dwc2/hcd.c 	if (!hsotg->status_buf)
hsotg            5160 drivers/usb/dwc2/hcd.c 	if (hsotg->params.dma_desc_enable ||
hsotg            5161 drivers/usb/dwc2/hcd.c 	    hsotg->params.dma_desc_fs_enable) {
hsotg            5162 drivers/usb/dwc2/hcd.c 		hsotg->desc_gen_cache = kmem_cache_create("dwc2-gen-desc",
hsotg            5166 drivers/usb/dwc2/hcd.c 		if (!hsotg->desc_gen_cache) {
hsotg            5167 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            5174 drivers/usb/dwc2/hcd.c 			hsotg->params.dma_desc_enable = false;
hsotg            5175 drivers/usb/dwc2/hcd.c 			hsotg->params.dma_desc_fs_enable = false;
hsotg            5178 drivers/usb/dwc2/hcd.c 		hsotg->desc_hsisoc_cache = kmem_cache_create("dwc2-hsisoc-desc",
hsotg            5181 drivers/usb/dwc2/hcd.c 		if (!hsotg->desc_hsisoc_cache) {
hsotg            5182 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            5185 drivers/usb/dwc2/hcd.c 			kmem_cache_destroy(hsotg->desc_gen_cache);
hsotg            5191 drivers/usb/dwc2/hcd.c 			hsotg->params.dma_desc_enable = false;
hsotg            5192 drivers/usb/dwc2/hcd.c 			hsotg->params.dma_desc_fs_enable = false;
hsotg            5196 drivers/usb/dwc2/hcd.c 	if (hsotg->params.host_dma) {
hsotg            5201 drivers/usb/dwc2/hcd.c 		hsotg->unaligned_cache = kmem_cache_create("dwc2-unaligned-dma",
hsotg            5204 drivers/usb/dwc2/hcd.c 		if (!hsotg->unaligned_cache)
hsotg            5205 drivers/usb/dwc2/hcd.c 			dev_err(hsotg->dev,
hsotg            5209 drivers/usb/dwc2/hcd.c 	hsotg->otg_port = 1;
hsotg            5210 drivers/usb/dwc2/hcd.c 	hsotg->frame_list = NULL;
hsotg            5211 drivers/usb/dwc2/hcd.c 	hsotg->frame_list_dma = 0;
hsotg            5212 drivers/usb/dwc2/hcd.c 	hsotg->periodic_qh_count = 0;
hsotg            5215 drivers/usb/dwc2/hcd.c 	hsotg->lx_state = DWC2_L3;
hsotg            5217 drivers/usb/dwc2/hcd.c 	hcd->self.otg_port = hsotg->otg_port;
hsotg            5222 drivers/usb/dwc2/hcd.c 	if (!IS_ERR_OR_NULL(hsotg->uphy))
hsotg            5223 drivers/usb/dwc2/hcd.c 		otg_set_host(hsotg->uphy->otg, &hcd->self);
hsotg            5230 drivers/usb/dwc2/hcd.c 	retval = usb_add_hcd(hcd, hsotg->irq, IRQF_SHARED);
hsotg            5236 drivers/usb/dwc2/hcd.c 	dwc2_hcd_dump_state(hsotg);
hsotg            5238 drivers/usb/dwc2/hcd.c 	dwc2_enable_global_interrupts(hsotg);
hsotg            5243 drivers/usb/dwc2/hcd.c 	kmem_cache_destroy(hsotg->unaligned_cache);
hsotg            5244 drivers/usb/dwc2/hcd.c 	kmem_cache_destroy(hsotg->desc_hsisoc_cache);
hsotg            5245 drivers/usb/dwc2/hcd.c 	kmem_cache_destroy(hsotg->desc_gen_cache);
hsotg            5247 drivers/usb/dwc2/hcd.c 	dwc2_hcd_release(hsotg);
hsotg            5253 drivers/usb/dwc2/hcd.c 	kfree(hsotg->last_frame_num_array);
hsotg            5254 drivers/usb/dwc2/hcd.c 	kfree(hsotg->frame_num_array);
hsotg            5257 drivers/usb/dwc2/hcd.c 	dev_err(hsotg->dev, "%s() FAILED, returning %d\n", __func__, retval);
hsotg            5265 drivers/usb/dwc2/hcd.c void dwc2_hcd_remove(struct dwc2_hsotg *hsotg)
hsotg            5269 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "DWC OTG HCD REMOVE\n");
hsotg            5271 drivers/usb/dwc2/hcd.c 	hcd = dwc2_hsotg_to_hcd(hsotg);
hsotg            5272 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "hsotg->hcd = %p\n", hcd);
hsotg            5275 drivers/usb/dwc2/hcd.c 		dev_dbg(hsotg->dev, "%s: dwc2_hsotg_to_hcd(hsotg) NULL!\n",
hsotg            5280 drivers/usb/dwc2/hcd.c 	if (!IS_ERR_OR_NULL(hsotg->uphy))
hsotg            5281 drivers/usb/dwc2/hcd.c 		otg_set_host(hsotg->uphy->otg, NULL);
hsotg            5284 drivers/usb/dwc2/hcd.c 	hsotg->priv = NULL;
hsotg            5286 drivers/usb/dwc2/hcd.c 	kmem_cache_destroy(hsotg->unaligned_cache);
hsotg            5287 drivers/usb/dwc2/hcd.c 	kmem_cache_destroy(hsotg->desc_hsisoc_cache);
hsotg            5288 drivers/usb/dwc2/hcd.c 	kmem_cache_destroy(hsotg->desc_gen_cache);
hsotg            5290 drivers/usb/dwc2/hcd.c 	dwc2_hcd_release(hsotg);
hsotg            5294 drivers/usb/dwc2/hcd.c 	kfree(hsotg->last_frame_num_array);
hsotg            5295 drivers/usb/dwc2/hcd.c 	kfree(hsotg->frame_num_array);
hsotg            5306 drivers/usb/dwc2/hcd.c int dwc2_backup_host_registers(struct dwc2_hsotg *hsotg)
hsotg            5311 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s\n", __func__);
hsotg            5314 drivers/usb/dwc2/hcd.c 	hr = &hsotg->hr_backup;
hsotg            5315 drivers/usb/dwc2/hcd.c 	hr->hcfg = dwc2_readl(hsotg, HCFG);
hsotg            5316 drivers/usb/dwc2/hcd.c 	hr->haintmsk = dwc2_readl(hsotg, HAINTMSK);
hsotg            5317 drivers/usb/dwc2/hcd.c 	for (i = 0; i < hsotg->params.host_channels; ++i)
hsotg            5318 drivers/usb/dwc2/hcd.c 		hr->hcintmsk[i] = dwc2_readl(hsotg, HCINTMSK(i));
hsotg            5320 drivers/usb/dwc2/hcd.c 	hr->hprt0 = dwc2_read_hprt0(hsotg);
hsotg            5321 drivers/usb/dwc2/hcd.c 	hr->hfir = dwc2_readl(hsotg, HFIR);
hsotg            5322 drivers/usb/dwc2/hcd.c 	hr->hptxfsiz = dwc2_readl(hsotg, HPTXFSIZ);
hsotg            5335 drivers/usb/dwc2/hcd.c int dwc2_restore_host_registers(struct dwc2_hsotg *hsotg)
hsotg            5340 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "%s\n", __func__);
hsotg            5343 drivers/usb/dwc2/hcd.c 	hr = &hsotg->hr_backup;
hsotg            5345 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "%s: no host registers to restore\n",
hsotg            5351 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hr->hcfg, HCFG);
hsotg            5352 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hr->haintmsk, HAINTMSK);
hsotg            5354 drivers/usb/dwc2/hcd.c 	for (i = 0; i < hsotg->params.host_channels; ++i)
hsotg            5355 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hr->hcintmsk[i], HCINTMSK(i));
hsotg            5357 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hr->hprt0, HPRT0);
hsotg            5358 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hr->hfir, HFIR);
hsotg            5359 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hr->hptxfsiz, HPTXFSIZ);
hsotg            5360 drivers/usb/dwc2/hcd.c 	hsotg->frame_number = 0;
hsotg            5370 drivers/usb/dwc2/hcd.c int dwc2_host_enter_hibernation(struct dwc2_hsotg *hsotg)
hsotg            5379 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "Preparing host for hibernation\n");
hsotg            5380 drivers/usb/dwc2/hcd.c 	ret = dwc2_backup_global_registers(hsotg);
hsotg            5382 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "%s: failed to backup global registers\n",
hsotg            5386 drivers/usb/dwc2/hcd.c 	ret = dwc2_backup_host_registers(hsotg);
hsotg            5388 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "%s: failed to backup host registers\n",
hsotg            5394 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg            5397 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            5400 drivers/usb/dwc2/hcd.c 	if (dwc2_hsotg_wait_bit_set(hsotg, HPRT0, HPRT0_SUSP, 3000))
hsotg            5401 drivers/usb/dwc2/hcd.c 		dev_warn(hsotg->dev, "Suspend wasn't generated\n");
hsotg            5407 drivers/usb/dwc2/hcd.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            5408 drivers/usb/dwc2/hcd.c 	hsotg->lx_state = DWC2_L2;
hsotg            5410 drivers/usb/dwc2/hcd.c 	gusbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg            5414 drivers/usb/dwc2/hcd.c 		pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg            5416 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg            5419 drivers/usb/dwc2/hcd.c 		gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5421 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5425 drivers/usb/dwc2/hcd.c 		gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5427 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5430 drivers/usb/dwc2/hcd.c 		pcgcctl = dwc2_readl(hsotg, PCGCTL);
hsotg            5432 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, pcgcctl, PCGCTL);
hsotg            5437 drivers/usb/dwc2/hcd.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5439 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5443 drivers/usb/dwc2/hcd.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5447 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5451 drivers/usb/dwc2/hcd.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5453 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5457 drivers/usb/dwc2/hcd.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5459 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5461 drivers/usb/dwc2/hcd.c 	hsotg->hibernated = 1;
hsotg            5462 drivers/usb/dwc2/hcd.c 	hsotg->bus_suspended = 1;
hsotg            5463 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "Host hibernation completed\n");
hsotg            5464 drivers/usb/dwc2/hcd.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            5480 drivers/usb/dwc2/hcd.c int dwc2_host_exit_hibernation(struct dwc2_hsotg *hsotg, int rem_wakeup,
hsotg            5489 drivers/usb/dwc2/hcd.c 	gr = &hsotg->gr_backup;
hsotg            5490 drivers/usb/dwc2/hcd.c 	hr = &hsotg->hr_backup;
hsotg            5492 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev,
hsotg            5496 drivers/usb/dwc2/hcd.c 	dwc2_hib_restore_common(hsotg, rem_wakeup, 1);
hsotg            5497 drivers/usb/dwc2/hcd.c 	hsotg->hibernated = 0;
hsotg            5507 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg            5510 drivers/usb/dwc2/hcd.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5512 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5516 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, gr->gusbcfg, GUSBCFG);
hsotg            5517 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hr->hcfg, HCFG);
hsotg            5520 drivers/usb/dwc2/hcd.c 	gpwrdn = dwc2_readl(hsotg, GPWRDN);
hsotg            5522 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, gpwrdn, GPWRDN);
hsotg            5529 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            5538 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            5543 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            5546 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            5551 drivers/usb/dwc2/hcd.c 		dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            5554 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg            5558 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, hprt0, HPRT0);
hsotg            5560 drivers/usb/dwc2/hcd.c 	hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg            5563 drivers/usb/dwc2/hcd.c 	dwc2_writel(hsotg, 0xffffffff, GINTSTS);
hsotg            5566 drivers/usb/dwc2/hcd.c 	ret = dwc2_restore_global_registers(hsotg);
hsotg            5568 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "%s: failed to restore registers\n",
hsotg            5574 drivers/usb/dwc2/hcd.c 	ret = dwc2_restore_host_registers(hsotg);
hsotg            5576 drivers/usb/dwc2/hcd.c 		dev_err(hsotg->dev, "%s: failed to restore host registers\n",
hsotg            5581 drivers/usb/dwc2/hcd.c 	dwc2_hcd_rem_wakeup(hsotg);
hsotg            5583 drivers/usb/dwc2/hcd.c 	hsotg->hibernated = 0;
hsotg            5584 drivers/usb/dwc2/hcd.c 	hsotg->bus_suspended = 0;
hsotg            5585 drivers/usb/dwc2/hcd.c 	hsotg->lx_state = DWC2_L0;
hsotg            5586 drivers/usb/dwc2/hcd.c 	dev_dbg(hsotg->dev, "Host hibernation restore complete\n");
hsotg             341 drivers/usb/dwc2/hcd.h 	struct dwc2_hsotg *hsotg;
hsotg             453 drivers/usb/dwc2/hcd.h 	struct dwc2_hsotg *hsotg;
hsotg             458 drivers/usb/dwc2/hcd.h u32 dwc2_calc_frame_interval(struct dwc2_hsotg *hsotg);
hsotg             461 drivers/usb/dwc2/hcd.h static inline struct usb_hcd *dwc2_hsotg_to_hcd(struct dwc2_hsotg *hsotg)
hsotg             463 drivers/usb/dwc2/hcd.h 	return (struct usb_hcd *)hsotg->priv;
hsotg             473 drivers/usb/dwc2/hcd.h static inline void disable_hc_int(struct dwc2_hsotg *hsotg, int chnum, u32 intr)
hsotg             475 drivers/usb/dwc2/hcd.h 	u32 mask = dwc2_readl(hsotg, HCINTMSK(chnum));
hsotg             478 drivers/usb/dwc2/hcd.h 	dwc2_writel(hsotg, mask, HCINTMSK(chnum));
hsotg             481 drivers/usb/dwc2/hcd.h void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan);
hsotg             482 drivers/usb/dwc2/hcd.h void dwc2_hc_halt(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan,
hsotg             484 drivers/usb/dwc2/hcd.h void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg,
hsotg             491 drivers/usb/dwc2/hcd.h static inline u32 dwc2_read_hprt0(struct dwc2_hsotg *hsotg)
hsotg             493 drivers/usb/dwc2/hcd.h 	u32 hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg             554 drivers/usb/dwc2/hcd.h int dwc2_hcd_init(struct dwc2_hsotg *hsotg);
hsotg             555 drivers/usb/dwc2/hcd.h void dwc2_hcd_remove(struct dwc2_hsotg *hsotg);
hsotg             559 drivers/usb/dwc2/hcd.h 						struct dwc2_hsotg *hsotg);
hsotg             560 drivers/usb/dwc2/hcd.h void dwc2_hcd_queue_transactions(struct dwc2_hsotg *hsotg,
hsotg             565 drivers/usb/dwc2/hcd.h struct dwc2_qh *dwc2_hcd_qh_create(struct dwc2_hsotg *hsotg,
hsotg             568 drivers/usb/dwc2/hcd.h void dwc2_hcd_qh_free(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh);
hsotg             569 drivers/usb/dwc2/hcd.h int dwc2_hcd_qh_add(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh);
hsotg             570 drivers/usb/dwc2/hcd.h void dwc2_hcd_qh_unlink(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh);
hsotg             571 drivers/usb/dwc2/hcd.h void dwc2_hcd_qh_deactivate(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg             575 drivers/usb/dwc2/hcd.h int dwc2_hcd_qtd_add(struct dwc2_hsotg *hsotg, struct dwc2_qtd *qtd,
hsotg             579 drivers/usb/dwc2/hcd.h static inline void dwc2_hcd_qtd_unlink_and_free(struct dwc2_hsotg *hsotg,
hsotg             588 drivers/usb/dwc2/hcd.h void dwc2_hcd_start_xfer_ddma(struct dwc2_hsotg *hsotg,
hsotg             590 drivers/usb/dwc2/hcd.h void dwc2_hcd_complete_xfer_ddma(struct dwc2_hsotg *hsotg,
hsotg             594 drivers/usb/dwc2/hcd.h int dwc2_hcd_qh_init_ddma(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg             596 drivers/usb/dwc2/hcd.h void dwc2_hcd_qh_free_ddma(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh);
hsotg             692 drivers/usb/dwc2/hcd.h static inline u32 dwc2_read_core_intr(struct dwc2_hsotg *hsotg)
hsotg             694 drivers/usb/dwc2/hcd.h 	return dwc2_readl(hsotg, GINTSTS) &
hsotg             695 drivers/usb/dwc2/hcd.h 	       dwc2_readl(hsotg, GINTMSK);
hsotg             734 drivers/usb/dwc2/hcd.h static inline int dwc2_hcd_is_bandwidth_allocated(struct dwc2_hsotg *hsotg,
hsotg             745 drivers/usb/dwc2/hcd.h static inline u16 dwc2_hcd_get_ep_bandwidth(struct dwc2_hsotg *hsotg,
hsotg             758 drivers/usb/dwc2/hcd.h void dwc2_hcd_save_data_toggle(struct dwc2_hsotg *hsotg,
hsotg             772 drivers/usb/dwc2/hcd.h irqreturn_t dwc2_handle_hcd_intr(struct dwc2_hsotg *hsotg);
hsotg             779 drivers/usb/dwc2/hcd.h void dwc2_hcd_stop(struct dwc2_hsotg *hsotg);
hsotg             787 drivers/usb/dwc2/hcd.h int dwc2_hcd_is_b_host(struct dwc2_hsotg *hsotg);
hsotg             797 drivers/usb/dwc2/hcd.h void dwc2_hcd_dump_state(struct dwc2_hsotg *hsotg);
hsotg             806 drivers/usb/dwc2/hcd.h struct dwc2_tt *dwc2_host_get_tt_info(struct dwc2_hsotg *hsotg,
hsotg             810 drivers/usb/dwc2/hcd.h void dwc2_host_put_tt_info(struct dwc2_hsotg *hsotg,
hsotg             812 drivers/usb/dwc2/hcd.h int dwc2_host_get_speed(struct dwc2_hsotg *hsotg, void *context);
hsotg             813 drivers/usb/dwc2/hcd.h void dwc2_host_complete(struct dwc2_hsotg *hsotg, struct dwc2_qtd *qtd,
hsotg              88 drivers/usb/dwc2/hcd_ddma.c static int dwc2_desc_list_alloc(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg              95 drivers/usb/dwc2/hcd_ddma.c 		desc_cache = hsotg->desc_hsisoc_cache;
hsotg              97 drivers/usb/dwc2/hcd_ddma.c 		desc_cache = hsotg->desc_gen_cache;
hsotg             106 drivers/usb/dwc2/hcd_ddma.c 	qh->desc_list_dma = dma_map_single(hsotg->dev, qh->desc_list,
hsotg             112 drivers/usb/dwc2/hcd_ddma.c 		dma_unmap_single(hsotg->dev, qh->desc_list_dma,
hsotg             123 drivers/usb/dwc2/hcd_ddma.c static void dwc2_desc_list_free(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg             129 drivers/usb/dwc2/hcd_ddma.c 		desc_cache = hsotg->desc_hsisoc_cache;
hsotg             131 drivers/usb/dwc2/hcd_ddma.c 		desc_cache = hsotg->desc_gen_cache;
hsotg             134 drivers/usb/dwc2/hcd_ddma.c 		dma_unmap_single(hsotg->dev, qh->desc_list_dma,
hsotg             144 drivers/usb/dwc2/hcd_ddma.c static int dwc2_frame_list_alloc(struct dwc2_hsotg *hsotg, gfp_t mem_flags)
hsotg             146 drivers/usb/dwc2/hcd_ddma.c 	if (hsotg->frame_list)
hsotg             149 drivers/usb/dwc2/hcd_ddma.c 	hsotg->frame_list_sz = 4 * FRLISTEN_64_SIZE;
hsotg             150 drivers/usb/dwc2/hcd_ddma.c 	hsotg->frame_list = kzalloc(hsotg->frame_list_sz, GFP_ATOMIC | GFP_DMA);
hsotg             151 drivers/usb/dwc2/hcd_ddma.c 	if (!hsotg->frame_list)
hsotg             154 drivers/usb/dwc2/hcd_ddma.c 	hsotg->frame_list_dma = dma_map_single(hsotg->dev, hsotg->frame_list,
hsotg             155 drivers/usb/dwc2/hcd_ddma.c 					       hsotg->frame_list_sz,
hsotg             161 drivers/usb/dwc2/hcd_ddma.c static void dwc2_frame_list_free(struct dwc2_hsotg *hsotg)
hsotg             165 drivers/usb/dwc2/hcd_ddma.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg             167 drivers/usb/dwc2/hcd_ddma.c 	if (!hsotg->frame_list) {
hsotg             168 drivers/usb/dwc2/hcd_ddma.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             172 drivers/usb/dwc2/hcd_ddma.c 	dma_unmap_single(hsotg->dev, hsotg->frame_list_dma,
hsotg             173 drivers/usb/dwc2/hcd_ddma.c 			 hsotg->frame_list_sz, DMA_FROM_DEVICE);
hsotg             175 drivers/usb/dwc2/hcd_ddma.c 	kfree(hsotg->frame_list);
hsotg             176 drivers/usb/dwc2/hcd_ddma.c 	hsotg->frame_list = NULL;
hsotg             178 drivers/usb/dwc2/hcd_ddma.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             181 drivers/usb/dwc2/hcd_ddma.c static void dwc2_per_sched_enable(struct dwc2_hsotg *hsotg, u32 fr_list_en)
hsotg             186 drivers/usb/dwc2/hcd_ddma.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg             188 drivers/usb/dwc2/hcd_ddma.c 	hcfg = dwc2_readl(hsotg, HCFG);
hsotg             191 drivers/usb/dwc2/hcd_ddma.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             195 drivers/usb/dwc2/hcd_ddma.c 	dwc2_writel(hsotg, hsotg->frame_list_dma, HFLBADDR);
hsotg             199 drivers/usb/dwc2/hcd_ddma.c 	dev_vdbg(hsotg->dev, "Enabling Periodic schedule\n");
hsotg             200 drivers/usb/dwc2/hcd_ddma.c 	dwc2_writel(hsotg, hcfg, HCFG);
hsotg             202 drivers/usb/dwc2/hcd_ddma.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             205 drivers/usb/dwc2/hcd_ddma.c static void dwc2_per_sched_disable(struct dwc2_hsotg *hsotg)
hsotg             210 drivers/usb/dwc2/hcd_ddma.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg             212 drivers/usb/dwc2/hcd_ddma.c 	hcfg = dwc2_readl(hsotg, HCFG);
hsotg             215 drivers/usb/dwc2/hcd_ddma.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             220 drivers/usb/dwc2/hcd_ddma.c 	dev_vdbg(hsotg->dev, "Disabling Periodic schedule\n");
hsotg             221 drivers/usb/dwc2/hcd_ddma.c 	dwc2_writel(hsotg, hcfg, HCFG);
hsotg             223 drivers/usb/dwc2/hcd_ddma.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             230 drivers/usb/dwc2/hcd_ddma.c static void dwc2_update_frame_list(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg             236 drivers/usb/dwc2/hcd_ddma.c 	if (!hsotg) {
hsotg             237 drivers/usb/dwc2/hcd_ddma.c 		pr_err("hsotg = %p\n", hsotg);
hsotg             242 drivers/usb/dwc2/hcd_ddma.c 		dev_err(hsotg->dev, "qh->channel = %p\n", qh->channel);
hsotg             246 drivers/usb/dwc2/hcd_ddma.c 	if (!hsotg->frame_list) {
hsotg             247 drivers/usb/dwc2/hcd_ddma.c 		dev_err(hsotg->dev, "hsotg->frame_list = %p\n",
hsotg             248 drivers/usb/dwc2/hcd_ddma.c 			hsotg->frame_list);
hsotg             262 drivers/usb/dwc2/hcd_ddma.c 			hsotg->frame_list[j] |= 1 << chan->hc_num;
hsotg             264 drivers/usb/dwc2/hcd_ddma.c 			hsotg->frame_list[j] &= ~(1 << chan->hc_num);
hsotg             272 drivers/usb/dwc2/hcd_ddma.c 	dma_sync_single_for_device(hsotg->dev,
hsotg             273 drivers/usb/dwc2/hcd_ddma.c 				   hsotg->frame_list_dma,
hsotg             274 drivers/usb/dwc2/hcd_ddma.c 				   hsotg->frame_list_sz,
hsotg             294 drivers/usb/dwc2/hcd_ddma.c static void dwc2_release_channel_ddma(struct dwc2_hsotg *hsotg,
hsotg             300 drivers/usb/dwc2/hcd_ddma.c 		if (hsotg->params.uframe_sched)
hsotg             301 drivers/usb/dwc2/hcd_ddma.c 			hsotg->available_host_channels++;
hsotg             303 drivers/usb/dwc2/hcd_ddma.c 			hsotg->non_periodic_channels--;
hsotg             305 drivers/usb/dwc2/hcd_ddma.c 		dwc2_update_frame_list(hsotg, qh, 0);
hsotg             306 drivers/usb/dwc2/hcd_ddma.c 		hsotg->available_host_channels++;
hsotg             316 drivers/usb/dwc2/hcd_ddma.c 		dwc2_hc_cleanup(hsotg, chan);
hsotg             317 drivers/usb/dwc2/hcd_ddma.c 		list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list);
hsotg             342 drivers/usb/dwc2/hcd_ddma.c int dwc2_hcd_qh_init_ddma(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg             348 drivers/usb/dwc2/hcd_ddma.c 		dev_err(hsotg->dev,
hsotg             354 drivers/usb/dwc2/hcd_ddma.c 	retval = dwc2_desc_list_alloc(hsotg, qh, mem_flags);
hsotg             360 drivers/usb/dwc2/hcd_ddma.c 		if (!hsotg->frame_list) {
hsotg             361 drivers/usb/dwc2/hcd_ddma.c 			retval = dwc2_frame_list_alloc(hsotg, mem_flags);
hsotg             365 drivers/usb/dwc2/hcd_ddma.c 			dwc2_per_sched_enable(hsotg, HCFG_FRLISTEN_64);
hsotg             373 drivers/usb/dwc2/hcd_ddma.c 	dwc2_desc_list_free(hsotg, qh);
hsotg             388 drivers/usb/dwc2/hcd_ddma.c void dwc2_hcd_qh_free_ddma(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg             392 drivers/usb/dwc2/hcd_ddma.c 	dwc2_desc_list_free(hsotg, qh);
hsotg             401 drivers/usb/dwc2/hcd_ddma.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg             403 drivers/usb/dwc2/hcd_ddma.c 		dwc2_release_channel_ddma(hsotg, qh);
hsotg             404 drivers/usb/dwc2/hcd_ddma.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg             408 drivers/usb/dwc2/hcd_ddma.c 	    (hsotg->params.uframe_sched ||
hsotg             409 drivers/usb/dwc2/hcd_ddma.c 	     !hsotg->periodic_channels) && hsotg->frame_list) {
hsotg             410 drivers/usb/dwc2/hcd_ddma.c 		dwc2_per_sched_disable(hsotg);
hsotg             411 drivers/usb/dwc2/hcd_ddma.c 		dwc2_frame_list_free(hsotg);
hsotg             428 drivers/usb/dwc2/hcd_ddma.c static u16 dwc2_calc_starting_frame(struct dwc2_hsotg *hsotg,
hsotg             433 drivers/usb/dwc2/hcd_ddma.c 	hsotg->frame_number = dwc2_hcd_get_frame_number(hsotg);
hsotg             462 drivers/usb/dwc2/hcd_ddma.c 		if (dwc2_micro_frame_num(hsotg->frame_number) >= 5) {
hsotg             464 drivers/usb/dwc2/hcd_ddma.c 			frame = dwc2_frame_num_inc(hsotg->frame_number,
hsotg             468 drivers/usb/dwc2/hcd_ddma.c 			frame = dwc2_frame_num_inc(hsotg->frame_number,
hsotg             480 drivers/usb/dwc2/hcd_ddma.c 		frame = dwc2_frame_num_inc(hsotg->frame_number, 2);
hsotg             490 drivers/usb/dwc2/hcd_ddma.c static u16 dwc2_recalc_initial_desc_idx(struct dwc2_hsotg *hsotg,
hsotg             514 drivers/usb/dwc2/hcd_ddma.c 		frame = dwc2_calc_starting_frame(hsotg, qh, &skip_frames);
hsotg             525 drivers/usb/dwc2/hcd_ddma.c 		qh->next_active_frame = dwc2_calc_starting_frame(hsotg, qh,
hsotg             541 drivers/usb/dwc2/hcd_ddma.c static void dwc2_fill_host_isoc_dma_desc(struct dwc2_hsotg *hsotg,
hsotg             573 drivers/usb/dwc2/hcd_ddma.c 	dma_sync_single_for_device(hsotg->dev,
hsotg             580 drivers/usb/dwc2/hcd_ddma.c static void dwc2_init_isoc_dma_desc(struct dwc2_hsotg *hsotg,
hsotg             591 drivers/usb/dwc2/hcd_ddma.c 	hsotg->frame_number = dwc2_hcd_get_frame_number(hsotg);
hsotg             592 drivers/usb/dwc2/hcd_ddma.c 	cur_idx = dwc2_frame_list_idx(hsotg->frame_number);
hsotg             604 drivers/usb/dwc2/hcd_ddma.c 			dev_vdbg(hsotg->dev,
hsotg             631 drivers/usb/dwc2/hcd_ddma.c 			dwc2_fill_host_isoc_dma_desc(hsotg, qtd, qh,
hsotg             647 drivers/usb/dwc2/hcd_ddma.c 		dma_sync_single_for_device(hsotg->dev,
hsotg             681 drivers/usb/dwc2/hcd_ddma.c 	dma_sync_single_for_device(hsotg->dev,
hsotg             689 drivers/usb/dwc2/hcd_ddma.c static void dwc2_fill_host_dma_desc(struct dwc2_hsotg *hsotg,
hsotg             723 drivers/usb/dwc2/hcd_ddma.c 	dma_sync_single_for_device(hsotg->dev,
hsotg             741 drivers/usb/dwc2/hcd_ddma.c static void dwc2_init_non_isoc_dma_desc(struct dwc2_hsotg *hsotg,
hsotg             748 drivers/usb/dwc2/hcd_ddma.c 	dev_vdbg(hsotg->dev, "%s(): qh=%p dma=%08lx len=%d\n", __func__, qh,
hsotg             759 drivers/usb/dwc2/hcd_ddma.c 		dev_vdbg(hsotg->dev, "qtd=%p\n", qtd);
hsotg             767 drivers/usb/dwc2/hcd_ddma.c 			dev_vdbg(hsotg->dev, "buf=%08lx len=%d\n",
hsotg             775 drivers/usb/dwc2/hcd_ddma.c 				dev_vdbg(hsotg->dev,
hsotg             779 drivers/usb/dwc2/hcd_ddma.c 				dma_sync_single_for_device(hsotg->dev,
hsotg             786 drivers/usb/dwc2/hcd_ddma.c 			dwc2_fill_host_dma_desc(hsotg, chan, qtd, qh, n_desc);
hsotg             787 drivers/usb/dwc2/hcd_ddma.c 			dev_vdbg(hsotg->dev,
hsotg             797 drivers/usb/dwc2/hcd_ddma.c 		dev_vdbg(hsotg->dev, "n_desc=%d\n", n_desc);
hsotg             808 drivers/usb/dwc2/hcd_ddma.c 		dev_vdbg(hsotg->dev, "set IOC/EOL/A bits in desc %d (%p)\n",
hsotg             810 drivers/usb/dwc2/hcd_ddma.c 		dma_sync_single_for_device(hsotg->dev,
hsotg             817 drivers/usb/dwc2/hcd_ddma.c 			dev_vdbg(hsotg->dev, "set A bit in desc 0 (%p)\n",
hsotg             819 drivers/usb/dwc2/hcd_ddma.c 			dma_sync_single_for_device(hsotg->dev,
hsotg             847 drivers/usb/dwc2/hcd_ddma.c void dwc2_hcd_start_xfer_ddma(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg             856 drivers/usb/dwc2/hcd_ddma.c 		dwc2_init_non_isoc_dma_desc(hsotg, qh);
hsotg             857 drivers/usb/dwc2/hcd_ddma.c 		dwc2_hc_start_transfer_ddma(hsotg, chan);
hsotg             860 drivers/usb/dwc2/hcd_ddma.c 		dwc2_init_non_isoc_dma_desc(hsotg, qh);
hsotg             861 drivers/usb/dwc2/hcd_ddma.c 		dwc2_update_frame_list(hsotg, qh, 1);
hsotg             862 drivers/usb/dwc2/hcd_ddma.c 		dwc2_hc_start_transfer_ddma(hsotg, chan);
hsotg             866 drivers/usb/dwc2/hcd_ddma.c 			skip_frames = dwc2_recalc_initial_desc_idx(hsotg, qh);
hsotg             867 drivers/usb/dwc2/hcd_ddma.c 		dwc2_init_isoc_dma_desc(hsotg, qh, skip_frames);
hsotg             870 drivers/usb/dwc2/hcd_ddma.c 			dwc2_update_frame_list(hsotg, qh, 1);
hsotg             880 drivers/usb/dwc2/hcd_ddma.c 			dwc2_hc_start_transfer_ddma(hsotg, chan);
hsotg             892 drivers/usb/dwc2/hcd_ddma.c static int dwc2_cmpl_host_isoc_dma_desc(struct dwc2_hsotg *hsotg,
hsotg             905 drivers/usb/dwc2/hcd_ddma.c 	dma_sync_single_for_cpu(hsotg->dev, qh->desc_list_dma + (idx *
hsotg             938 drivers/usb/dwc2/hcd_ddma.c 		dwc2_host_complete(hsotg, qtd, 0);
hsotg             939 drivers/usb/dwc2/hcd_ddma.c 		dwc2_hcd_qtd_unlink_and_free(hsotg, qtd, qh);
hsotg             961 drivers/usb/dwc2/hcd_ddma.c static void dwc2_complete_isoc_xfer_ddma(struct dwc2_hsotg *hsotg,
hsotg            1003 drivers/usb/dwc2/hcd_ddma.c 				dwc2_host_complete(hsotg, qtd, err);
hsotg            1006 drivers/usb/dwc2/hcd_ddma.c 			dwc2_hcd_qtd_unlink_and_free(hsotg, qtd, qh);
hsotg            1022 drivers/usb/dwc2/hcd_ddma.c 			dev_vdbg(hsotg->dev,
hsotg            1032 drivers/usb/dwc2/hcd_ddma.c 			rc = dwc2_cmpl_host_isoc_dma_desc(hsotg, chan, qtd, qh,
hsotg            1050 drivers/usb/dwc2/hcd_ddma.c 			cur_idx = dwc2_frame_list_idx(hsotg->frame_number);
hsotg            1067 drivers/usb/dwc2/hcd_ddma.c static int dwc2_update_non_isoc_urb_state_ddma(struct dwc2_hsotg *hsotg,
hsotg            1081 drivers/usb/dwc2/hcd_ddma.c 	dev_vdbg(hsotg->dev, "remain=%d dwc2_urb=%p\n", remain, urb);
hsotg            1084 drivers/usb/dwc2/hcd_ddma.c 		dev_err(hsotg->dev, "EIO\n");
hsotg            1092 drivers/usb/dwc2/hcd_ddma.c 			dev_vdbg(hsotg->dev, "Stall\n");
hsotg            1096 drivers/usb/dwc2/hcd_ddma.c 			dev_err(hsotg->dev, "Babble\n");
hsotg            1100 drivers/usb/dwc2/hcd_ddma.c 			dev_err(hsotg->dev, "XactErr\n");
hsotg            1104 drivers/usb/dwc2/hcd_ddma.c 			dev_err(hsotg->dev,
hsotg            1113 drivers/usb/dwc2/hcd_ddma.c 		dev_vdbg(hsotg->dev,
hsotg            1138 drivers/usb/dwc2/hcd_ddma.c 		dev_vdbg(hsotg->dev, "length=%d actual=%d\n", urb->length,
hsotg            1149 drivers/usb/dwc2/hcd_ddma.c static int dwc2_process_non_isoc_desc(struct dwc2_hsotg *hsotg,
hsotg            1162 drivers/usb/dwc2/hcd_ddma.c 	dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg            1167 drivers/usb/dwc2/hcd_ddma.c 	dma_sync_single_for_cpu(hsotg->dev,
hsotg            1175 drivers/usb/dwc2/hcd_ddma.c 	dev_vdbg(hsotg->dev,
hsotg            1178 drivers/usb/dwc2/hcd_ddma.c 	failed = dwc2_update_non_isoc_urb_state_ddma(hsotg, chan, qtd, dma_desc,
hsotg            1182 drivers/usb/dwc2/hcd_ddma.c 		dwc2_host_complete(hsotg, qtd, urb->status);
hsotg            1183 drivers/usb/dwc2/hcd_ddma.c 		dwc2_hcd_qtd_unlink_and_free(hsotg, qtd, qh);
hsotg            1184 drivers/usb/dwc2/hcd_ddma.c 		dev_vdbg(hsotg->dev, "failed=%1x xfer_done=%1x\n",
hsotg            1196 drivers/usb/dwc2/hcd_ddma.c 			dev_vdbg(hsotg->dev,
hsotg            1202 drivers/usb/dwc2/hcd_ddma.c 				dev_vdbg(hsotg->dev,
hsotg            1209 drivers/usb/dwc2/hcd_ddma.c 				dwc2_hcd_save_data_toggle(hsotg, chan, chnum,
hsotg            1221 drivers/usb/dwc2/hcd_ddma.c static void dwc2_complete_non_isoc_xfer_ddma(struct dwc2_hsotg *hsotg,
hsotg            1247 drivers/usb/dwc2/hcd_ddma.c 			if (dwc2_process_non_isoc_desc(hsotg, chan, chnum, qtd,
hsotg            1267 drivers/usb/dwc2/hcd_ddma.c 			dwc2_hcd_save_data_toggle(hsotg, chan, chnum, NULL);
hsotg            1299 drivers/usb/dwc2/hcd_ddma.c void dwc2_hcd_complete_xfer_ddma(struct dwc2_hsotg *hsotg,
hsotg            1308 drivers/usb/dwc2/hcd_ddma.c 		dwc2_complete_isoc_xfer_ddma(hsotg, chan, halt_status);
hsotg            1322 drivers/usb/dwc2/hcd_ddma.c 				dwc2_host_complete(hsotg, qtd,
hsotg            1324 drivers/usb/dwc2/hcd_ddma.c 				dwc2_hcd_qtd_unlink_and_free(hsotg,
hsotg            1330 drivers/usb/dwc2/hcd_ddma.c 				dwc2_hc_halt(hsotg, chan, halt_status);
hsotg            1331 drivers/usb/dwc2/hcd_ddma.c 			dwc2_release_channel_ddma(hsotg, qh);
hsotg            1332 drivers/usb/dwc2/hcd_ddma.c 			dwc2_hcd_qh_unlink(hsotg, qh);
hsotg            1336 drivers/usb/dwc2/hcd_ddma.c 				       &hsotg->periodic_sched_assigned);
hsotg            1353 drivers/usb/dwc2/hcd_ddma.c 		dwc2_complete_non_isoc_xfer_ddma(hsotg, chan, chnum,
hsotg            1355 drivers/usb/dwc2/hcd_ddma.c 		dwc2_release_channel_ddma(hsotg, qh);
hsotg            1356 drivers/usb/dwc2/hcd_ddma.c 		dwc2_hcd_qh_unlink(hsotg, qh);
hsotg            1363 drivers/usb/dwc2/hcd_ddma.c 			dwc2_hcd_qh_add(hsotg, qh);
hsotg            1367 drivers/usb/dwc2/hcd_ddma.c 	tr_type = dwc2_hcd_select_transactions(hsotg);
hsotg            1375 drivers/usb/dwc2/hcd_ddma.c 		dwc2_hcd_queue_transactions(hsotg, tr_type);
hsotg              63 drivers/usb/dwc2/hcd_intr.c static void dwc2_track_missed_sofs(struct dwc2_hsotg *hsotg)
hsotg              65 drivers/usb/dwc2/hcd_intr.c 	u16 curr_frame_number = hsotg->frame_number;
hsotg              66 drivers/usb/dwc2/hcd_intr.c 	u16 expected = dwc2_frame_num_inc(hsotg->last_frame_num, 1);
hsotg              69 drivers/usb/dwc2/hcd_intr.c 		dwc2_sch_vdbg(hsotg, "MISSED SOF %04x != %04x\n",
hsotg              73 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->frame_num_idx < FRAME_NUM_ARRAY_SIZE) {
hsotg              75 drivers/usb/dwc2/hcd_intr.c 			hsotg->frame_num_array[hsotg->frame_num_idx] =
hsotg              77 drivers/usb/dwc2/hcd_intr.c 			hsotg->last_frame_num_array[hsotg->frame_num_idx] =
hsotg              78 drivers/usb/dwc2/hcd_intr.c 					hsotg->last_frame_num;
hsotg              79 drivers/usb/dwc2/hcd_intr.c 			hsotg->frame_num_idx++;
hsotg              81 drivers/usb/dwc2/hcd_intr.c 	} else if (!hsotg->dumped_frame_num_array) {
hsotg              84 drivers/usb/dwc2/hcd_intr.c 		dev_info(hsotg->dev, "Frame     Last Frame\n");
hsotg              85 drivers/usb/dwc2/hcd_intr.c 		dev_info(hsotg->dev, "-----     ----------\n");
hsotg              87 drivers/usb/dwc2/hcd_intr.c 			dev_info(hsotg->dev, "0x%04x    0x%04x\n",
hsotg              88 drivers/usb/dwc2/hcd_intr.c 				 hsotg->frame_num_array[i],
hsotg              89 drivers/usb/dwc2/hcd_intr.c 				 hsotg->last_frame_num_array[i]);
hsotg              91 drivers/usb/dwc2/hcd_intr.c 		hsotg->dumped_frame_num_array = 1;
hsotg              94 drivers/usb/dwc2/hcd_intr.c 	hsotg->last_frame_num = curr_frame_number;
hsotg              97 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_handle_tt_clear(struct dwc2_hsotg *hsotg,
hsotg             101 drivers/usb/dwc2/hcd_intr.c 	struct usb_device *root_hub = dwc2_hsotg_to_hcd(hsotg)->self.root_hub;
hsotg             140 drivers/usb/dwc2/hcd_intr.c static void dwc2_sof_intr(struct dwc2_hsotg *hsotg)
hsotg             147 drivers/usb/dwc2/hcd_intr.c 	dwc2_writel(hsotg, GINTSTS_SOF, GINTSTS);
hsotg             150 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "--Start of Frame Interrupt--\n");
hsotg             153 drivers/usb/dwc2/hcd_intr.c 	hsotg->frame_number = dwc2_hcd_get_frame_number(hsotg);
hsotg             155 drivers/usb/dwc2/hcd_intr.c 	dwc2_track_missed_sofs(hsotg);
hsotg             158 drivers/usb/dwc2/hcd_intr.c 	qh_entry = hsotg->periodic_sched_inactive.next;
hsotg             159 drivers/usb/dwc2/hcd_intr.c 	while (qh_entry != &hsotg->periodic_sched_inactive) {
hsotg             163 drivers/usb/dwc2/hcd_intr.c 				      hsotg->frame_number)) {
hsotg             164 drivers/usb/dwc2/hcd_intr.c 			dwc2_sch_vdbg(hsotg, "QH=%p ready fn=%04x, nxt=%04x\n",
hsotg             165 drivers/usb/dwc2/hcd_intr.c 				      qh, hsotg->frame_number,
hsotg             173 drivers/usb/dwc2/hcd_intr.c 				       &hsotg->periodic_sched_ready);
hsotg             176 drivers/usb/dwc2/hcd_intr.c 	tr_type = dwc2_hcd_select_transactions(hsotg);
hsotg             178 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_queue_transactions(hsotg, tr_type);
hsotg             186 drivers/usb/dwc2/hcd_intr.c static void dwc2_rx_fifo_level_intr(struct dwc2_hsotg *hsotg)
hsotg             192 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "--RxFIFO Level Interrupt--\n");
hsotg             194 drivers/usb/dwc2/hcd_intr.c 	grxsts = dwc2_readl(hsotg, GRXSTSP);
hsotg             196 drivers/usb/dwc2/hcd_intr.c 	chan = hsotg->hc_ptr_array[chnum];
hsotg             198 drivers/usb/dwc2/hcd_intr.c 		dev_err(hsotg->dev, "Unable to get corresponding channel\n");
hsotg             208 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "    Ch num = %d\n", chnum);
hsotg             209 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "    Count = %d\n", bcnt);
hsotg             210 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "    DPID = %d, chan.dpid = %d\n", dpid,
hsotg             212 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "    PStatus = %d\n", pktsts);
hsotg             219 drivers/usb/dwc2/hcd_intr.c 			dwc2_read_packet(hsotg, chan->xfer_buf, bcnt);
hsotg             232 drivers/usb/dwc2/hcd_intr.c 		dev_err(hsotg->dev,
hsotg             244 drivers/usb/dwc2/hcd_intr.c static void dwc2_np_tx_fifo_empty_intr(struct dwc2_hsotg *hsotg)
hsotg             246 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "--Non-Periodic TxFIFO Empty Interrupt--\n");
hsotg             247 drivers/usb/dwc2/hcd_intr.c 	dwc2_hcd_queue_transactions(hsotg, DWC2_TRANSACTION_NON_PERIODIC);
hsotg             256 drivers/usb/dwc2/hcd_intr.c static void dwc2_perio_tx_fifo_empty_intr(struct dwc2_hsotg *hsotg)
hsotg             259 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "--Periodic TxFIFO Empty Interrupt--\n");
hsotg             260 drivers/usb/dwc2/hcd_intr.c 	dwc2_hcd_queue_transactions(hsotg, DWC2_TRANSACTION_PERIODIC);
hsotg             263 drivers/usb/dwc2/hcd_intr.c static void dwc2_hprt0_enable(struct dwc2_hsotg *hsotg, u32 hprt0,
hsotg             266 drivers/usb/dwc2/hcd_intr.c 	struct dwc2_core_params *params = &hsotg->params;
hsotg             274 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "%s(%p)\n", __func__, hsotg);
hsotg             277 drivers/usb/dwc2/hcd_intr.c 	hfir = dwc2_readl(hsotg, HFIR);
hsotg             279 drivers/usb/dwc2/hcd_intr.c 	hfir |= dwc2_calc_frame_interval(hsotg) << HFIR_FRINT_SHIFT &
hsotg             281 drivers/usb/dwc2/hcd_intr.c 	dwc2_writel(hsotg, hfir, HFIR);
hsotg             286 drivers/usb/dwc2/hcd_intr.c 		hsotg->flags.b.port_reset_change = 1;
hsotg             290 drivers/usb/dwc2/hcd_intr.c 	usbcfg = dwc2_readl(hsotg, GUSBCFG);
hsotg             298 drivers/usb/dwc2/hcd_intr.c 			dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg             302 drivers/usb/dwc2/hcd_intr.c 		hcfg = dwc2_readl(hsotg, HCFG);
hsotg             309 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev,
hsotg             315 drivers/usb/dwc2/hcd_intr.c 				dwc2_writel(hsotg, hcfg, HCFG);
hsotg             320 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev,
hsotg             326 drivers/usb/dwc2/hcd_intr.c 				dwc2_writel(hsotg, hcfg, HCFG);
hsotg             334 drivers/usb/dwc2/hcd_intr.c 			dwc2_writel(hsotg, usbcfg, GUSBCFG);
hsotg             341 drivers/usb/dwc2/hcd_intr.c 		dwc2_writel(hsotg, *hprt0_modify, HPRT0);
hsotg             342 drivers/usb/dwc2/hcd_intr.c 		queue_delayed_work(hsotg->wq_otg, &hsotg->reset_work,
hsotg             346 drivers/usb/dwc2/hcd_intr.c 		hsotg->flags.b.port_reset_change = 1;
hsotg             355 drivers/usb/dwc2/hcd_intr.c static void dwc2_port_intr(struct dwc2_hsotg *hsotg)
hsotg             360 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "--Port Interrupt--\n");
hsotg             362 drivers/usb/dwc2/hcd_intr.c 	hprt0 = dwc2_readl(hsotg, HPRT0);
hsotg             377 drivers/usb/dwc2/hcd_intr.c 		dwc2_writel(hsotg, hprt0_modify | HPRT0_CONNDET, HPRT0);
hsotg             379 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev,
hsotg             382 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_connect(hsotg);
hsotg             395 drivers/usb/dwc2/hcd_intr.c 		dwc2_writel(hsotg, hprt0_modify | HPRT0_ENACHG, HPRT0);
hsotg             396 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev,
hsotg             400 drivers/usb/dwc2/hcd_intr.c 			hsotg->new_connection = true;
hsotg             401 drivers/usb/dwc2/hcd_intr.c 			dwc2_hprt0_enable(hsotg, hprt0, &hprt0_modify);
hsotg             403 drivers/usb/dwc2/hcd_intr.c 			hsotg->flags.b.port_enable_change = 1;
hsotg             404 drivers/usb/dwc2/hcd_intr.c 			if (hsotg->params.dma_desc_fs_enable) {
hsotg             407 drivers/usb/dwc2/hcd_intr.c 				hsotg->params.dma_desc_enable = false;
hsotg             408 drivers/usb/dwc2/hcd_intr.c 				hsotg->new_connection = false;
hsotg             409 drivers/usb/dwc2/hcd_intr.c 				hcfg = dwc2_readl(hsotg, HCFG);
hsotg             411 drivers/usb/dwc2/hcd_intr.c 				dwc2_writel(hsotg, hcfg, HCFG);
hsotg             418 drivers/usb/dwc2/hcd_intr.c 		dwc2_writel(hsotg, hprt0_modify | HPRT0_OVRCURRCHG,
hsotg             420 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev,
hsotg             423 drivers/usb/dwc2/hcd_intr.c 		hsotg->flags.b.port_over_current_change = 1;
hsotg             436 drivers/usb/dwc2/hcd_intr.c static u32 dwc2_get_actual_xfer_length(struct dwc2_hsotg *hsotg,
hsotg             444 drivers/usb/dwc2/hcd_intr.c 	hctsiz = dwc2_readl(hsotg, HCTSIZ(chnum));
hsotg             490 drivers/usb/dwc2/hcd_intr.c static int dwc2_update_urb_state(struct dwc2_hsotg *hsotg,
hsotg             498 drivers/usb/dwc2/hcd_intr.c 	int xfer_length = dwc2_get_actual_xfer_length(hsotg, chan, chnum, qtd,
hsotg             503 drivers/usb/dwc2/hcd_intr.c 		dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
hsotg             507 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "urb->actual_length=%d xfer_length=%d\n",
hsotg             521 drivers/usb/dwc2/hcd_intr.c 	hctsiz = dwc2_readl(hsotg, HCTSIZ(chnum));
hsotg             522 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "DWC_otg: %s: %s, channel %d\n",
hsotg             524 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  chan->xfer_len %d\n", chan->xfer_len);
hsotg             525 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  hctsiz.xfersize %d\n",
hsotg             527 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  urb->transfer_buffer_length %d\n", urb->length);
hsotg             528 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  urb->actual_length %d\n", urb->actual_length);
hsotg             529 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  short_read %d, xfer_done %d\n", short_read,
hsotg             540 drivers/usb/dwc2/hcd_intr.c void dwc2_hcd_save_data_toggle(struct dwc2_hsotg *hsotg,
hsotg             544 drivers/usb/dwc2/hcd_intr.c 	u32 hctsiz = dwc2_readl(hsotg, HCTSIZ(chnum));
hsotg             585 drivers/usb/dwc2/hcd_intr.c 		struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan,
hsotg             600 drivers/usb/dwc2/hcd_intr.c 		frame_desc->actual_length = dwc2_get_actual_xfer_length(hsotg,
hsotg             619 drivers/usb/dwc2/hcd_intr.c 		frame_desc->actual_length = dwc2_get_actual_xfer_length(hsotg,
hsotg             625 drivers/usb/dwc2/hcd_intr.c 		    hsotg->params.host_dma) {
hsotg             632 drivers/usb/dwc2/hcd_intr.c 		dev_err(hsotg->dev, "Unhandled halt_status (%d)\n",
hsotg             642 drivers/usb/dwc2/hcd_intr.c 		dwc2_host_complete(hsotg, qtd, 0);
hsotg             658 drivers/usb/dwc2/hcd_intr.c static void dwc2_deactivate_qh(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg             665 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "  %s(%p,%p,%d)\n", __func__,
hsotg             666 drivers/usb/dwc2/hcd_intr.c 			 hsotg, qh, free_qtd);
hsotg             669 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev, "## QTD list empty ##\n");
hsotg             682 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_qtd_unlink_and_free(hsotg, qtd, qh);
hsotg             688 drivers/usb/dwc2/hcd_intr.c 	dwc2_hcd_qh_deactivate(hsotg, qh, continue_split);
hsotg             704 drivers/usb/dwc2/hcd_intr.c static void dwc2_release_channel(struct dwc2_hsotg *hsotg,
hsotg             714 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "  %s: channel %d, halt_status %d\n",
hsotg             728 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev,
hsotg             731 drivers/usb/dwc2/hcd_intr.c 			dwc2_host_complete(hsotg, qtd, -EPROTO);
hsotg             742 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "  Complete URB with I/O error\n");
hsotg             744 drivers/usb/dwc2/hcd_intr.c 		dwc2_host_complete(hsotg, qtd, -EIO);
hsotg             751 drivers/usb/dwc2/hcd_intr.c 	dwc2_deactivate_qh(hsotg, chan->qh, free_qtd);
hsotg             761 drivers/usb/dwc2/hcd_intr.c 	dwc2_hc_cleanup(hsotg, chan);
hsotg             762 drivers/usb/dwc2/hcd_intr.c 	list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list);
hsotg             764 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->params.uframe_sched) {
hsotg             765 drivers/usb/dwc2/hcd_intr.c 		hsotg->available_host_channels++;
hsotg             770 drivers/usb/dwc2/hcd_intr.c 			hsotg->non_periodic_channels--;
hsotg             783 drivers/usb/dwc2/hcd_intr.c 	haintmsk = dwc2_readl(hsotg, HAINTMSK);
hsotg             785 drivers/usb/dwc2/hcd_intr.c 	dwc2_writel(hsotg, haintmsk, HAINTMSK);
hsotg             788 drivers/usb/dwc2/hcd_intr.c 	tr_type = dwc2_hcd_select_transactions(hsotg);
hsotg             790 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_queue_transactions(hsotg, tr_type);
hsotg             803 drivers/usb/dwc2/hcd_intr.c static void dwc2_halt_channel(struct dwc2_hsotg *hsotg,
hsotg             808 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg             810 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->params.host_dma) {
hsotg             812 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev, "DMA enabled\n");
hsotg             813 drivers/usb/dwc2/hcd_intr.c 		dwc2_release_channel(hsotg, chan, qtd, halt_status);
hsotg             818 drivers/usb/dwc2/hcd_intr.c 	dwc2_hc_halt(hsotg, chan, halt_status);
hsotg             823 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "Halt on queue\n");
hsotg             826 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev, "control/bulk\n");
hsotg             832 drivers/usb/dwc2/hcd_intr.c 			gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             834 drivers/usb/dwc2/hcd_intr.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg             836 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev, "isoc/intr\n");
hsotg             844 drivers/usb/dwc2/hcd_intr.c 				       &hsotg->periodic_sched_assigned);
hsotg             851 drivers/usb/dwc2/hcd_intr.c 			gintmsk = dwc2_readl(hsotg, GINTMSK);
hsotg             853 drivers/usb/dwc2/hcd_intr.c 			dwc2_writel(hsotg, gintmsk, GINTMSK);
hsotg             863 drivers/usb/dwc2/hcd_intr.c static void dwc2_complete_non_periodic_xfer(struct dwc2_hsotg *hsotg,
hsotg             868 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg             878 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "got NYET\n");
hsotg             898 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, halt_status);
hsotg             904 drivers/usb/dwc2/hcd_intr.c 		dwc2_release_channel(hsotg, chan, qtd, halt_status);
hsotg             913 drivers/usb/dwc2/hcd_intr.c static void dwc2_complete_periodic_xfer(struct dwc2_hsotg *hsotg,
hsotg             918 drivers/usb/dwc2/hcd_intr.c 	u32 hctsiz = dwc2_readl(hsotg, HCTSIZ(chnum));
hsotg             924 drivers/usb/dwc2/hcd_intr.c 		dwc2_release_channel(hsotg, chan, qtd, halt_status);
hsotg             927 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, halt_status);
hsotg             930 drivers/usb/dwc2/hcd_intr.c static int dwc2_xfercomp_isoc_split_in(struct dwc2_hsotg *hsotg,
hsotg             943 drivers/usb/dwc2/hcd_intr.c 	len = dwc2_get_actual_xfer_length(hsotg, chan, chnum, qtd,
hsotg             953 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "non-aligned buffer\n");
hsotg             954 drivers/usb/dwc2/hcd_intr.c 		dma_unmap_single(hsotg->dev, chan->qh->dw_align_buf_dma,
hsotg             962 drivers/usb/dwc2/hcd_intr.c 	hctsiz = dwc2_readl(hsotg, HCTSIZ(chnum));
hsotg             973 drivers/usb/dwc2/hcd_intr.c 		dwc2_host_complete(hsotg, qtd, 0);
hsotg             974 drivers/usb/dwc2/hcd_intr.c 		dwc2_release_channel(hsotg, chan, qtd,
hsotg             977 drivers/usb/dwc2/hcd_intr.c 		dwc2_release_channel(hsotg, chan, qtd,
hsotg             988 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_xfercomp_intr(struct dwc2_hsotg *hsotg,
hsotg             998 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev,
hsotg            1007 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->params.dma_desc_enable) {
hsotg            1008 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, halt_status);
hsotg            1018 drivers/usb/dwc2/hcd_intr.c 		    hsotg->params.host_dma) {
hsotg            1020 drivers/usb/dwc2/hcd_intr.c 			    dwc2_xfercomp_isoc_split_in(hsotg, chan, chnum,
hsotg            1037 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev,
hsotg            1042 drivers/usb/dwc2/hcd_intr.c 			urb_xfer_done = dwc2_update_urb_state(hsotg, chan,
hsotg            1046 drivers/usb/dwc2/hcd_intr.c 				dev_vdbg(hsotg->dev,
hsotg            1049 drivers/usb/dwc2/hcd_intr.c 				dwc2_hcd_save_data_toggle(hsotg, chan, chnum,
hsotg            1055 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev, "  Control transfer complete\n");
hsotg            1058 drivers/usb/dwc2/hcd_intr.c 			dwc2_host_complete(hsotg, qtd, urb->status);
hsotg            1063 drivers/usb/dwc2/hcd_intr.c 		dwc2_complete_non_periodic_xfer(hsotg, chan, chnum, qtd,
hsotg            1067 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "  Bulk transfer complete\n");
hsotg            1068 drivers/usb/dwc2/hcd_intr.c 		urb_xfer_done = dwc2_update_urb_state(hsotg, chan, chnum, urb,
hsotg            1071 drivers/usb/dwc2/hcd_intr.c 			dwc2_host_complete(hsotg, qtd, urb->status);
hsotg            1077 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
hsotg            1078 drivers/usb/dwc2/hcd_intr.c 		dwc2_complete_non_periodic_xfer(hsotg, chan, chnum, qtd,
hsotg            1082 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "  Interrupt transfer complete\n");
hsotg            1083 drivers/usb/dwc2/hcd_intr.c 		urb_xfer_done = dwc2_update_urb_state(hsotg, chan, chnum, urb,
hsotg            1091 drivers/usb/dwc2/hcd_intr.c 			dwc2_host_complete(hsotg, qtd, urb->status);
hsotg            1097 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
hsotg            1098 drivers/usb/dwc2/hcd_intr.c 		dwc2_complete_periodic_xfer(hsotg, chan, chnum, qtd,
hsotg            1103 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev, "  Isochronous transfer complete\n");
hsotg            1105 drivers/usb/dwc2/hcd_intr.c 			halt_status = dwc2_update_isoc_urb_state(hsotg, chan,
hsotg            1108 drivers/usb/dwc2/hcd_intr.c 		dwc2_complete_periodic_xfer(hsotg, chan, chnum, qtd,
hsotg            1114 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_XFERCOMPL);
hsotg            1121 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_stall_intr(struct dwc2_hsotg *hsotg,
hsotg            1128 drivers/usb/dwc2/hcd_intr.c 	dev_dbg(hsotg->dev, "--Host Channel %d Interrupt: STALL Received--\n",
hsotg            1131 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->params.dma_desc_enable) {
hsotg            1132 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
hsotg            1143 drivers/usb/dwc2/hcd_intr.c 		dwc2_host_complete(hsotg, qtd, -EPIPE);
hsotg            1147 drivers/usb/dwc2/hcd_intr.c 		dwc2_host_complete(hsotg, qtd, -EPIPE);
hsotg            1159 drivers/usb/dwc2/hcd_intr.c 	dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_STALL);
hsotg            1162 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_STALL);
hsotg            1171 drivers/usb/dwc2/hcd_intr.c static void dwc2_update_urb_state_abn(struct dwc2_hsotg *hsotg,
hsotg            1177 drivers/usb/dwc2/hcd_intr.c 	u32 xfer_length = dwc2_get_actual_xfer_length(hsotg, chan, chnum,
hsotg            1182 drivers/usb/dwc2/hcd_intr.c 		dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
hsotg            1188 drivers/usb/dwc2/hcd_intr.c 	hctsiz = dwc2_readl(hsotg, HCTSIZ(chnum));
hsotg            1189 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "DWC_otg: %s: %s, channel %d\n",
hsotg            1191 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  chan->start_pkt_count %d\n",
hsotg            1193 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  hctsiz.pktcnt %d\n",
hsotg            1195 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  chan->max_packet %d\n", chan->max_packet);
hsotg            1196 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  bytes_transferred %d\n",
hsotg            1198 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  urb->actual_length %d\n",
hsotg            1200 drivers/usb/dwc2/hcd_intr.c 	dev_vdbg(hsotg->dev, "  urb->transfer_buffer_length %d\n",
hsotg            1208 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_nak_intr(struct dwc2_hsotg *hsotg,
hsotg            1213 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev, "%s: qtd is NULL\n", __func__);
hsotg            1218 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev, "%s: qtd->urb is NULL\n", __func__);
hsotg            1223 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "--Host Channel %d Interrupt: NAK Received--\n",
hsotg            1253 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK);
hsotg            1260 drivers/usb/dwc2/hcd_intr.c 		if (hsotg->params.host_dma && chan->ep_is_in) {
hsotg            1279 drivers/usb/dwc2/hcd_intr.c 			dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb,
hsotg            1281 drivers/usb/dwc2/hcd_intr.c 			dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
hsotg            1292 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK);
hsotg            1296 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK);
hsotg            1300 drivers/usb/dwc2/hcd_intr.c 		dev_err(hsotg->dev, "NACK interrupt for ISOC transfer\n");
hsotg            1305 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_NAK);
hsotg            1313 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_ack_intr(struct dwc2_hsotg *hsotg,
hsotg            1320 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "--Host Channel %d Interrupt: ACK Received--\n",
hsotg            1331 drivers/usb/dwc2/hcd_intr.c 			dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_ACK);
hsotg            1374 drivers/usb/dwc2/hcd_intr.c 			dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_ACK);
hsotg            1382 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_ACK);
hsotg            1392 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_nyet_intr(struct dwc2_hsotg *hsotg,
hsotg            1397 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "--Host Channel %d Interrupt: NYET Received--\n",
hsotg            1406 drivers/usb/dwc2/hcd_intr.c 		    hsotg->params.host_dma) {
hsotg            1412 drivers/usb/dwc2/hcd_intr.c 				dwc2_host_complete(hsotg, qtd, 0);
hsotg            1413 drivers/usb/dwc2/hcd_intr.c 				dwc2_release_channel(hsotg, chan, qtd,
hsotg            1416 drivers/usb/dwc2/hcd_intr.c 				dwc2_release_channel(hsotg, chan, qtd,
hsotg            1427 drivers/usb/dwc2/hcd_intr.c 			if (!hsotg->params.uframe_sched) {
hsotg            1428 drivers/usb/dwc2/hcd_intr.c 				int frnum = dwc2_hcd_get_frame_number(hsotg);
hsotg            1484 drivers/usb/dwc2/hcd_intr.c 				dwc2_halt_channel(hsotg, chan, qtd,
hsotg            1491 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NYET);
hsotg            1498 drivers/usb/dwc2/hcd_intr.c 	dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, qtd,
hsotg            1500 drivers/usb/dwc2/hcd_intr.c 	dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
hsotg            1506 drivers/usb/dwc2/hcd_intr.c 	dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NYET);
hsotg            1509 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_NYET);
hsotg            1516 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_babble_intr(struct dwc2_hsotg *hsotg,
hsotg            1520 drivers/usb/dwc2/hcd_intr.c 	dev_dbg(hsotg->dev, "--Host Channel %d Interrupt: Babble Error--\n",
hsotg            1523 drivers/usb/dwc2/hcd_intr.c 	dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
hsotg            1525 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->params.dma_desc_enable) {
hsotg            1526 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
hsotg            1532 drivers/usb/dwc2/hcd_intr.c 		dwc2_host_complete(hsotg, qtd, -EOVERFLOW);
hsotg            1533 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_BABBLE_ERR);
hsotg            1537 drivers/usb/dwc2/hcd_intr.c 		halt_status = dwc2_update_isoc_urb_state(hsotg, chan, chnum,
hsotg            1539 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, halt_status);
hsotg            1543 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_BBLERR);
hsotg            1550 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_ahberr_intr(struct dwc2_hsotg *hsotg,
hsotg            1561 drivers/usb/dwc2/hcd_intr.c 	dev_dbg(hsotg->dev, "--Host Channel %d Interrupt: AHB Error--\n",
hsotg            1567 drivers/usb/dwc2/hcd_intr.c 	dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
hsotg            1569 drivers/usb/dwc2/hcd_intr.c 	hcchar = dwc2_readl(hsotg, HCCHAR(chnum));
hsotg            1570 drivers/usb/dwc2/hcd_intr.c 	hcsplt = dwc2_readl(hsotg, HCSPLT(chnum));
hsotg            1571 drivers/usb/dwc2/hcd_intr.c 	hctsiz = dwc2_readl(hsotg, HCTSIZ(chnum));
hsotg            1572 drivers/usb/dwc2/hcd_intr.c 	hc_dma = dwc2_readl(hsotg, HCDMA(chnum));
hsotg            1574 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "AHB ERROR, Channel %d\n", chnum);
hsotg            1575 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  hcchar 0x%08x, hcsplt 0x%08x\n", hcchar, hcsplt);
hsotg            1576 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  hctsiz 0x%08x, hc_dma 0x%08x\n", hctsiz, hc_dma);
hsotg            1577 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Device address: %d\n",
hsotg            1579 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Endpoint: %d, %s\n",
hsotg            1601 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Endpoint type: %s\n", pipetype);
hsotg            1618 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Speed: %s\n", speed);
hsotg            1620 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Max packet size: %d (mult %d)\n",
hsotg            1623 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Data buffer length: %d\n", urb->length);
hsotg            1624 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Transfer buffer: %p, Transfer DMA: %08lx\n",
hsotg            1626 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Setup buffer: %p, Setup DMA: %08lx\n",
hsotg            1628 drivers/usb/dwc2/hcd_intr.c 	dev_err(hsotg->dev, "  Interval: %d\n", urb->interval);
hsotg            1631 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->params.dma_desc_enable) {
hsotg            1632 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
hsotg            1637 drivers/usb/dwc2/hcd_intr.c 	dwc2_host_complete(hsotg, qtd, -EIO);
hsotg            1644 drivers/usb/dwc2/hcd_intr.c 	dwc2_hc_halt(hsotg, chan, DWC2_HC_XFER_AHB_ERR);
hsotg            1647 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_AHBERR);
hsotg            1654 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_xacterr_intr(struct dwc2_hsotg *hsotg,
hsotg            1658 drivers/usb/dwc2/hcd_intr.c 	dev_dbg(hsotg->dev,
hsotg            1661 drivers/usb/dwc2/hcd_intr.c 	dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
hsotg            1663 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->params.dma_desc_enable) {
hsotg            1664 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
hsotg            1674 drivers/usb/dwc2/hcd_intr.c 			dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb,
hsotg            1676 drivers/usb/dwc2/hcd_intr.c 			dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
hsotg            1685 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR);
hsotg            1691 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR);
hsotg            1697 drivers/usb/dwc2/hcd_intr.c 			halt_status = dwc2_update_isoc_urb_state(hsotg, chan,
hsotg            1699 drivers/usb/dwc2/hcd_intr.c 			dwc2_halt_channel(hsotg, chan, qtd, halt_status);
hsotg            1705 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_XACTERR);
hsotg            1712 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_frmovrun_intr(struct dwc2_hsotg *hsotg,
hsotg            1719 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev, "--Host Channel %d Interrupt: Frame Overrun--\n",
hsotg            1722 drivers/usb/dwc2/hcd_intr.c 	dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
hsotg            1729 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_FRAME_OVERRUN);
hsotg            1732 drivers/usb/dwc2/hcd_intr.c 		halt_status = dwc2_update_isoc_urb_state(hsotg, chan, chnum,
hsotg            1734 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, halt_status);
hsotg            1738 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_FRMOVRUN);
hsotg            1745 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_datatglerr_intr(struct dwc2_hsotg *hsotg,
hsotg            1749 drivers/usb/dwc2/hcd_intr.c 	dev_dbg(hsotg->dev,
hsotg            1755 drivers/usb/dwc2/hcd_intr.c 		dev_err(hsotg->dev,
hsotg            1759 drivers/usb/dwc2/hcd_intr.c 	dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
hsotg            1760 drivers/usb/dwc2/hcd_intr.c 	disable_hc_int(hsotg, chnum, HCINTMSK_DATATGLERR);
hsotg            1770 drivers/usb/dwc2/hcd_intr.c static bool dwc2_halt_status_ok(struct dwc2_hsotg *hsotg,
hsotg            1785 drivers/usb/dwc2/hcd_intr.c 		hcchar = dwc2_readl(hsotg, HCCHAR(chnum));
hsotg            1786 drivers/usb/dwc2/hcd_intr.c 		hctsiz = dwc2_readl(hsotg, HCTSIZ(chnum));
hsotg            1787 drivers/usb/dwc2/hcd_intr.c 		hcintmsk = dwc2_readl(hsotg, HCINTMSK(chnum));
hsotg            1788 drivers/usb/dwc2/hcd_intr.c 		hcsplt = dwc2_readl(hsotg, HCSPLT(chnum));
hsotg            1789 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev,
hsotg            1792 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev,
hsotg            1795 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev,
hsotg            1799 drivers/usb/dwc2/hcd_intr.c 			dev_dbg(hsotg->dev, "qtd->complete_split %d\n",
hsotg            1801 drivers/usb/dwc2/hcd_intr.c 		dev_warn(hsotg->dev,
hsotg            1812 drivers/usb/dwc2/hcd_intr.c 	hcchar = dwc2_readl(hsotg, HCCHAR(chnum));
hsotg            1814 drivers/usb/dwc2/hcd_intr.c 		dev_warn(hsotg->dev,
hsotg            1818 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, chan->halt_status);
hsotg            1830 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_chhltd_intr_dma(struct dwc2_hsotg *hsotg,
hsotg            1838 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev,
hsotg            1846 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->hw_params.snpsid >= DWC2_CORE_REV_2_71a) {
hsotg            1856 drivers/usb/dwc2/hcd_intr.c 	     !hsotg->params.dma_desc_enable)) {
hsotg            1857 drivers/usb/dwc2/hcd_intr.c 		if (hsotg->params.dma_desc_enable)
hsotg            1858 drivers/usb/dwc2/hcd_intr.c 			dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
hsotg            1867 drivers/usb/dwc2/hcd_intr.c 			dwc2_release_channel(hsotg, chan, qtd,
hsotg            1872 drivers/usb/dwc2/hcd_intr.c 	hcintmsk = dwc2_readl(hsotg, HCINTMSK(chnum));
hsotg            1883 drivers/usb/dwc2/hcd_intr.c 			dwc2_hc_ack_intr(hsotg, chan, chnum, qtd);
hsotg            1884 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_xfercomp_intr(hsotg, chan, chnum, qtd);
hsotg            1886 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_stall_intr(hsotg, chan, chnum, qtd);
hsotg            1888 drivers/usb/dwc2/hcd_intr.c 		   !hsotg->params.dma_desc_enable) {
hsotg            1892 drivers/usb/dwc2/hcd_intr.c 				dev_vdbg(hsotg->dev,
hsotg            1896 drivers/usb/dwc2/hcd_intr.c 				dev_vdbg(hsotg->dev,
hsotg            1906 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd);
hsotg            1908 drivers/usb/dwc2/hcd_intr.c 		   hsotg->params.dma_desc_enable) {
hsotg            1909 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd);
hsotg            1911 drivers/usb/dwc2/hcd_intr.c 		   hsotg->params.dma_desc_enable) {
hsotg            1912 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_ahberr_intr(hsotg, chan, chnum, qtd);
hsotg            1914 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_babble_intr(hsotg, chan, chnum, qtd);
hsotg            1916 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_frmovrun_intr(hsotg, chan, chnum, qtd);
hsotg            1925 drivers/usb/dwc2/hcd_intr.c 			dwc2_hc_nyet_intr(hsotg, chan, chnum, qtd);
hsotg            1935 drivers/usb/dwc2/hcd_intr.c 			dwc2_hc_nak_intr(hsotg, chan, chnum, qtd);
hsotg            1945 drivers/usb/dwc2/hcd_intr.c 			dwc2_hc_ack_intr(hsotg, chan, chnum, qtd);
hsotg            1955 drivers/usb/dwc2/hcd_intr.c 				dev_dbg(hsotg->dev,
hsotg            1958 drivers/usb/dwc2/hcd_intr.c 				dwc2_halt_channel(hsotg, chan, qtd,
hsotg            1961 drivers/usb/dwc2/hcd_intr.c 				dev_err(hsotg->dev,
hsotg            1964 drivers/usb/dwc2/hcd_intr.c 				dev_err(hsotg->dev,
hsotg            1967 drivers/usb/dwc2/hcd_intr.c 					dwc2_readl(hsotg, GINTSTS));
hsotg            1972 drivers/usb/dwc2/hcd_intr.c 		dev_info(hsotg->dev,
hsotg            1978 drivers/usb/dwc2/hcd_intr.c 		dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb,
hsotg            1980 drivers/usb/dwc2/hcd_intr.c 		dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
hsotg            1981 drivers/usb/dwc2/hcd_intr.c 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR);
hsotg            1996 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_chhltd_intr(struct dwc2_hsotg *hsotg,
hsotg            2001 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "--Host Channel %d Interrupt: Channel Halted--\n",
hsotg            2004 drivers/usb/dwc2/hcd_intr.c 	if (hsotg->params.host_dma) {
hsotg            2005 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_chhltd_intr_dma(hsotg, chan, chnum, qtd);
hsotg            2007 drivers/usb/dwc2/hcd_intr.c 		if (!dwc2_halt_status_ok(hsotg, chan, chnum, qtd))
hsotg            2009 drivers/usb/dwc2/hcd_intr.c 		dwc2_release_channel(hsotg, chan, qtd, chan->halt_status);
hsotg            2032 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_n_intr(struct dwc2_hsotg *hsotg, int chnum)
hsotg            2038 drivers/usb/dwc2/hcd_intr.c 	chan = hsotg->hc_ptr_array[chnum];
hsotg            2040 drivers/usb/dwc2/hcd_intr.c 	hcint = dwc2_readl(hsotg, HCINT(chnum));
hsotg            2041 drivers/usb/dwc2/hcd_intr.c 	hcintmsk = dwc2_readl(hsotg, HCINTMSK(chnum));
hsotg            2043 drivers/usb/dwc2/hcd_intr.c 		dev_err(hsotg->dev, "## hc_ptr_array for channel is NULL ##\n");
hsotg            2044 drivers/usb/dwc2/hcd_intr.c 		dwc2_writel(hsotg, hcint, HCINT(chnum));
hsotg            2049 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "--Host Channel Interrupt--, Channel %d\n",
hsotg            2051 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev,
hsotg            2056 drivers/usb/dwc2/hcd_intr.c 	dwc2_writel(hsotg, hcint, HCINT(chnum));
hsotg            2063 drivers/usb/dwc2/hcd_intr.c 		dev_warn(hsotg->dev, "Interrupt on disabled channel\n");
hsotg            2081 drivers/usb/dwc2/hcd_intr.c 		if (hsotg->params.dma_desc_enable)
hsotg            2082 drivers/usb/dwc2/hcd_intr.c 			dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
hsotg            2085 drivers/usb/dwc2/hcd_intr.c 			dwc2_release_channel(hsotg, chan, NULL,
hsotg            2095 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev, "## no QTD queued for channel %d ##\n",
hsotg            2097 drivers/usb/dwc2/hcd_intr.c 		dev_dbg(hsotg->dev,
hsotg            2101 drivers/usb/dwc2/hcd_intr.c 		disable_hc_int(hsotg, chnum, HCINTMSK_CHHLTD);
hsotg            2109 drivers/usb/dwc2/hcd_intr.c 	if (!hsotg->params.host_dma) {
hsotg            2115 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_xfercomp_intr(hsotg, chan, chnum, qtd);
hsotg            2125 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_chhltd_intr(hsotg, chan, chnum, qtd);
hsotg            2130 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_ahberr_intr(hsotg, chan, chnum, qtd);
hsotg            2135 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_stall_intr(hsotg, chan, chnum, qtd);
hsotg            2140 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_nak_intr(hsotg, chan, chnum, qtd);
hsotg            2145 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_ack_intr(hsotg, chan, chnum, qtd);
hsotg            2150 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_nyet_intr(hsotg, chan, chnum, qtd);
hsotg            2155 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd);
hsotg            2160 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_babble_intr(hsotg, chan, chnum, qtd);
hsotg            2165 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_frmovrun_intr(hsotg, chan, chnum, qtd);
hsotg            2170 drivers/usb/dwc2/hcd_intr.c 		dwc2_hc_datatglerr_intr(hsotg, chan, chnum, qtd);
hsotg            2185 drivers/usb/dwc2/hcd_intr.c static void dwc2_hc_intr(struct dwc2_hsotg *hsotg)
hsotg            2191 drivers/usb/dwc2/hcd_intr.c 	haint = dwc2_readl(hsotg, HAINT);
hsotg            2193 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg            2195 drivers/usb/dwc2/hcd_intr.c 		dev_vdbg(hsotg->dev, "HAINT=%08x\n", haint);
hsotg            2204 drivers/usb/dwc2/hcd_intr.c 	list_for_each_entry_safe(chan, chan_tmp, &hsotg->split_order,
hsotg            2209 drivers/usb/dwc2/hcd_intr.c 			dwc2_hc_n_intr(hsotg, hc_num);
hsotg            2214 drivers/usb/dwc2/hcd_intr.c 	for (i = 0; i < hsotg->params.host_channels; i++) {
hsotg            2216 drivers/usb/dwc2/hcd_intr.c 			dwc2_hc_n_intr(hsotg, i);
hsotg            2221 drivers/usb/dwc2/hcd_intr.c irqreturn_t dwc2_handle_hcd_intr(struct dwc2_hsotg *hsotg)
hsotg            2226 drivers/usb/dwc2/hcd_intr.c 	if (!dwc2_is_controller_alive(hsotg)) {
hsotg            2227 drivers/usb/dwc2/hcd_intr.c 		dev_warn(hsotg->dev, "Controller is dead\n");
hsotg            2231 drivers/usb/dwc2/hcd_intr.c 	spin_lock(&hsotg->lock);
hsotg            2234 drivers/usb/dwc2/hcd_intr.c 	if (dwc2_is_host_mode(hsotg)) {
hsotg            2235 drivers/usb/dwc2/hcd_intr.c 		gintsts = dwc2_read_core_intr(hsotg);
hsotg            2237 drivers/usb/dwc2/hcd_intr.c 			spin_unlock(&hsotg->lock);
hsotg            2253 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev,
hsotg            2258 drivers/usb/dwc2/hcd_intr.c 			dwc2_sof_intr(hsotg);
hsotg            2260 drivers/usb/dwc2/hcd_intr.c 			dwc2_rx_fifo_level_intr(hsotg);
hsotg            2262 drivers/usb/dwc2/hcd_intr.c 			dwc2_np_tx_fifo_empty_intr(hsotg);
hsotg            2264 drivers/usb/dwc2/hcd_intr.c 			dwc2_port_intr(hsotg);
hsotg            2266 drivers/usb/dwc2/hcd_intr.c 			dwc2_hc_intr(hsotg);
hsotg            2268 drivers/usb/dwc2/hcd_intr.c 			dwc2_perio_tx_fifo_empty_intr(hsotg);
hsotg            2271 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev,
hsotg            2273 drivers/usb/dwc2/hcd_intr.c 			dev_vdbg(hsotg->dev,
hsotg            2275 drivers/usb/dwc2/hcd_intr.c 				 dwc2_readl(hsotg, GINTSTS),
hsotg            2276 drivers/usb/dwc2/hcd_intr.c 				 dwc2_readl(hsotg, GINTMSK));
hsotg            2280 drivers/usb/dwc2/hcd_intr.c 	spin_unlock(&hsotg->lock);
hsotg              72 drivers/usb/dwc2/hcd_queue.c static int dwc2_periodic_channel_available(struct dwc2_hsotg *hsotg)
hsotg              82 drivers/usb/dwc2/hcd_queue.c 	num_channels = hsotg->params.host_channels;
hsotg              83 drivers/usb/dwc2/hcd_queue.c 	if ((hsotg->periodic_channels + hsotg->non_periodic_channels <
hsotg              84 drivers/usb/dwc2/hcd_queue.c 	     num_channels) && (hsotg->periodic_channels < num_channels - 1)) {
hsotg              87 drivers/usb/dwc2/hcd_queue.c 		dev_dbg(hsotg->dev,
hsotg              90 drivers/usb/dwc2/hcd_queue.c 			hsotg->periodic_channels, hsotg->non_periodic_channels);
hsotg             109 drivers/usb/dwc2/hcd_queue.c static int dwc2_check_periodic_bandwidth(struct dwc2_hsotg *hsotg,
hsotg             131 drivers/usb/dwc2/hcd_queue.c 	if (hsotg->periodic_usecs > max_claimed_usecs) {
hsotg             132 drivers/usb/dwc2/hcd_queue.c 		dev_err(hsotg->dev,
hsotg             134 drivers/usb/dwc2/hcd_queue.c 			__func__, hsotg->periodic_usecs, qh->host_us);
hsotg             374 drivers/usb/dwc2/hcd_queue.c static unsigned long *dwc2_get_ls_map(struct dwc2_hsotg *hsotg,
hsotg             492 drivers/usb/dwc2/hcd_queue.c 	struct dwc2_hsotg *hsotg;
hsotg             506 drivers/usb/dwc2/hcd_queue.c 	dwc2_sch_dbg(print_data->hsotg, "QH=%p ...%s\n", print_data->qh, str);
hsotg             515 drivers/usb/dwc2/hcd_queue.c static void dwc2_qh_schedule_print(struct dwc2_hsotg *hsotg,
hsotg             518 drivers/usb/dwc2/hcd_queue.c 	struct dwc2_qh_print_data print_data = { hsotg, qh };
hsotg             528 drivers/usb/dwc2/hcd_queue.c 		unsigned long *map = dwc2_get_ls_map(hsotg, qh);
hsotg             530 drivers/usb/dwc2/hcd_queue.c 		dwc2_sch_dbg(hsotg, "QH=%p LS/FS trans: %d=>%d us @ %d us",
hsotg             536 drivers/usb/dwc2/hcd_queue.c 			dwc2_sch_dbg(hsotg,
hsotg             552 drivers/usb/dwc2/hcd_queue.c 		dwc2_sch_dbg(hsotg,
hsotg             557 drivers/usb/dwc2/hcd_queue.c 		dwc2_sch_dbg(hsotg, "QH=%p Whole high speed map now:\n", qh);
hsotg             558 drivers/usb/dwc2/hcd_queue.c 		pmap_print(hsotg->hs_periodic_bitmap,
hsotg             565 drivers/usb/dwc2/hcd_queue.c static inline void dwc2_qh_schedule_print(struct dwc2_hsotg *hsotg,
hsotg             584 drivers/usb/dwc2/hcd_queue.c static int dwc2_ls_pmap_schedule(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg             588 drivers/usb/dwc2/hcd_queue.c 	unsigned long *map = dwc2_get_ls_map(hsotg, qh);
hsotg             623 drivers/usb/dwc2/hcd_queue.c static void dwc2_ls_pmap_unschedule(struct dwc2_hsotg *hsotg,
hsotg             627 drivers/usb/dwc2/hcd_queue.c 	unsigned long *map = dwc2_get_ls_map(hsotg, qh);
hsotg             658 drivers/usb/dwc2/hcd_queue.c static int dwc2_hs_pmap_schedule(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg             664 drivers/usb/dwc2/hcd_queue.c 	us = pmap_schedule(hsotg->hs_periodic_bitmap,
hsotg             684 drivers/usb/dwc2/hcd_queue.c static void dwc2_hs_pmap_unschedule(struct dwc2_hsotg *hsotg,
hsotg             689 drivers/usb/dwc2/hcd_queue.c 	pmap_unschedule(hsotg->hs_periodic_bitmap,
hsotg             708 drivers/usb/dwc2/hcd_queue.c static int dwc2_uframe_schedule_split(struct dwc2_hsotg *hsotg,
hsotg             749 drivers/usb/dwc2/hcd_queue.c 			err = dwc2_ls_pmap_schedule(hsotg, qh, ls_search_slice);
hsotg             784 drivers/usb/dwc2/hcd_queue.c 				dwc2_ls_pmap_unschedule(hsotg, qh);
hsotg             857 drivers/usb/dwc2/hcd_queue.c 			dwc2_sch_dbg(hsotg,
hsotg             861 drivers/usb/dwc2/hcd_queue.c 				dwc2_ls_pmap_unschedule(hsotg, qh);
hsotg             956 drivers/usb/dwc2/hcd_queue.c 			err = dwc2_hs_pmap_schedule(hsotg, qh, true, i);
hsotg             966 drivers/usb/dwc2/hcd_queue.c 			dwc2_hs_pmap_unschedule(hsotg, qh, i);
hsotg             969 drivers/usb/dwc2/hcd_queue.c 			dwc2_ls_pmap_unschedule(hsotg, qh);
hsotg             990 drivers/usb/dwc2/hcd_queue.c static int dwc2_uframe_schedule_hs(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1001 drivers/usb/dwc2/hcd_queue.c 	return dwc2_hs_pmap_schedule(hsotg, qh, false, 0);
hsotg            1013 drivers/usb/dwc2/hcd_queue.c static int dwc2_uframe_schedule_ls(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1021 drivers/usb/dwc2/hcd_queue.c 	return dwc2_ls_pmap_schedule(hsotg, qh, 0);
hsotg            1033 drivers/usb/dwc2/hcd_queue.c static int dwc2_uframe_schedule(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1038 drivers/usb/dwc2/hcd_queue.c 		ret = dwc2_uframe_schedule_hs(hsotg, qh);
hsotg            1040 drivers/usb/dwc2/hcd_queue.c 		ret = dwc2_uframe_schedule_ls(hsotg, qh);
hsotg            1042 drivers/usb/dwc2/hcd_queue.c 		ret = dwc2_uframe_schedule_split(hsotg, qh);
hsotg            1045 drivers/usb/dwc2/hcd_queue.c 		dwc2_sch_dbg(hsotg, "QH=%p Failed to schedule %d\n", qh, ret);
hsotg            1047 drivers/usb/dwc2/hcd_queue.c 		dwc2_qh_schedule_print(hsotg, qh);
hsotg            1058 drivers/usb/dwc2/hcd_queue.c static void dwc2_uframe_unschedule(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1063 drivers/usb/dwc2/hcd_queue.c 		dwc2_hs_pmap_unschedule(hsotg, qh, i);
hsotg            1066 drivers/usb/dwc2/hcd_queue.c 		dwc2_ls_pmap_unschedule(hsotg, qh);
hsotg            1068 drivers/usb/dwc2/hcd_queue.c 	dwc2_sch_dbg(hsotg, "QH=%p Unscheduled\n", qh);
hsotg            1086 drivers/usb/dwc2/hcd_queue.c static void dwc2_pick_first_frame(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1098 drivers/usb/dwc2/hcd_queue.c 	frame_number = dwc2_hcd_get_frame_number(hsotg);
hsotg            1112 drivers/usb/dwc2/hcd_queue.c 	if (!hsotg->params.uframe_sched) {
hsotg            1186 drivers/usb/dwc2/hcd_queue.c 	dwc2_sch_vdbg(hsotg, "QH=%p First fn=%04x nxt=%04x\n",
hsotg            1201 drivers/usb/dwc2/hcd_queue.c static int dwc2_do_reserve(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1205 drivers/usb/dwc2/hcd_queue.c 	if (hsotg->params.uframe_sched) {
hsotg            1206 drivers/usb/dwc2/hcd_queue.c 		status = dwc2_uframe_schedule(hsotg, qh);
hsotg            1208 drivers/usb/dwc2/hcd_queue.c 		status = dwc2_periodic_channel_available(hsotg);
hsotg            1210 drivers/usb/dwc2/hcd_queue.c 			dev_info(hsotg->dev,
hsotg            1216 drivers/usb/dwc2/hcd_queue.c 		status = dwc2_check_periodic_bandwidth(hsotg, qh);
hsotg            1220 drivers/usb/dwc2/hcd_queue.c 		dev_dbg(hsotg->dev,
hsotg            1226 drivers/usb/dwc2/hcd_queue.c 	if (!hsotg->params.uframe_sched)
hsotg            1228 drivers/usb/dwc2/hcd_queue.c 		hsotg->periodic_channels++;
hsotg            1231 drivers/usb/dwc2/hcd_queue.c 	hsotg->periodic_usecs += qh->host_us;
hsotg            1233 drivers/usb/dwc2/hcd_queue.c 	dwc2_pick_first_frame(hsotg, qh);
hsotg            1247 drivers/usb/dwc2/hcd_queue.c static void dwc2_do_unreserve(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1249 drivers/usb/dwc2/hcd_queue.c 	assert_spin_locked(&hsotg->lock);
hsotg            1260 drivers/usb/dwc2/hcd_queue.c 	hsotg->periodic_usecs -= qh->host_us;
hsotg            1262 drivers/usb/dwc2/hcd_queue.c 	if (hsotg->params.uframe_sched) {
hsotg            1263 drivers/usb/dwc2/hcd_queue.c 		dwc2_uframe_unschedule(hsotg, qh);
hsotg            1266 drivers/usb/dwc2/hcd_queue.c 		hsotg->periodic_channels--;
hsotg            1285 drivers/usb/dwc2/hcd_queue.c 	struct dwc2_hsotg *hsotg = qh->hsotg;
hsotg            1297 drivers/usb/dwc2/hcd_queue.c 	while (!spin_trylock_irqsave(&hsotg->lock, flags)) {
hsotg            1313 drivers/usb/dwc2/hcd_queue.c 		dwc2_do_unreserve(hsotg, qh);
hsotg            1315 drivers/usb/dwc2/hcd_queue.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            1328 drivers/usb/dwc2/hcd_queue.c static int dwc2_check_max_xfer_size(struct dwc2_hsotg *hsotg,
hsotg            1336 drivers/usb/dwc2/hcd_queue.c 	max_channel_xfer_size = hsotg->params.max_transfer_size;
hsotg            1339 drivers/usb/dwc2/hcd_queue.c 		dev_err(hsotg->dev,
hsotg            1358 drivers/usb/dwc2/hcd_queue.c static int dwc2_schedule_periodic(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1362 drivers/usb/dwc2/hcd_queue.c 	status = dwc2_check_max_xfer_size(hsotg, qh);
hsotg            1364 drivers/usb/dwc2/hcd_queue.c 		dev_dbg(hsotg->dev,
hsotg            1382 drivers/usb/dwc2/hcd_queue.c 		status = dwc2_do_reserve(hsotg, qh);
hsotg            1393 drivers/usb/dwc2/hcd_queue.c 				      hsotg->frame_number))
hsotg            1394 drivers/usb/dwc2/hcd_queue.c 			dwc2_pick_first_frame(hsotg, qh);
hsotg            1399 drivers/usb/dwc2/hcd_queue.c 	if (hsotg->params.dma_desc_enable)
hsotg            1401 drivers/usb/dwc2/hcd_queue.c 		list_add_tail(&qh->qh_list_entry, &hsotg->periodic_sched_ready);
hsotg            1405 drivers/usb/dwc2/hcd_queue.c 			      &hsotg->periodic_sched_inactive);
hsotg            1417 drivers/usb/dwc2/hcd_queue.c static void dwc2_deschedule_periodic(struct dwc2_hsotg *hsotg,
hsotg            1422 drivers/usb/dwc2/hcd_queue.c 	assert_spin_locked(&hsotg->lock);
hsotg            1473 drivers/usb/dwc2/hcd_queue.c 	struct dwc2_hsotg *hsotg = qh->hsotg;
hsotg            1476 drivers/usb/dwc2/hcd_queue.c 	spin_lock_irqsave(&hsotg->lock, flags);
hsotg            1488 drivers/usb/dwc2/hcd_queue.c 			  &hsotg->non_periodic_sched_inactive);
hsotg            1490 drivers/usb/dwc2/hcd_queue.c 		tr_type = dwc2_hcd_select_transactions(hsotg);
hsotg            1492 drivers/usb/dwc2/hcd_queue.c 			dwc2_hcd_queue_transactions(hsotg, tr_type);
hsotg            1495 drivers/usb/dwc2/hcd_queue.c 	spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            1508 drivers/usb/dwc2/hcd_queue.c static void dwc2_qh_init(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg            1511 drivers/usb/dwc2/hcd_queue.c 	int dev_speed = dwc2_host_get_speed(hsotg, urb->priv);
hsotg            1516 drivers/usb/dwc2/hcd_queue.c 	u32 hprt = dwc2_readl(hsotg, HPRT0);
hsotg            1526 drivers/usb/dwc2/hcd_queue.c 	qh->hsotg = hsotg;
hsotg            1545 drivers/usb/dwc2/hcd_queue.c 		struct dwc2_tt *dwc_tt = dwc2_host_get_tt_info(hsotg, urb->priv,
hsotg            1617 drivers/usb/dwc2/hcd_queue.c 	dwc2_sch_dbg(hsotg, "QH=%p Init %s, %s speed, %d bytes:\n", qh, type,
hsotg            1619 drivers/usb/dwc2/hcd_queue.c 	dwc2_sch_dbg(hsotg, "QH=%p ...addr=%d, ep=%d, %s\n", qh,
hsotg            1624 drivers/usb/dwc2/hcd_queue.c 		dwc2_sch_dbg(hsotg,
hsotg            1627 drivers/usb/dwc2/hcd_queue.c 		dwc2_sch_dbg(hsotg, "QH=%p ...interval: host=%d, device=%d\n",
hsotg            1630 drivers/usb/dwc2/hcd_queue.c 			dwc2_sch_dbg(hsotg, "QH=%p ...low speed schedule=%p\n",
hsotg            1631 drivers/usb/dwc2/hcd_queue.c 				     qh, dwc2_get_ls_map(hsotg, qh));
hsotg            1645 drivers/usb/dwc2/hcd_queue.c struct dwc2_qh *dwc2_hcd_qh_create(struct dwc2_hsotg *hsotg,
hsotg            1659 drivers/usb/dwc2/hcd_queue.c 	dwc2_qh_init(hsotg, qh, urb, mem_flags);
hsotg            1661 drivers/usb/dwc2/hcd_queue.c 	if (hsotg->params.dma_desc_enable &&
hsotg            1662 drivers/usb/dwc2/hcd_queue.c 	    dwc2_hcd_qh_init_ddma(hsotg, qh, mem_flags) < 0) {
hsotg            1663 drivers/usb/dwc2/hcd_queue.c 		dwc2_hcd_qh_free(hsotg, qh);
hsotg            1681 drivers/usb/dwc2/hcd_queue.c void dwc2_hcd_qh_free(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1687 drivers/usb/dwc2/hcd_queue.c 		spin_lock_irqsave(&hsotg->lock, flags);
hsotg            1688 drivers/usb/dwc2/hcd_queue.c 		dwc2_do_unreserve(hsotg, qh);
hsotg            1689 drivers/usb/dwc2/hcd_queue.c 		spin_unlock_irqrestore(&hsotg->lock, flags);
hsotg            1701 drivers/usb/dwc2/hcd_queue.c 	dwc2_host_put_tt_info(hsotg, qh->dwc_tt);
hsotg            1704 drivers/usb/dwc2/hcd_queue.c 		dwc2_hcd_qh_free_ddma(hsotg, qh);
hsotg            1705 drivers/usb/dwc2/hcd_queue.c 	else if (hsotg->unaligned_cache && qh->dw_align_buf)
hsotg            1706 drivers/usb/dwc2/hcd_queue.c 		kmem_cache_free(hsotg->unaligned_cache, qh->dw_align_buf);
hsotg            1721 drivers/usb/dwc2/hcd_queue.c int dwc2_hcd_qh_add(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1728 drivers/usb/dwc2/hcd_queue.c 		dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg            1737 drivers/usb/dwc2/hcd_queue.c 		qh->start_active_frame = hsotg->frame_number;
hsotg            1742 drivers/usb/dwc2/hcd_queue.c 				      &hsotg->non_periodic_sched_waiting);
hsotg            1748 drivers/usb/dwc2/hcd_queue.c 				      &hsotg->non_periodic_sched_inactive);
hsotg            1753 drivers/usb/dwc2/hcd_queue.c 	status = dwc2_schedule_periodic(hsotg, qh);
hsotg            1756 drivers/usb/dwc2/hcd_queue.c 	if (!hsotg->periodic_qh_count) {
hsotg            1757 drivers/usb/dwc2/hcd_queue.c 		intr_mask = dwc2_readl(hsotg, GINTMSK);
hsotg            1759 drivers/usb/dwc2/hcd_queue.c 		dwc2_writel(hsotg, intr_mask, GINTMSK);
hsotg            1761 drivers/usb/dwc2/hcd_queue.c 	hsotg->periodic_qh_count++;
hsotg            1773 drivers/usb/dwc2/hcd_queue.c void dwc2_hcd_qh_unlink(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
hsotg            1777 drivers/usb/dwc2/hcd_queue.c 	dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg            1787 drivers/usb/dwc2/hcd_queue.c 		if (hsotg->non_periodic_qh_ptr == &qh->qh_list_entry)
hsotg            1788 drivers/usb/dwc2/hcd_queue.c 			hsotg->non_periodic_qh_ptr =
hsotg            1789 drivers/usb/dwc2/hcd_queue.c 					hsotg->non_periodic_qh_ptr->next;
hsotg            1794 drivers/usb/dwc2/hcd_queue.c 	dwc2_deschedule_periodic(hsotg, qh);
hsotg            1795 drivers/usb/dwc2/hcd_queue.c 	hsotg->periodic_qh_count--;
hsotg            1796 drivers/usb/dwc2/hcd_queue.c 	if (!hsotg->periodic_qh_count &&
hsotg            1797 drivers/usb/dwc2/hcd_queue.c 	    !hsotg->params.dma_desc_enable) {
hsotg            1798 drivers/usb/dwc2/hcd_queue.c 		intr_mask = dwc2_readl(hsotg, GINTMSK);
hsotg            1800 drivers/usb/dwc2/hcd_queue.c 		dwc2_writel(hsotg, intr_mask, GINTMSK);
hsotg            1823 drivers/usb/dwc2/hcd_queue.c static int dwc2_next_for_periodic_split(struct dwc2_hsotg *hsotg,
hsotg            1886 drivers/usb/dwc2/hcd_queue.c static int dwc2_next_periodic_start(struct dwc2_hsotg *hsotg,
hsotg            1977 drivers/usb/dwc2/hcd_queue.c void dwc2_hcd_qh_deactivate(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
hsotg            1985 drivers/usb/dwc2/hcd_queue.c 		dev_vdbg(hsotg->dev, "%s()\n", __func__);
hsotg            1988 drivers/usb/dwc2/hcd_queue.c 		dwc2_hcd_qh_unlink(hsotg, qh);
hsotg            1991 drivers/usb/dwc2/hcd_queue.c 			dwc2_hcd_qh_add(hsotg, qh);
hsotg            2001 drivers/usb/dwc2/hcd_queue.c 	frame_number = dwc2_hcd_get_frame_number(hsotg);
hsotg            2004 drivers/usb/dwc2/hcd_queue.c 		missed = dwc2_next_for_periodic_split(hsotg, qh, frame_number);
hsotg            2006 drivers/usb/dwc2/hcd_queue.c 		missed = dwc2_next_periodic_start(hsotg, qh, frame_number);
hsotg            2008 drivers/usb/dwc2/hcd_queue.c 	dwc2_sch_vdbg(hsotg,
hsotg            2016 drivers/usb/dwc2/hcd_queue.c 		dwc2_hcd_qh_unlink(hsotg, qh);
hsotg            2027 drivers/usb/dwc2/hcd_queue.c 	if (dwc2_frame_num_le(qh->next_active_frame, hsotg->frame_number))
hsotg            2029 drivers/usb/dwc2/hcd_queue.c 			       &hsotg->periodic_sched_ready);
hsotg            2032 drivers/usb/dwc2/hcd_queue.c 			       &hsotg->periodic_sched_inactive);
hsotg            2078 drivers/usb/dwc2/hcd_queue.c int dwc2_hcd_qtd_add(struct dwc2_hsotg *hsotg, struct dwc2_qtd *qtd,
hsotg            2084 drivers/usb/dwc2/hcd_queue.c 		dev_err(hsotg->dev, "%s: Invalid QH\n", __func__);
hsotg            2089 drivers/usb/dwc2/hcd_queue.c 	retval = dwc2_hcd_qh_add(hsotg, qh);
hsotg              42 drivers/usb/dwc2/params.c static void dwc2_set_bcm_params(struct dwc2_hsotg *hsotg)
hsotg              44 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg              52 drivers/usb/dwc2/params.c static void dwc2_set_his_params(struct dwc2_hsotg *hsotg)
hsotg              54 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg              74 drivers/usb/dwc2/params.c static void dwc2_set_s3c6400_params(struct dwc2_hsotg *hsotg)
hsotg              76 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg              82 drivers/usb/dwc2/params.c static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
hsotg              84 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg              95 drivers/usb/dwc2/params.c static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
hsotg              97 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             109 drivers/usb/dwc2/params.c static void dwc2_set_amlogic_params(struct dwc2_hsotg *hsotg)
hsotg             111 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             125 drivers/usb/dwc2/params.c static void dwc2_set_amlogic_g12a_params(struct dwc2_hsotg *hsotg)
hsotg             127 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             135 drivers/usb/dwc2/params.c static void dwc2_set_amcc_params(struct dwc2_hsotg *hsotg)
hsotg             137 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             142 drivers/usb/dwc2/params.c static void dwc2_set_stm32f4x9_fsotg_params(struct dwc2_hsotg *hsotg)
hsotg             144 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             157 drivers/usb/dwc2/params.c static void dwc2_set_stm32f7_hsotg_params(struct dwc2_hsotg *hsotg)
hsotg             159 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             193 drivers/usb/dwc2/params.c static void dwc2_set_param_otg_cap(struct dwc2_hsotg *hsotg)
hsotg             197 drivers/usb/dwc2/params.c 	switch (hsotg->hw_params.op_mode) {
hsotg             211 drivers/usb/dwc2/params.c 	hsotg->params.otg_cap = val;
hsotg             214 drivers/usb/dwc2/params.c static void dwc2_set_param_phy_type(struct dwc2_hsotg *hsotg)
hsotg             217 drivers/usb/dwc2/params.c 	u32 hs_phy_type = hsotg->hw_params.hs_phy_type;
hsotg             228 drivers/usb/dwc2/params.c 	if (dwc2_is_fs_iot(hsotg))
hsotg             229 drivers/usb/dwc2/params.c 		hsotg->params.phy_type = DWC2_PHY_TYPE_PARAM_FS;
hsotg             231 drivers/usb/dwc2/params.c 	hsotg->params.phy_type = val;
hsotg             234 drivers/usb/dwc2/params.c static void dwc2_set_param_speed(struct dwc2_hsotg *hsotg)
hsotg             238 drivers/usb/dwc2/params.c 	val = hsotg->params.phy_type == DWC2_PHY_TYPE_PARAM_FS ?
hsotg             241 drivers/usb/dwc2/params.c 	if (dwc2_is_fs_iot(hsotg))
hsotg             244 drivers/usb/dwc2/params.c 	if (dwc2_is_hs_iot(hsotg))
hsotg             247 drivers/usb/dwc2/params.c 	hsotg->params.speed = val;
hsotg             250 drivers/usb/dwc2/params.c static void dwc2_set_param_phy_utmi_width(struct dwc2_hsotg *hsotg)
hsotg             254 drivers/usb/dwc2/params.c 	val = (hsotg->hw_params.utmi_phy_data_width ==
hsotg             257 drivers/usb/dwc2/params.c 	if (hsotg->phy) {
hsotg             262 drivers/usb/dwc2/params.c 		if (phy_get_bus_width(hsotg->phy) == 8)
hsotg             266 drivers/usb/dwc2/params.c 	hsotg->params.phy_utmi_width = val;
hsotg             269 drivers/usb/dwc2/params.c static void dwc2_set_param_tx_fifo_sizes(struct dwc2_hsotg *hsotg)
hsotg             271 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             276 drivers/usb/dwc2/params.c 	fifo_count = dwc2_hsotg_tx_fifo_count(hsotg);
hsotg             279 drivers/usb/dwc2/params.c 	depth_average = dwc2_hsotg_tx_fifo_average_depth(hsotg);
hsotg             284 drivers/usb/dwc2/params.c static void dwc2_set_param_power_down(struct dwc2_hsotg *hsotg)
hsotg             288 drivers/usb/dwc2/params.c 	if (hsotg->hw_params.hibernation)
hsotg             290 drivers/usb/dwc2/params.c 	else if (hsotg->hw_params.power_optimized)
hsotg             295 drivers/usb/dwc2/params.c 	hsotg->params.power_down = val;
hsotg             298 drivers/usb/dwc2/params.c static void dwc2_set_param_lpm(struct dwc2_hsotg *hsotg)
hsotg             300 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             302 drivers/usb/dwc2/params.c 	p->lpm = hsotg->hw_params.lpm_mode;
hsotg             322 drivers/usb/dwc2/params.c static void dwc2_set_default_params(struct dwc2_hsotg *hsotg)
hsotg             324 drivers/usb/dwc2/params.c 	struct dwc2_hw_params *hw = &hsotg->hw_params;
hsotg             325 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             328 drivers/usb/dwc2/params.c 	dwc2_set_param_otg_cap(hsotg);
hsotg             329 drivers/usb/dwc2/params.c 	dwc2_set_param_phy_type(hsotg);
hsotg             330 drivers/usb/dwc2/params.c 	dwc2_set_param_speed(hsotg);
hsotg             331 drivers/usb/dwc2/params.c 	dwc2_set_param_phy_utmi_width(hsotg);
hsotg             332 drivers/usb/dwc2/params.c 	dwc2_set_param_power_down(hsotg);
hsotg             333 drivers/usb/dwc2/params.c 	dwc2_set_param_lpm(hsotg);
hsotg             354 drivers/usb/dwc2/params.c 	if ((hsotg->dr_mode == USB_DR_MODE_HOST) ||
hsotg             355 drivers/usb/dwc2/params.c 	    (hsotg->dr_mode == USB_DR_MODE_OTG)) {
hsotg             367 drivers/usb/dwc2/params.c 	if ((hsotg->dr_mode == USB_DR_MODE_PERIPHERAL) ||
hsotg             368 drivers/usb/dwc2/params.c 	    (hsotg->dr_mode == USB_DR_MODE_OTG)) {
hsotg             383 drivers/usb/dwc2/params.c 		dwc2_set_param_tx_fifo_sizes(hsotg);
hsotg             394 drivers/usb/dwc2/params.c static void dwc2_get_device_properties(struct dwc2_hsotg *hsotg)
hsotg             396 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             399 drivers/usb/dwc2/params.c 	if ((hsotg->dr_mode == USB_DR_MODE_PERIPHERAL) ||
hsotg             400 drivers/usb/dwc2/params.c 	    (hsotg->dr_mode == USB_DR_MODE_OTG)) {
hsotg             401 drivers/usb/dwc2/params.c 		device_property_read_u32(hsotg->dev, "g-rx-fifo-size",
hsotg             404 drivers/usb/dwc2/params.c 		device_property_read_u32(hsotg->dev, "g-np-tx-fifo-size",
hsotg             407 drivers/usb/dwc2/params.c 		num = device_property_count_u32(hsotg->dev, "g-tx-fifo-size");
hsotg             412 drivers/usb/dwc2/params.c 			device_property_read_u32_array(hsotg->dev,
hsotg             419 drivers/usb/dwc2/params.c 	if (of_find_property(hsotg->dev->of_node, "disable-over-current", NULL))
hsotg             423 drivers/usb/dwc2/params.c static void dwc2_check_param_otg_cap(struct dwc2_hsotg *hsotg)
hsotg             427 drivers/usb/dwc2/params.c 	switch (hsotg->params.otg_cap) {
hsotg             429 drivers/usb/dwc2/params.c 		if (hsotg->hw_params.op_mode != GHWCFG2_OP_MODE_HNP_SRP_CAPABLE)
hsotg             433 drivers/usb/dwc2/params.c 		switch (hsotg->hw_params.op_mode) {
hsotg             453 drivers/usb/dwc2/params.c 		dwc2_set_param_otg_cap(hsotg);
hsotg             456 drivers/usb/dwc2/params.c static void dwc2_check_param_phy_type(struct dwc2_hsotg *hsotg)
hsotg             462 drivers/usb/dwc2/params.c 	hs_phy_type = hsotg->hw_params.hs_phy_type;
hsotg             463 drivers/usb/dwc2/params.c 	fs_phy_type = hsotg->hw_params.fs_phy_type;
hsotg             465 drivers/usb/dwc2/params.c 	switch (hsotg->params.phy_type) {
hsotg             485 drivers/usb/dwc2/params.c 		dwc2_set_param_phy_type(hsotg);
hsotg             488 drivers/usb/dwc2/params.c static void dwc2_check_param_speed(struct dwc2_hsotg *hsotg)
hsotg             491 drivers/usb/dwc2/params.c 	int phy_type = hsotg->params.phy_type;
hsotg             492 drivers/usb/dwc2/params.c 	int speed = hsotg->params.speed;
hsotg             496 drivers/usb/dwc2/params.c 		if ((hsotg->params.speed == DWC2_SPEED_PARAM_HIGH) &&
hsotg             509 drivers/usb/dwc2/params.c 		dwc2_set_param_speed(hsotg);
hsotg             512 drivers/usb/dwc2/params.c static void dwc2_check_param_phy_utmi_width(struct dwc2_hsotg *hsotg)
hsotg             515 drivers/usb/dwc2/params.c 	int param = hsotg->params.phy_utmi_width;
hsotg             516 drivers/usb/dwc2/params.c 	int width = hsotg->hw_params.utmi_phy_data_width;
hsotg             531 drivers/usb/dwc2/params.c 		dwc2_set_param_phy_utmi_width(hsotg);
hsotg             534 drivers/usb/dwc2/params.c static void dwc2_check_param_power_down(struct dwc2_hsotg *hsotg)
hsotg             536 drivers/usb/dwc2/params.c 	int param = hsotg->params.power_down;
hsotg             542 drivers/usb/dwc2/params.c 		if (hsotg->hw_params.power_optimized)
hsotg             544 drivers/usb/dwc2/params.c 		dev_dbg(hsotg->dev,
hsotg             549 drivers/usb/dwc2/params.c 		if (hsotg->hw_params.hibernation)
hsotg             551 drivers/usb/dwc2/params.c 		dev_dbg(hsotg->dev,
hsotg             556 drivers/usb/dwc2/params.c 		dev_err(hsotg->dev,
hsotg             563 drivers/usb/dwc2/params.c 	hsotg->params.power_down = param;
hsotg             566 drivers/usb/dwc2/params.c static void dwc2_check_param_tx_fifo_sizes(struct dwc2_hsotg *hsotg)
hsotg             574 drivers/usb/dwc2/params.c 	fifo_count = dwc2_hsotg_tx_fifo_count(hsotg);
hsotg             575 drivers/usb/dwc2/params.c 	min = hsotg->hw_params.en_multiple_tx_fifo ? 16 : 4;
hsotg             578 drivers/usb/dwc2/params.c 		total += hsotg->params.g_tx_fifo_size[fifo];
hsotg             580 drivers/usb/dwc2/params.c 	if (total > dwc2_hsotg_tx_fifo_total_depth(hsotg) || !total) {
hsotg             581 drivers/usb/dwc2/params.c 		dev_warn(hsotg->dev, "%s: Invalid parameter g-tx-fifo-size, setting to default average\n",
hsotg             583 drivers/usb/dwc2/params.c 		dwc2_set_param_tx_fifo_sizes(hsotg);
hsotg             587 drivers/usb/dwc2/params.c 		dptxfszn = hsotg->hw_params.g_tx_fifo_size[fifo];
hsotg             589 drivers/usb/dwc2/params.c 		if (hsotg->params.g_tx_fifo_size[fifo] < min ||
hsotg             590 drivers/usb/dwc2/params.c 		    hsotg->params.g_tx_fifo_size[fifo] >  dptxfszn) {
hsotg             591 drivers/usb/dwc2/params.c 			dev_warn(hsotg->dev, "%s: Invalid parameter g_tx_fifo_size[%d]=%d\n",
hsotg             593 drivers/usb/dwc2/params.c 				 hsotg->params.g_tx_fifo_size[fifo]);
hsotg             594 drivers/usb/dwc2/params.c 			hsotg->params.g_tx_fifo_size[fifo] = dptxfszn;
hsotg             600 drivers/usb/dwc2/params.c 		if ((int)(hsotg->params._param) < (_min) ||		\
hsotg             601 drivers/usb/dwc2/params.c 		    (hsotg->params._param) > (_max)) {			\
hsotg             602 drivers/usb/dwc2/params.c 			dev_warn(hsotg->dev, "%s: Invalid parameter %s=%d\n", \
hsotg             603 drivers/usb/dwc2/params.c 				 __func__, #_param, hsotg->params._param); \
hsotg             604 drivers/usb/dwc2/params.c 			hsotg->params._param = (_def);			\
hsotg             609 drivers/usb/dwc2/params.c 		if (hsotg->params._param && !(_check)) {		\
hsotg             610 drivers/usb/dwc2/params.c 			dev_warn(hsotg->dev, "%s: Invalid parameter %s=%d\n", \
hsotg             611 drivers/usb/dwc2/params.c 				 __func__, #_param, hsotg->params._param); \
hsotg             612 drivers/usb/dwc2/params.c 			hsotg->params._param = false;			\
hsotg             616 drivers/usb/dwc2/params.c static void dwc2_check_params(struct dwc2_hsotg *hsotg)
hsotg             618 drivers/usb/dwc2/params.c 	struct dwc2_hw_params *hw = &hsotg->hw_params;
hsotg             619 drivers/usb/dwc2/params.c 	struct dwc2_core_params *p = &hsotg->params;
hsotg             622 drivers/usb/dwc2/params.c 	dwc2_check_param_otg_cap(hsotg);
hsotg             623 drivers/usb/dwc2/params.c 	dwc2_check_param_phy_type(hsotg);
hsotg             624 drivers/usb/dwc2/params.c 	dwc2_check_param_speed(hsotg);
hsotg             625 drivers/usb/dwc2/params.c 	dwc2_check_param_phy_utmi_width(hsotg);
hsotg             626 drivers/usb/dwc2/params.c 	dwc2_check_param_power_down(hsotg);
hsotg             632 drivers/usb/dwc2/params.c 	CHECK_BOOL(reload_ctl, (hsotg->hw_params.snpsid > DWC2_CORE_REV_2_92a));
hsotg             633 drivers/usb/dwc2/params.c 	CHECK_BOOL(lpm, (hsotg->hw_params.snpsid >= DWC2_CORE_REV_2_80a));
hsotg             635 drivers/usb/dwc2/params.c 	CHECK_BOOL(lpm_clock_gating, hsotg->params.lpm);
hsotg             636 drivers/usb/dwc2/params.c 	CHECK_BOOL(besl, hsotg->params.lpm);
hsotg             637 drivers/usb/dwc2/params.c 	CHECK_BOOL(besl, (hsotg->hw_params.snpsid >= DWC2_CORE_REV_3_00a));
hsotg             638 drivers/usb/dwc2/params.c 	CHECK_BOOL(hird_threshold_en, hsotg->params.lpm);
hsotg             639 drivers/usb/dwc2/params.c 	CHECK_RANGE(hird_threshold, 0, hsotg->params.besl ? 12 : 7, 0);
hsotg             648 drivers/usb/dwc2/params.c 	if ((hsotg->dr_mode == USB_DR_MODE_HOST) ||
hsotg             649 drivers/usb/dwc2/params.c 	    (hsotg->dr_mode == USB_DR_MODE_OTG)) {
hsotg             669 drivers/usb/dwc2/params.c 	if ((hsotg->dr_mode == USB_DR_MODE_PERIPHERAL) ||
hsotg             670 drivers/usb/dwc2/params.c 	    (hsotg->dr_mode == USB_DR_MODE_OTG)) {
hsotg             679 drivers/usb/dwc2/params.c 		dwc2_check_param_tx_fifo_sizes(hsotg);
hsotg             688 drivers/usb/dwc2/params.c static void dwc2_get_host_hwparams(struct dwc2_hsotg *hsotg)
hsotg             690 drivers/usb/dwc2/params.c 	struct dwc2_hw_params *hw = &hsotg->hw_params;
hsotg             694 drivers/usb/dwc2/params.c 	if (hsotg->dr_mode == USB_DR_MODE_PERIPHERAL)
hsotg             697 drivers/usb/dwc2/params.c 	dwc2_force_mode(hsotg, true);
hsotg             699 drivers/usb/dwc2/params.c 	gnptxfsiz = dwc2_readl(hsotg, GNPTXFSIZ);
hsotg             700 drivers/usb/dwc2/params.c 	hptxfsiz = dwc2_readl(hsotg, HPTXFSIZ);
hsotg             713 drivers/usb/dwc2/params.c static void dwc2_get_dev_hwparams(struct dwc2_hsotg *hsotg)
hsotg             715 drivers/usb/dwc2/params.c 	struct dwc2_hw_params *hw = &hsotg->hw_params;
hsotg             719 drivers/usb/dwc2/params.c 	if (hsotg->dr_mode == USB_DR_MODE_HOST)
hsotg             722 drivers/usb/dwc2/params.c 	dwc2_force_mode(hsotg, false);
hsotg             724 drivers/usb/dwc2/params.c 	gnptxfsiz = dwc2_readl(hsotg, GNPTXFSIZ);
hsotg             726 drivers/usb/dwc2/params.c 	fifo_count = dwc2_hsotg_tx_fifo_count(hsotg);
hsotg             730 drivers/usb/dwc2/params.c 			(dwc2_readl(hsotg, DPTXFSIZN(fifo)) &
hsotg             745 drivers/usb/dwc2/params.c int dwc2_get_hwparams(struct dwc2_hsotg *hsotg)
hsotg             747 drivers/usb/dwc2/params.c 	struct dwc2_hw_params *hw = &hsotg->hw_params;
hsotg             758 drivers/usb/dwc2/params.c 	hw->snpsid = dwc2_readl(hsotg, GSNPSID);
hsotg             762 drivers/usb/dwc2/params.c 		dev_err(hsotg->dev, "Bad value for GSNPSID: 0x%08x\n",
hsotg             767 drivers/usb/dwc2/params.c 	dev_dbg(hsotg->dev, "Core Release: %1x.%1x%1x%1x (snpsid=%x)\n",
hsotg             771 drivers/usb/dwc2/params.c 	hwcfg1 = dwc2_readl(hsotg, GHWCFG1);
hsotg             772 drivers/usb/dwc2/params.c 	hwcfg2 = dwc2_readl(hsotg, GHWCFG2);
hsotg             773 drivers/usb/dwc2/params.c 	hwcfg3 = dwc2_readl(hsotg, GHWCFG3);
hsotg             774 drivers/usb/dwc2/params.c 	hwcfg4 = dwc2_readl(hsotg, GHWCFG4);
hsotg             775 drivers/usb/dwc2/params.c 	grxfsiz = dwc2_readl(hsotg, GRXFSIZ);
hsotg             840 drivers/usb/dwc2/params.c 	dwc2_get_host_hwparams(hsotg);
hsotg             841 drivers/usb/dwc2/params.c 	dwc2_get_dev_hwparams(hsotg);
hsotg             846 drivers/usb/dwc2/params.c int dwc2_init_params(struct dwc2_hsotg *hsotg)
hsotg             851 drivers/usb/dwc2/params.c 	dwc2_set_default_params(hsotg);
hsotg             852 drivers/usb/dwc2/params.c 	dwc2_get_device_properties(hsotg);
hsotg             854 drivers/usb/dwc2/params.c 	match = of_match_device(dwc2_of_match_table, hsotg->dev);
hsotg             857 drivers/usb/dwc2/params.c 		set_params(hsotg);
hsotg             860 drivers/usb/dwc2/params.c 	dwc2_check_params(hsotg);
hsotg              82 drivers/usb/dwc2/platform.c static int dwc2_get_dr_mode(struct dwc2_hsotg *hsotg)
hsotg              86 drivers/usb/dwc2/platform.c 	hsotg->dr_mode = usb_get_dr_mode(hsotg->dev);
hsotg              87 drivers/usb/dwc2/platform.c 	if (hsotg->dr_mode == USB_DR_MODE_UNKNOWN)
hsotg              88 drivers/usb/dwc2/platform.c 		hsotg->dr_mode = USB_DR_MODE_OTG;
hsotg              90 drivers/usb/dwc2/platform.c 	mode = hsotg->dr_mode;
hsotg              92 drivers/usb/dwc2/platform.c 	if (dwc2_hw_is_device(hsotg)) {
hsotg              94 drivers/usb/dwc2/platform.c 			dev_err(hsotg->dev,
hsotg              99 drivers/usb/dwc2/platform.c 	} else if (dwc2_hw_is_host(hsotg)) {
hsotg             101 drivers/usb/dwc2/platform.c 			dev_err(hsotg->dev,
hsotg             113 drivers/usb/dwc2/platform.c 	if (mode != hsotg->dr_mode) {
hsotg             114 drivers/usb/dwc2/platform.c 		dev_warn(hsotg->dev,
hsotg             118 drivers/usb/dwc2/platform.c 		hsotg->dr_mode = mode;
hsotg             124 drivers/usb/dwc2/platform.c static int __dwc2_lowlevel_hw_enable(struct dwc2_hsotg *hsotg)
hsotg             126 drivers/usb/dwc2/platform.c 	struct platform_device *pdev = to_platform_device(hsotg->dev);
hsotg             129 drivers/usb/dwc2/platform.c 	ret = regulator_bulk_enable(ARRAY_SIZE(hsotg->supplies),
hsotg             130 drivers/usb/dwc2/platform.c 				    hsotg->supplies);
hsotg             134 drivers/usb/dwc2/platform.c 	if (hsotg->clk) {
hsotg             135 drivers/usb/dwc2/platform.c 		ret = clk_prepare_enable(hsotg->clk);
hsotg             140 drivers/usb/dwc2/platform.c 	if (hsotg->uphy) {
hsotg             141 drivers/usb/dwc2/platform.c 		ret = usb_phy_init(hsotg->uphy);
hsotg             142 drivers/usb/dwc2/platform.c 	} else if (hsotg->plat && hsotg->plat->phy_init) {
hsotg             143 drivers/usb/dwc2/platform.c 		ret = hsotg->plat->phy_init(pdev, hsotg->plat->phy_type);
hsotg             145 drivers/usb/dwc2/platform.c 		ret = phy_power_on(hsotg->phy);
hsotg             147 drivers/usb/dwc2/platform.c 			ret = phy_init(hsotg->phy);
hsotg             160 drivers/usb/dwc2/platform.c int dwc2_lowlevel_hw_enable(struct dwc2_hsotg *hsotg)
hsotg             162 drivers/usb/dwc2/platform.c 	int ret = __dwc2_lowlevel_hw_enable(hsotg);
hsotg             165 drivers/usb/dwc2/platform.c 		hsotg->ll_hw_enabled = true;
hsotg             169 drivers/usb/dwc2/platform.c static int __dwc2_lowlevel_hw_disable(struct dwc2_hsotg *hsotg)
hsotg             171 drivers/usb/dwc2/platform.c 	struct platform_device *pdev = to_platform_device(hsotg->dev);
hsotg             174 drivers/usb/dwc2/platform.c 	if (hsotg->uphy) {
hsotg             175 drivers/usb/dwc2/platform.c 		usb_phy_shutdown(hsotg->uphy);
hsotg             176 drivers/usb/dwc2/platform.c 	} else if (hsotg->plat && hsotg->plat->phy_exit) {
hsotg             177 drivers/usb/dwc2/platform.c 		ret = hsotg->plat->phy_exit(pdev, hsotg->plat->phy_type);
hsotg             179 drivers/usb/dwc2/platform.c 		ret = phy_exit(hsotg->phy);
hsotg             181 drivers/usb/dwc2/platform.c 			ret = phy_power_off(hsotg->phy);
hsotg             186 drivers/usb/dwc2/platform.c 	if (hsotg->clk)
hsotg             187 drivers/usb/dwc2/platform.c 		clk_disable_unprepare(hsotg->clk);
hsotg             189 drivers/usb/dwc2/platform.c 	ret = regulator_bulk_disable(ARRAY_SIZE(hsotg->supplies),
hsotg             190 drivers/usb/dwc2/platform.c 				     hsotg->supplies);
hsotg             202 drivers/usb/dwc2/platform.c int dwc2_lowlevel_hw_disable(struct dwc2_hsotg *hsotg)
hsotg             204 drivers/usb/dwc2/platform.c 	int ret = __dwc2_lowlevel_hw_disable(hsotg);
hsotg             207 drivers/usb/dwc2/platform.c 		hsotg->ll_hw_enabled = false;
hsotg             211 drivers/usb/dwc2/platform.c static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
hsotg             215 drivers/usb/dwc2/platform.c 	hsotg->reset = devm_reset_control_get_optional(hsotg->dev, "dwc2");
hsotg             216 drivers/usb/dwc2/platform.c 	if (IS_ERR(hsotg->reset)) {
hsotg             217 drivers/usb/dwc2/platform.c 		ret = PTR_ERR(hsotg->reset);
hsotg             218 drivers/usb/dwc2/platform.c 		dev_err(hsotg->dev, "error getting reset control %d\n", ret);
hsotg             222 drivers/usb/dwc2/platform.c 	reset_control_deassert(hsotg->reset);
hsotg             224 drivers/usb/dwc2/platform.c 	hsotg->reset_ecc = devm_reset_control_get_optional(hsotg->dev, "dwc2-ecc");
hsotg             225 drivers/usb/dwc2/platform.c 	if (IS_ERR(hsotg->reset_ecc)) {
hsotg             226 drivers/usb/dwc2/platform.c 		ret = PTR_ERR(hsotg->reset_ecc);
hsotg             227 drivers/usb/dwc2/platform.c 		dev_err(hsotg->dev, "error getting reset control for ecc %d\n", ret);
hsotg             231 drivers/usb/dwc2/platform.c 	reset_control_deassert(hsotg->reset_ecc);
hsotg             237 drivers/usb/dwc2/platform.c 	hsotg->phy = devm_phy_get(hsotg->dev, "usb2-phy");
hsotg             238 drivers/usb/dwc2/platform.c 	if (IS_ERR(hsotg->phy)) {
hsotg             239 drivers/usb/dwc2/platform.c 		ret = PTR_ERR(hsotg->phy);
hsotg             243 drivers/usb/dwc2/platform.c 			hsotg->phy = NULL;
hsotg             248 drivers/usb/dwc2/platform.c 			dev_err(hsotg->dev, "error getting phy %d\n", ret);
hsotg             253 drivers/usb/dwc2/platform.c 	if (!hsotg->phy) {
hsotg             254 drivers/usb/dwc2/platform.c 		hsotg->uphy = devm_usb_get_phy(hsotg->dev, USB_PHY_TYPE_USB2);
hsotg             255 drivers/usb/dwc2/platform.c 		if (IS_ERR(hsotg->uphy)) {
hsotg             256 drivers/usb/dwc2/platform.c 			ret = PTR_ERR(hsotg->uphy);
hsotg             260 drivers/usb/dwc2/platform.c 				hsotg->uphy = NULL;
hsotg             265 drivers/usb/dwc2/platform.c 				dev_err(hsotg->dev, "error getting usb phy %d\n",
hsotg             272 drivers/usb/dwc2/platform.c 	hsotg->plat = dev_get_platdata(hsotg->dev);
hsotg             275 drivers/usb/dwc2/platform.c 	hsotg->clk = devm_clk_get_optional(hsotg->dev, "otg");
hsotg             276 drivers/usb/dwc2/platform.c 	if (IS_ERR(hsotg->clk)) {
hsotg             277 drivers/usb/dwc2/platform.c 		dev_err(hsotg->dev, "cannot get otg clock\n");
hsotg             278 drivers/usb/dwc2/platform.c 		return PTR_ERR(hsotg->clk);
hsotg             282 drivers/usb/dwc2/platform.c 	for (i = 0; i < ARRAY_SIZE(hsotg->supplies); i++)
hsotg             283 drivers/usb/dwc2/platform.c 		hsotg->supplies[i].supply = dwc2_hsotg_supply_names[i];
hsotg             285 drivers/usb/dwc2/platform.c 	ret = devm_regulator_bulk_get(hsotg->dev, ARRAY_SIZE(hsotg->supplies),
hsotg             286 drivers/usb/dwc2/platform.c 				      hsotg->supplies);
hsotg             288 drivers/usb/dwc2/platform.c 		dev_err(hsotg->dev, "failed to request supplies: %d\n", ret);
hsotg             307 drivers/usb/dwc2/platform.c 	struct dwc2_hsotg *hsotg = platform_get_drvdata(dev);
hsotg             309 drivers/usb/dwc2/platform.c 	dwc2_debugfs_exit(hsotg);
hsotg             310 drivers/usb/dwc2/platform.c 	if (hsotg->hcd_enabled)
hsotg             311 drivers/usb/dwc2/platform.c 		dwc2_hcd_remove(hsotg);
hsotg             312 drivers/usb/dwc2/platform.c 	if (hsotg->gadget_enabled)
hsotg             313 drivers/usb/dwc2/platform.c 		dwc2_hsotg_remove(hsotg);
hsotg             315 drivers/usb/dwc2/platform.c 	if (hsotg->ll_hw_enabled)
hsotg             316 drivers/usb/dwc2/platform.c 		dwc2_lowlevel_hw_disable(hsotg);
hsotg             318 drivers/usb/dwc2/platform.c 	reset_control_assert(hsotg->reset);
hsotg             319 drivers/usb/dwc2/platform.c 	reset_control_assert(hsotg->reset_ecc);
hsotg             338 drivers/usb/dwc2/platform.c 	struct dwc2_hsotg *hsotg = platform_get_drvdata(dev);
hsotg             340 drivers/usb/dwc2/platform.c 	disable_irq(hsotg->irq);
hsotg             348 drivers/usb/dwc2/platform.c static bool dwc2_check_core_endianness(struct dwc2_hsotg *hsotg)
hsotg             352 drivers/usb/dwc2/platform.c 	snpsid = ioread32(hsotg->regs + GSNPSID);
hsotg             374 drivers/usb/dwc2/platform.c 	struct dwc2_hsotg *hsotg;
hsotg             378 drivers/usb/dwc2/platform.c 	hsotg = devm_kzalloc(&dev->dev, sizeof(*hsotg), GFP_KERNEL);
hsotg             379 drivers/usb/dwc2/platform.c 	if (!hsotg)
hsotg             382 drivers/usb/dwc2/platform.c 	hsotg->dev = &dev->dev;
hsotg             396 drivers/usb/dwc2/platform.c 	hsotg->regs = devm_ioremap_resource(&dev->dev, res);
hsotg             397 drivers/usb/dwc2/platform.c 	if (IS_ERR(hsotg->regs))
hsotg             398 drivers/usb/dwc2/platform.c 		return PTR_ERR(hsotg->regs);
hsotg             401 drivers/usb/dwc2/platform.c 		(unsigned long)res->start, hsotg->regs);
hsotg             403 drivers/usb/dwc2/platform.c 	retval = dwc2_lowlevel_hw_init(hsotg);
hsotg             407 drivers/usb/dwc2/platform.c 	spin_lock_init(&hsotg->lock);
hsotg             409 drivers/usb/dwc2/platform.c 	hsotg->irq = platform_get_irq(dev, 0);
hsotg             410 drivers/usb/dwc2/platform.c 	if (hsotg->irq < 0)
hsotg             411 drivers/usb/dwc2/platform.c 		return hsotg->irq;
hsotg             413 drivers/usb/dwc2/platform.c 	dev_dbg(hsotg->dev, "registering common handler for irq%d\n",
hsotg             414 drivers/usb/dwc2/platform.c 		hsotg->irq);
hsotg             415 drivers/usb/dwc2/platform.c 	retval = devm_request_irq(hsotg->dev, hsotg->irq,
hsotg             417 drivers/usb/dwc2/platform.c 				  dev_name(hsotg->dev), hsotg);
hsotg             421 drivers/usb/dwc2/platform.c 	hsotg->vbus_supply = devm_regulator_get_optional(hsotg->dev, "vbus");
hsotg             422 drivers/usb/dwc2/platform.c 	if (IS_ERR(hsotg->vbus_supply)) {
hsotg             423 drivers/usb/dwc2/platform.c 		retval = PTR_ERR(hsotg->vbus_supply);
hsotg             424 drivers/usb/dwc2/platform.c 		hsotg->vbus_supply = NULL;
hsotg             429 drivers/usb/dwc2/platform.c 	retval = dwc2_lowlevel_hw_enable(hsotg);
hsotg             433 drivers/usb/dwc2/platform.c 	hsotg->needs_byte_swap = dwc2_check_core_endianness(hsotg);
hsotg             435 drivers/usb/dwc2/platform.c 	retval = dwc2_get_dr_mode(hsotg);
hsotg             439 drivers/usb/dwc2/platform.c 	hsotg->need_phy_for_wake =
hsotg             447 drivers/usb/dwc2/platform.c 	retval = dwc2_core_reset(hsotg, false);
hsotg             452 drivers/usb/dwc2/platform.c 	retval = dwc2_get_hwparams(hsotg);
hsotg             461 drivers/usb/dwc2/platform.c 	dwc2_force_dr_mode(hsotg);
hsotg             463 drivers/usb/dwc2/platform.c 	retval = dwc2_init_params(hsotg);
hsotg             467 drivers/usb/dwc2/platform.c 	if (hsotg->dr_mode != USB_DR_MODE_HOST) {
hsotg             468 drivers/usb/dwc2/platform.c 		retval = dwc2_gadget_init(hsotg);
hsotg             471 drivers/usb/dwc2/platform.c 		hsotg->gadget_enabled = 1;
hsotg             479 drivers/usb/dwc2/platform.c 	if (hsotg->need_phy_for_wake)
hsotg             482 drivers/usb/dwc2/platform.c 	hsotg->reset_phy_on_wake =
hsotg             485 drivers/usb/dwc2/platform.c 	if (hsotg->reset_phy_on_wake && !hsotg->phy) {
hsotg             486 drivers/usb/dwc2/platform.c 		dev_warn(hsotg->dev,
hsotg             488 drivers/usb/dwc2/platform.c 		hsotg->reset_phy_on_wake = false;
hsotg             491 drivers/usb/dwc2/platform.c 	if (hsotg->dr_mode != USB_DR_MODE_PERIPHERAL) {
hsotg             492 drivers/usb/dwc2/platform.c 		retval = dwc2_hcd_init(hsotg);
hsotg             494 drivers/usb/dwc2/platform.c 			if (hsotg->gadget_enabled)
hsotg             495 drivers/usb/dwc2/platform.c 				dwc2_hsotg_remove(hsotg);
hsotg             498 drivers/usb/dwc2/platform.c 		hsotg->hcd_enabled = 1;
hsotg             501 drivers/usb/dwc2/platform.c 	platform_set_drvdata(dev, hsotg);
hsotg             502 drivers/usb/dwc2/platform.c 	hsotg->hibernated = 0;
hsotg             504 drivers/usb/dwc2/platform.c 	dwc2_debugfs_init(hsotg);
hsotg             507 drivers/usb/dwc2/platform.c 	if (hsotg->dr_mode == USB_DR_MODE_PERIPHERAL)
hsotg             508 drivers/usb/dwc2/platform.c 		dwc2_lowlevel_hw_disable(hsotg);
hsotg             513 drivers/usb/dwc2/platform.c 	dwc2_lowlevel_hw_disable(hsotg);