Merge branches 'sh/hwblk' and 'sh/platform-updates'
这个提交包含在:
@@ -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
|
||||
|
@@ -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>
|
||||
|
@@ -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 */
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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>
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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) */
|
||||
|
@@ -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>
|
||||
|
在新工单中引用
屏蔽一个用户