diff options
Diffstat (limited to 'drivers/usb/gadget')
| -rw-r--r-- | drivers/usb/gadget/Kconfig | 43 | ||||
| -rw-r--r-- | drivers/usb/gadget/amd5536udc.c | 1 | ||||
| -rw-r--r-- | drivers/usb/gadget/audio.c | 6 | ||||
| -rw-r--r-- | drivers/usb/gadget/ether.c | 11 | ||||
| -rw-r--r-- | drivers/usb/gadget/langwell_udc.c | 1 | ||||
| -rw-r--r-- | drivers/usb/gadget/pxa25x_udc.c | 24 | ||||
| -rw-r--r-- | drivers/usb/gadget/rndis.c | 2 | ||||
| -rw-r--r-- | drivers/usb/gadget/s3c2410_udc.c | 1 | 
8 files changed, 46 insertions, 43 deletions
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig index 5d1ddf485d1..7f8e83a954a 100644 --- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig @@ -286,6 +286,27 @@ config USB_S3C_HSOTG  	default USB_GADGET  	select USB_GADGET_SELECTED +config USB_GADGET_IMX +	boolean "Freescale IMX USB Peripheral Controller" +	depends on ARCH_MX1 +	help +	   Freescale's IMX series include an integrated full speed +	   USB 1.1 device controller.  The controller in the IMX series +	   is register-compatible. + +	   It has Six fixed-function endpoints, as well as endpoint +	   zero (for control transfers). + +	   Say "y" to link the driver statically, or "m" to build a +	   dynamically linked module called "imx_udc" and force all +	   gadget drivers to also be dynamically linked. + +config USB_IMX +	tristate +	depends on USB_GADGET_IMX +	default USB_GADGET +	select USB_GADGET_SELECTED +  config USB_GADGET_S3C2410  	boolean "S3C2410 USB Device Controller"  	depends on ARCH_S3C2410 @@ -321,27 +342,6 @@ config USB_GADGET_MUSB_HDRC  	  This OTG-capable silicon IP is used in dual designs including  	  the TI DaVinci, OMAP 243x, OMAP 343x, TUSB 6010, and ADI Blackfin -config USB_GADGET_IMX -	boolean "Freescale IMX USB Peripheral Controller" -	depends on ARCH_MX1 -	help -	   Freescale's IMX series include an integrated full speed -	   USB 1.1 device controller.  The controller in the IMX series -	   is register-compatible. - -	   It has Six fixed-function endpoints, as well as endpoint -	   zero (for control transfers). - -	   Say "y" to link the driver statically, or "m" to build a -	   dynamically linked module called "imx_udc" and force all -	   gadget drivers to also be dynamically linked. - -config USB_IMX -	tristate -	depends on USB_GADGET_IMX -	default USB_GADGET -	select USB_GADGET_SELECTED -  config USB_GADGET_M66592  	boolean "Renesas M66592 USB Peripheral Controller"  	select USB_GADGET_DUALSPEED @@ -604,6 +604,7 @@ config USB_ZERO_HNPTEST  config USB_AUDIO  	tristate "Audio Gadget (EXPERIMENTAL)"  	depends on SND +	select SND_PCM  	help  	  Gadget Audio is compatible with USB Audio Class specification 1.0.  	  It will include at least one AudioControl interface, zero or more diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c index 826f3adde5d..77352ccc245 100644 --- a/drivers/usb/gadget/amd5536udc.c +++ b/drivers/usb/gadget/amd5536udc.c @@ -48,7 +48,6 @@  #include <linux/ioport.h>  #include <linux/sched.h>  #include <linux/slab.h> -#include <linux/smp_lock.h>  #include <linux/errno.h>  #include <linux/init.h>  #include <linux/timer.h> diff --git a/drivers/usb/gadget/audio.c b/drivers/usb/gadget/audio.c index 94de7e86461..9f80f4e970b 100644 --- a/drivers/usb/gadget/audio.c +++ b/drivers/usb/gadget/audio.c @@ -42,9 +42,9 @@   * Instead:  allocate your own, using normal USB-IF procedures.   */ -/* Thanks to NetChip Technologies for donating this product ID. */ -#define AUDIO_VENDOR_NUM		0x0525	/* NetChip */ -#define AUDIO_PRODUCT_NUM		0xa4a1	/* Linux-USB Audio Gadget */ +/* Thanks to Linux Foundation for donating this product ID. */ +#define AUDIO_VENDOR_NUM		0x1d6b	/* Linux Foundation */ +#define AUDIO_PRODUCT_NUM		0x0101	/* Linux-USB Audio Gadget */  /*-------------------------------------------------------------------------*/ diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c index d006dc652e0..bd102f5052b 100644 --- a/drivers/usb/gadget/ether.c +++ b/drivers/usb/gadget/ether.c @@ -293,15 +293,16 @@ static int __init eth_bind(struct usb_composite_dev *cdev)  		/* CDC Subset */  		eth_config_driver.label = "CDC Subset/SAFE"; -		device_desc.idVendor = cpu_to_le16(SIMPLE_VENDOR_NUM), -		device_desc.idProduct = cpu_to_le16(SIMPLE_PRODUCT_NUM), -		device_desc.bDeviceClass = USB_CLASS_VENDOR_SPEC; +		device_desc.idVendor = cpu_to_le16(SIMPLE_VENDOR_NUM); +		device_desc.idProduct = cpu_to_le16(SIMPLE_PRODUCT_NUM); +		if (!has_rndis()) +			device_desc.bDeviceClass = USB_CLASS_VENDOR_SPEC;  	}  	if (has_rndis()) {  		/* RNDIS plus ECM-or-Subset */ -		device_desc.idVendor = cpu_to_le16(RNDIS_VENDOR_NUM), -		device_desc.idProduct = cpu_to_le16(RNDIS_PRODUCT_NUM), +		device_desc.idVendor = cpu_to_le16(RNDIS_VENDOR_NUM); +		device_desc.idProduct = cpu_to_le16(RNDIS_PRODUCT_NUM);  		device_desc.bNumConfigurations = 2;  	} diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c index 6829d596135..a3913519fd5 100644 --- a/drivers/usb/gadget/langwell_udc.c +++ b/drivers/usb/gadget/langwell_udc.c @@ -34,7 +34,6 @@  #include <linux/ioport.h>  #include <linux/sched.h>  #include <linux/slab.h> -#include <linux/smp_lock.h>  #include <linux/errno.h>  #include <linux/init.h>  #include <linux/timer.h> diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c index 0ce4e281984..ed21e263f83 100644 --- a/drivers/usb/gadget/pxa25x_udc.c +++ b/drivers/usb/gadget/pxa25x_udc.c @@ -139,7 +139,7 @@ static int is_vbus_present(void)  {  	struct pxa2xx_udc_mach_info		*mach = the_controller->mach; -	if (mach->gpio_vbus) { +	if (gpio_is_valid(mach->gpio_vbus)) {  		int value = gpio_get_value(mach->gpio_vbus);  		if (mach->gpio_vbus_inverted) @@ -158,7 +158,7 @@ static void pullup_off(void)  	struct pxa2xx_udc_mach_info		*mach = the_controller->mach;  	int off_level = mach->gpio_pullup_inverted; -	if (mach->gpio_pullup) +	if (gpio_is_valid(mach->gpio_pullup))  		gpio_set_value(mach->gpio_pullup, off_level);  	else if (mach->udc_command)  		mach->udc_command(PXA2XX_UDC_CMD_DISCONNECT); @@ -169,7 +169,7 @@ static void pullup_on(void)  	struct pxa2xx_udc_mach_info		*mach = the_controller->mach;  	int on_level = !mach->gpio_pullup_inverted; -	if (mach->gpio_pullup) +	if (gpio_is_valid(mach->gpio_pullup))  		gpio_set_value(mach->gpio_pullup, on_level);  	else if (mach->udc_command)  		mach->udc_command(PXA2XX_UDC_CMD_CONNECT); @@ -1000,7 +1000,7 @@ static int pxa25x_udc_pullup(struct usb_gadget *_gadget, int is_active)  	udc = container_of(_gadget, struct pxa25x_udc, gadget);  	/* not all boards support pullup control */ -	if (!udc->mach->gpio_pullup && !udc->mach->udc_command) +	if (!gpio_is_valid(udc->mach->gpio_pullup) && !udc->mach->udc_command)  		return -EOPNOTSUPP;  	udc->pullup = (is_active != 0); @@ -1802,11 +1802,13 @@ pxa25x_udc_irq(int irq, void *_dev)  					USIR0 |= tmp;  					handled = 1;  				} +#ifndef	CONFIG_USB_PXA25X_SMALL  				if (usir1 & tmp) {  					handle_ep(&dev->ep[i+8]);  					USIR1 |= tmp;  					handled = 1;  				} +#endif  			}  		} @@ -2160,7 +2162,7 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)  	dev->dev = &pdev->dev;  	dev->mach = pdev->dev.platform_data; -	if (dev->mach->gpio_vbus) { +	if (gpio_is_valid(dev->mach->gpio_vbus)) {  		if ((retval = gpio_request(dev->mach->gpio_vbus,  				"pxa25x_udc GPIO VBUS"))) {  			dev_dbg(&pdev->dev, @@ -2173,7 +2175,7 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)  	} else  		vbus_irq = 0; -	if (dev->mach->gpio_pullup) { +	if (gpio_is_valid(dev->mach->gpio_pullup)) {  		if ((retval = gpio_request(dev->mach->gpio_pullup,  				"pca25x_udc GPIO PULLUP"))) {  			dev_dbg(&pdev->dev, @@ -2256,10 +2258,10 @@ lubbock_fail0:  #endif  	free_irq(irq, dev);   err_irq1: -	if (dev->mach->gpio_pullup) +	if (gpio_is_valid(dev->mach->gpio_pullup))  		gpio_free(dev->mach->gpio_pullup);   err_gpio_pullup: -	if (dev->mach->gpio_vbus) +	if (gpio_is_valid(dev->mach->gpio_vbus))  		gpio_free(dev->mach->gpio_vbus);   err_gpio_vbus:  	clk_put(dev->clk); @@ -2294,11 +2296,11 @@ static int __exit pxa25x_udc_remove(struct platform_device *pdev)  		free_irq(LUBBOCK_USB_IRQ, dev);  	}  #endif -	if (dev->mach->gpio_vbus) { +	if (gpio_is_valid(dev->mach->gpio_vbus)) {  		free_irq(gpio_to_irq(dev->mach->gpio_vbus), dev);  		gpio_free(dev->mach->gpio_vbus);  	} -	if (dev->mach->gpio_pullup) +	if (gpio_is_valid(dev->mach->gpio_pullup))  		gpio_free(dev->mach->gpio_pullup);  	clk_put(dev->clk); @@ -2329,7 +2331,7 @@ static int pxa25x_udc_suspend(struct platform_device *dev, pm_message_t state)  	struct pxa25x_udc	*udc = platform_get_drvdata(dev);  	unsigned long flags; -	if (!udc->mach->gpio_pullup && !udc->mach->udc_command) +	if (!gpio_is_valid(udc->mach->gpio_pullup) && !udc->mach->udc_command)  		WARNING("USB host won't detect disconnect!\n");  	udc->suspended = 1; diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c index 2b4660e08c4..ca41b0b5afb 100644 --- a/drivers/usb/gadget/rndis.c +++ b/drivers/usb/gadget/rndis.c @@ -442,6 +442,8 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,  	case OID_802_3_MAC_OPTIONS:  		pr_debug("%s: OID_802_3_MAC_OPTIONS\n", __func__); +		*outbuf = cpu_to_le32(0); +		retval = 0;  		break;  	/* ieee802.3 statistics OIDs (table 4-4) */ diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c index 9a2b8920532..a9b452fe622 100644 --- a/drivers/usb/gadget/s3c2410_udc.c +++ b/drivers/usb/gadget/s3c2410_udc.c @@ -28,7 +28,6 @@  #include <linux/ioport.h>  #include <linux/sched.h>  #include <linux/slab.h> -#include <linux/smp_lock.h>  #include <linux/errno.h>  #include <linux/init.h>  #include <linux/timer.h>  |