diff options
Diffstat (limited to 'drivers/usb/dwc3')
| -rw-r--r-- | drivers/usb/dwc3/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/usb/dwc3/dwc3-omap.c | 17 | ||||
| -rw-r--r-- | drivers/usb/dwc3/gadget.c | 8 | 
3 files changed, 19 insertions, 7 deletions
| diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig index 8eb996e4f058..261c3b428220 100644 --- a/drivers/usb/dwc3/Kconfig +++ b/drivers/usb/dwc3/Kconfig @@ -45,6 +45,7 @@ comment "Platform Glue Driver Support"  config USB_DWC3_OMAP  	tristate "Texas Instruments OMAP5 and similar Platforms"  	depends on EXTCON && (ARCH_OMAP2PLUS || COMPILE_TEST) +	depends on OF  	default USB_DWC3  	help  	  Some platforms from Texas Instruments like OMAP5, DRA7xxx and diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index 4af4c3567656..07a736acd0f2 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -322,7 +322,7 @@ static int dwc3_omap_remove_core(struct device *dev, void *c)  {  	struct platform_device *pdev = to_platform_device(dev); -	platform_device_unregister(pdev); +	of_device_unregister(pdev);  	return 0;  } @@ -599,7 +599,7 @@ static int dwc3_omap_prepare(struct device *dev)  {  	struct dwc3_omap	*omap = dev_get_drvdata(dev); -	dwc3_omap_disable_irqs(omap); +	dwc3_omap_write_irqmisc_set(omap, 0x00);  	return 0;  } @@ -607,8 +607,19 @@ static int dwc3_omap_prepare(struct device *dev)  static void dwc3_omap_complete(struct device *dev)  {  	struct dwc3_omap	*omap = dev_get_drvdata(dev); +	u32			reg; -	dwc3_omap_enable_irqs(omap); +	reg = (USBOTGSS_IRQMISC_OEVT | +			USBOTGSS_IRQMISC_DRVVBUS_RISE | +			USBOTGSS_IRQMISC_CHRGVBUS_RISE | +			USBOTGSS_IRQMISC_DISCHRGVBUS_RISE | +			USBOTGSS_IRQMISC_IDPULLUP_RISE | +			USBOTGSS_IRQMISC_DRVVBUS_FALL | +			USBOTGSS_IRQMISC_CHRGVBUS_FALL | +			USBOTGSS_IRQMISC_DISCHRGVBUS_FALL | +			USBOTGSS_IRQMISC_IDPULLUP_FALL); + +	dwc3_omap_write_irqmisc_set(omap, reg);  }  static int dwc3_omap_suspend(struct device *dev) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 9d64dd02c57e..dab7927d1009 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -828,10 +828,6 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,  			length, last ? " last" : "",  			chain ? " chain" : ""); -	/* Skip the LINK-TRB on ISOC */ -	if (((dep->free_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) && -			usb_endpoint_xfer_isoc(dep->endpoint.desc)) -		dep->free_slot++;  	trb = &dep->trb_pool[dep->free_slot & DWC3_TRB_MASK]; @@ -843,6 +839,10 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,  	}  	dep->free_slot++; +	/* Skip the LINK-TRB on ISOC */ +	if (((dep->free_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) && +			usb_endpoint_xfer_isoc(dep->endpoint.desc)) +		dep->free_slot++;  	trb->size = DWC3_TRB_SIZE_LENGTH(length);  	trb->bpl = lower_32_bits(dma); |