diff options
Diffstat (limited to 'drivers/usb/musb')
| -rw-r--r-- | drivers/usb/musb/Kconfig | 5 | ||||
| -rw-r--r-- | drivers/usb/musb/da8xx.c | 2 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_core.c | 6 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_gadget.c | 9 | ||||
| -rw-r--r-- | drivers/usb/musb/omap2430.c | 12 | 
5 files changed, 16 insertions, 18 deletions
diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig index 45b19e2c60b..05e51432dd2 100644 --- a/drivers/usb/musb/Kconfig +++ b/drivers/usb/musb/Kconfig @@ -7,11 +7,6 @@  config USB_MUSB_HDRC  	tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'  	depends on USB && USB_GADGET -	select NOP_USB_XCEIV if (ARCH_DAVINCI || MACH_OMAP3EVM || BLACKFIN) -	select NOP_USB_XCEIV if (SOC_TI81XX || SOC_AM33XX) -	select TWL4030_USB if MACH_OMAP_3430SDP -	select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA -	select OMAP_CONTROL_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA  	select USB_OTG_UTILS  	help  	  Say Y here if your system has a dual role high speed USB diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c index 7c71769d71f..41613a2b35e 100644 --- a/drivers/usb/musb/da8xx.c +++ b/drivers/usb/musb/da8xx.c @@ -327,7 +327,7 @@ static irqreturn_t da8xx_musb_interrupt(int irq, void *hci)  		u8 devctl = musb_readb(mregs, MUSB_DEVCTL);  		int err; -		err = musb->int_usb & USB_INTR_VBUSERROR; +		err = musb->int_usb & MUSB_INTR_VBUSERROR;  		if (err) {  			/*  			 * The Mentor core doesn't debounce VBUS as needed diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 60b41cc28da..daec6e0f7e3 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -1624,8 +1624,6 @@ EXPORT_SYMBOL_GPL(musb_dma_completion);  /*-------------------------------------------------------------------------*/ -#ifdef CONFIG_SYSFS -  static ssize_t  musb_mode_show(struct device *dev, struct device_attribute *attr, char *buf)  { @@ -1742,8 +1740,6 @@ static const struct attribute_group musb_attr_group = {  	.attrs = musb_attributes,  }; -#endif	/* sysfs */ -  /* Only used to provide driver mode change events */  static void musb_irq_work(struct work_struct *data)  { @@ -1968,11 +1964,9 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)  	if (status < 0)  		goto fail4; -#ifdef CONFIG_SYSFS  	status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group);  	if (status)  		goto fail5; -#endif  	pm_runtime_put(musb->controller); diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c index be18537c5f1..83eddedcd9b 100644 --- a/drivers/usb/musb/musb_gadget.c +++ b/drivers/usb/musb/musb_gadget.c @@ -141,7 +141,9 @@ static inline void map_dma_buffer(struct musb_request *request,  static inline void unmap_dma_buffer(struct musb_request *request,  				struct musb *musb)  { -	if (!is_buffer_mapped(request)) +	struct musb_ep *musb_ep = request->ep; + +	if (!is_buffer_mapped(request) || !musb_ep->dma)  		return;  	if (request->request.dma == DMA_ADDR_INVALID) { @@ -195,7 +197,10 @@ __acquires(ep->musb->lock)  	ep->busy = 1;  	spin_unlock(&musb->lock); -	unmap_dma_buffer(req, musb); + +	if (!dma_mapping_error(&musb->g.dev, request->dma)) +		unmap_dma_buffer(req, musb); +  	if (request->status == 0)  		dev_dbg(musb->controller, "%s done request %p,  %d/%d\n",  				ep->end_point.name, request, diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index 1762354fe79..1a42a458f2c 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c @@ -51,7 +51,7 @@ struct omap2430_glue {  };  #define glue_to_musb(g)		platform_get_drvdata(g->musb) -struct omap2430_glue		*_glue; +static struct omap2430_glue	*_glue;  static struct timer_list musb_idle_timer; @@ -237,9 +237,13 @@ void omap_musb_mailbox(enum omap_musb_vbus_id_status status)  {  	struct omap2430_glue	*glue = _glue; -	if (glue && glue_to_musb(glue)) { -		glue->status = status; -	} else { +	if (!glue) { +		pr_err("%s: musb core is not yet initialized\n", __func__); +		return; +	} +	glue->status = status; + +	if (!glue_to_musb(glue)) {  		pr_err("%s: musb core is not yet ready\n", __func__);  		return;  	}  |