projects/linux·commit 70d002bc

Merge commit master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 of HEAD

70d002bc · Linus Torvalds <[email protected]> · 2006-07-12 21:16:52 -07:00

* HEAD: (44 commits)
  [PATCH] USB: move usb-serial.h to include/linux/usb/
  [PATCH] USB: Anydata: Fixes wrong URB callback.
  [PATCH] USB: gadget section fixups
  [PATCH] USB: another unusual device
  [PATCH] USB: Add one VID/PID to ftdi_sio
  [PATCH] USB: unusual_devs entry for Sony DSC-H5
  [PATCH] USB: unusual_devs entry for Nokia E61
  [PATCH] USB: unusual_devs entry for Nokia N91
  [PATCH] USB: add ZyXEL vendor/product ID to rtl8150 driver
  [PATCH] USB: Option driver: new product ID
  [PATCH] USB: add support for WiseGroup., Ltd SmartJoy Dual PLUS Adapter
  [PATCH] USB: ipw.c driver fix
  [PATCH] USB: remove devfs information from Kconfig
  [PATCH] USB: remove empty destructor from drivers/usb/mon/mon_text.c
  [PATCH] USB: ipaq.c timing parameters
  [PATCH] USB: ipaq.c bugfixes
  [PATCH] USB: ehci: fix bogus alteration of a local variable
  [PATCH] USB: add driver for non-composite Sierra Wireless devices
  [PATCH] USB: fix pointer dereference in drivers/usb/misc/usblcd
  [PATCH] USB: Kill compiler warning in quirk_usb_handoff_ohci
  ...
Commit
70d002bccac5e107fafb95e83fcb7fc010a88695
Parents
7f0852f9 · a969888c

Merge commit. Changes below are compared with the first parent: 7f0852f9.

Changes

79 files changed · +1007 −442

FileStatusAddDelContent
Documentation/usb/usb-serial.txtmodified+2−2View file
drivers/usb/Kconfigmodified+1−0View file
drivers/usb/Makefilemodified+1−1View file
drivers/usb/class/cdc-acm.cmodified+26−23View file
drivers/usb/core/Kconfigmodified+0−3View file
drivers/usb/core/hub.cmodified+9−1View file
drivers/usb/core/inode.cmodified+1−1View file
drivers/usb/gadget/epautoconf.cmodified+8−8View file
drivers/usb/gadget/ether.cmodified+4−4View file
drivers/usb/gadget/file_storage.cmodified+1−1View file
drivers/usb/gadget/rndis.cmodified+1−1View file
drivers/usb/gadget/rndis.hmodified+1−1View file
drivers/usb/gadget/serial.cmodified+1−1View file
drivers/usb/gadget/zero.cmodified+1−1View file
drivers/usb/host/ehci-au1xxx.cmodified+10−13View file
drivers/usb/host/ehci-hcd.cmodified+4−3View file
drivers/usb/host/ohci-au1xxx.cmodified+5−2View file
drivers/usb/host/ohci-ep93xx.cadded+225−0View file
drivers/usb/host/ohci-hcd.cmodified+5−0View file
drivers/usb/host/ohci-hub.cmodified+2−2View file
drivers/usb/host/pci-quirks.cmodified+4−4View file
drivers/usb/input/hid-core.cmodified+4−0View file
drivers/usb/misc/Kconfigmodified+5−5View file
drivers/usb/misc/Makefilemodified+1−1View file
drivers/usb/misc/cy7c63.cdeleted+0−244View before deletion
drivers/usb/misc/cypress_cy7c63.cadded+279−0View file
drivers/usb/misc/usblcd.cmodified+2−4View file
drivers/usb/mon/mon_text.cmodified+1−6View file
drivers/usb/net/rtl8150.cmodified+3−0View file
drivers/usb/serial/Kconfigmodified+11−0View file
drivers/usb/serial/Makefilemodified+1−0View file
drivers/usb/serial/airprime.cmodified+1−1View file
drivers/usb/serial/anydata.cmodified+2−2View file
drivers/usb/serial/ark3116.cmodified+1−1View file
drivers/usb/serial/belkin_sa.cmodified+1−1View file
drivers/usb/serial/bus.cmodified+1−1View file
drivers/usb/serial/console.cmodified+1−2View file
drivers/usb/serial/cp2101.cmodified+1−1View file
drivers/usb/serial/cyberjack.cmodified+1−1View file
drivers/usb/serial/cypress_m8.cmodified+1−1View file
drivers/usb/serial/digi_acceleport.cmodified+1−1View file
drivers/usb/serial/empeg.cmodified+1−1View file
drivers/usb/serial/ezusb.cmodified+1−1View file
drivers/usb/serial/ftdi_sio.cmodified+94−14View file
drivers/usb/serial/ftdi_sio.hmodified+15−0View file
drivers/usb/serial/funsoft.cmodified+1−1View file
drivers/usb/serial/garmin_gps.cmodified+1−2View file
drivers/usb/serial/generic.cmodified+2−1View file
drivers/usb/serial/hp4x.cmodified+1−1View file
drivers/usb/serial/io_edgeport.cmodified+1−1View file
drivers/usb/serial/io_ti.cmodified+1−1View file
drivers/usb/serial/ipaq.cmodified+18−7View file
drivers/usb/serial/ipw.cmodified+3−1View file
drivers/usb/serial/ir-usb.cmodified+1−1View file
drivers/usb/serial/keyspan.cmodified+1−1View file
drivers/usb/serial/keyspan_pda.cmodified+1−2View file
drivers/usb/serial/kl5kusb105.cmodified+1−1View file
drivers/usb/serial/kobil_sct.cmodified+1−1View file
drivers/usb/serial/mct_u232.cmodified+1−1View file
drivers/usb/serial/navman.cmodified+1−1View file
drivers/usb/serial/omninet.cmodified+1−1View file
drivers/usb/serial/option.cmodified+6−2View file
drivers/usb/serial/pl2303.cmodified+3−1View file
drivers/usb/serial/pl2303.hmodified+5−0View file
drivers/usb/serial/safe_serial.cmodified+1−1View file
drivers/usb/serial/sierra.cadded+75−0View file
drivers/usb/serial/ti_usb_3410_5052.cmodified+1−1View file
drivers/usb/serial/usb-serial.cmodified+10−15View file
drivers/usb/serial/visor.cmodified+34−5View file
drivers/usb/serial/whiteheat.cmodified+1−1View file
drivers/usb/storage/scsiglue.cmodified+5−7View file
drivers/usb/storage/unusual_devs.hmodified+55−5View file
drivers/usb/storage/usb.cmodified+19−10View file
drivers/usb/storage/usb.hmodified+0−4View file
include/linux/usb.hmodified+1−1View file
drivers/usb/serial/usb-serial.h → include/linux/usb/serial.hrenamed+3−3View file
include/linux/usb_ch9.hmodified+7−0View file
include/linux/usb_gadget.hmodified+2−2View file
include/linux/usb_usual.hmodified+2−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/usb/usb-serial.txt

View file
diff --git a/Documentation/usb/usb-serial.txt b/Documentation/usb/usb-serial.txt
index f001cd9..02b0f7b 100644
--- a/Documentation/usb/usb-serial.txt
+++ b/Documentation/usb/usb-serial.txt
@@ -399,10 +399,10 @@ REINER SCT cyberJack pinpad/e-com USB chipcard reader
Prolific PL2303 Driver
- This driver support any device that has the PL2303 chip from Prolific
+ This driver supports any device that has the PL2303 chip from Prolific
in it. This includes a number of single port USB to serial
converters and USB GPS devices. Devices from Aten (the UC-232) and
- IO-Data work with this driver.
+ IO-Data work with this driver, as does the DCU-11 mobile-phone cable.
For any questions or problems with this driver, please contact Greg
Kroah-Hartman at [email protected]

drivers/usb/Kconfig

View file
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 7fdbc5d..2ee742d 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -23,6 +23,7 @@ config USB_ARCH_HAS_OHCI
default y if ARCH_LH7A404
default y if ARCH_S3C2410
default y if PXA27x
+ default y if ARCH_EP93XX
default y if ARCH_AT91RM9200
# PPC:
default y if STB03xxx

drivers/usb/Makefile

View file
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index c7123bf..4710eb0 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -48,7 +48,7 @@ obj-$(CONFIG_USB_MICROTEK) += image/
obj-$(CONFIG_USB_SERIAL) += serial/
obj-$(CONFIG_USB_AUERSWALD) += misc/
-obj-$(CONFIG_USB_CY7C63) += misc/
+obj-$(CONFIG_USB_CYPRESS_CY7C63)+= misc/
obj-$(CONFIG_USB_CYTHERM) += misc/
obj-$(CONFIG_USB_EMI26) += misc/
obj-$(CONFIG_USB_EMI62) += misc/

drivers/usb/class/cdc-acm.c

View file
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 3670d77..ca90326 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -291,13 +291,13 @@ static void acm_read_bulk(struct urb *urb, struct pt_regs *regs)
struct acm_ru *rcv = urb->context;
struct acm *acm = rcv->instance;
int status = urb->status;
- dbg("Entering acm_read_bulk with status %d\n", urb->status);
+ dbg("Entering acm_read_bulk with status %d", urb->status);
if (!ACM_READY(acm))
return;
if (status)
- dev_dbg(&acm->data->dev, "bulk rx status %d\n", status);
+ dev_dbg(&acm->data->dev, "bulk rx status %d", status);
buf = rcv->buffer;
buf->size = urb->actual_length;
@@ -343,7 +343,7 @@ next_buffer:
list_del(&buf->list);
spin_unlock(&acm->read_lock);
- dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d\n", buf, buf->size);
+ dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d", buf, buf->size);
tty_buffer_request_room(tty, buf->size);
if (!acm->throttle)
@@ -394,7 +394,7 @@ urbs:
rcv->urb->transfer_dma = buf->dma;
rcv->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
- dbg("acm_rx_tasklet: sending urb 0x%p, rcv 0x%p, buf 0x%p\n", rcv->urb, rcv, buf);
+ dbg("acm_rx_tasklet: sending urb 0x%p, rcv 0x%p, buf 0x%p", rcv->urb, rcv, buf);
/* This shouldn't kill the driver as unsuccessful URBs are returned to the
free-urbs-pool and resubmited ASAP */
@@ -413,7 +413,7 @@ static void acm_write_bulk(struct urb *urb, struct pt_regs *regs)
{
struct acm *acm = (struct acm *)urb->context;
- dbg("Entering acm_write_bulk with status %d\n", urb->status);
+ dbg("Entering acm_write_bulk with status %d", urb->status);
acm_write_done(acm);
acm_write_start(acm);
@@ -424,7 +424,7 @@ static void acm_write_bulk(struct urb *urb, struct pt_regs *regs)
static void acm_softint(void *private)
{
struct acm *acm = private;
- dbg("Entering acm_softint.\n");
+ dbg("Entering acm_softint.");
if (!ACM_READY(acm))
return;
@@ -440,7 +440,7 @@ static int acm_tty_open(struct tty_struct *tty, struct file *filp)
struct acm *acm;
int rv = -EINVAL;
int i;
- dbg("Entering acm_tty_open.\n");
+ dbg("Entering acm_tty_open.");
mutex_lock(&open_mutex);
@@ -541,7 +541,7 @@ static int acm_tty_write(struct tty_struct *tty, const unsigned char *buf, int c
int wbn;
struct acm_wb *wb;
- dbg("Entering acm_tty_write to write %d bytes,\n", count);
+ dbg("Entering acm_tty_write to write %d bytes,", count);
if (!ACM_READY(acm))
return -EINVAL;
@@ -793,7 +793,7 @@ static int acm_probe (struct usb_interface *intf,
if (!buflen) {
if (intf->cur_altsetting->endpoint->extralen && intf->cur_altsetting->endpoint->extra) {
- dev_dbg(&intf->dev,"Seeking extra descriptors on endpoint\n");
+ dev_dbg(&intf->dev,"Seeking extra descriptors on endpoint");
buflen = intf->cur_altsetting->endpoint->extralen;
buffer = intf->cur_altsetting->endpoint->extra;
} else {
@@ -842,24 +842,24 @@ next_desc:
if (!union_header) {
if (call_interface_num > 0) {
- dev_dbg(&intf->dev,"No union descriptor, using call management descriptor\n");
+ dev_dbg(&intf->dev,"No union descriptor, using call management descriptor");
data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num));
control_interface = intf;
} else {
- dev_dbg(&intf->dev,"No union descriptor, giving up\n");
+ dev_dbg(&intf->dev,"No union descriptor, giving up");
return -ENODEV;
}
} else {
control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0);
data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = union_header->bSlaveInterface0));
if (!control_interface || !data_interface) {
- dev_dbg(&intf->dev,"no interfaces\n");
+ dev_dbg(&intf->dev,"no interfaces");
return -ENODEV;
}
}
if (data_interface_num != call_interface_num)
- dev_dbg(&intf->dev,"Seperate call control interface. That is not fully supported.\n");
+ dev_dbg(&intf->dev,"Seperate call control interface. That is not fully supported.");
skip_normal_probe:
@@ -867,7 +867,7 @@ skip_normal_probe:
if (data_interface->cur_altsetting->desc.bInterfaceClass != CDC_DATA_INTERFACE_TYPE) {
if (control_interface->cur_altsetting->desc.bInterfaceClass == CDC_DATA_INTERFACE_TYPE) {
struct usb_interface *t;
- dev_dbg(&intf->dev,"Your device has switched interfaces.\n");
+ dev_dbg(&intf->dev,"Your device has switched interfaces.");
t = control_interface;
control_interface = data_interface;
@@ -878,7 +878,7 @@ skip_normal_probe:
}
if (usb_interface_claimed(data_interface)) { /* valid in this context */
- dev_dbg(&intf->dev,"The data interface isn't available\n");
+ dev_dbg(&intf->dev,"The data interface isn't available");
return -EBUSY;
}
@@ -895,7 +895,7 @@ skip_normal_probe:
if ((epread->bEndpointAddress & USB_DIR_IN) != USB_DIR_IN) {
/* descriptors are swapped */
struct usb_endpoint_descriptor *t;
- dev_dbg(&intf->dev,"The data interface has switched endpoints\n");
+ dev_dbg(&intf->dev,"The data interface has switched endpoints");
t = epread;
epread = epwrite;
@@ -910,7 +910,7 @@ skip_normal_probe:
}
if (!(acm = kzalloc(sizeof(struct acm), GFP_KERNEL))) {
- dev_dbg(&intf->dev, "out of memory (acm kzalloc)\n");
+ dev_dbg(&intf->dev, "out of memory (acm kzalloc)");
goto alloc_fail;
}
@@ -936,26 +936,26 @@ skip_normal_probe:
buf = usb_buffer_alloc(usb_dev, ctrlsize, GFP_KERNEL, &acm->ctrl_dma);
if (!buf) {
- dev_dbg(&intf->dev, "out of memory (ctrl buffer alloc)\n");
+ dev_dbg(&intf->dev, "out of memory (ctrl buffer alloc)");
goto alloc_fail2;
}
acm->ctrl_buffer = buf;
if (acm_write_buffers_alloc(acm) < 0) {
- dev_dbg(&intf->dev, "out of memory (write buffer alloc)\n");
+ dev_dbg(&intf->dev, "out of memory (write buffer alloc)");
goto alloc_fail4;
}
acm->ctrlurb = usb_alloc_urb(0, GFP_KERNEL);
if (!acm->ctrlurb) {
- dev_dbg(&intf->dev, "out of memory (ctrlurb kmalloc)\n");
+ dev_dbg(&intf->dev, "out of memory (ctrlurb kmalloc)");
goto alloc_fail5;
}
for (i = 0; i < num_rx_buf; i++) {
struct acm_ru *rcv = &(acm->ru[i]);
if (!(rcv->urb = usb_alloc_urb(0, GFP_KERNEL))) {
- dev_dbg(&intf->dev, "out of memory (read urbs usb_alloc_urb)\n");
+ dev_dbg(&intf->dev, "out of memory (read urbs usb_alloc_urb)");
goto alloc_fail7;
}
@@ -966,13 +966,13 @@ skip_normal_probe:
struct acm_rb *buf = &(acm->rb[i]);
if (!(buf->base = usb_buffer_alloc(acm->dev, readsize, GFP_KERNEL, &buf->dma))) {
- dev_dbg(&intf->dev, "out of memory (read bufs usb_buffer_alloc)\n");
+ dev_dbg(&intf->dev, "out of memory (read bufs usb_buffer_alloc)");
goto alloc_fail7;
}
}
acm->writeurb = usb_alloc_urb(0, GFP_KERNEL);
if (!acm->writeurb) {
- dev_dbg(&intf->dev, "out of memory (writeurb kmalloc)\n");
+ dev_dbg(&intf->dev, "out of memory (writeurb kmalloc)");
goto alloc_fail7;
}
@@ -1086,6 +1086,9 @@ static struct usb_device_id acm_ids[] = {
{ USB_DEVICE(0x0ace, 0x1608), /* ZyDAS 56K USB MODEM */
.driver_info = SINGLE_RX_URB, /* firmware bug */
},
+ { USB_DEVICE(0x0ace, 0x1611), /* ZyDAS 56K USB MODEM - new version */
+ .driver_info = SINGLE_RX_URB, /* firmware bug */
+ },
/* control interfaces with various AT-command sets */
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_ACM_PROTO_AT_V25TER) },

drivers/usb/core/Kconfig

View file
diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig
index a08787e..6e3b535 100644
--- a/drivers/usb/core/Kconfig
+++ b/drivers/usb/core/Kconfig
@@ -31,9 +31,6 @@ config USB_DEVICEFS
For the format of the various /proc/bus/usb/ files, please read
<file:Documentation/usb/proc_usb_info.txt>.
- Please note that this code is completely unrelated to devfs, the
- "/dev file system support".
-
Most users want to say Y here.
config USB_BANDWIDTH

drivers/usb/core/hub.c

View file
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 875596e..26c8cb5 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1790,7 +1790,10 @@ static int finish_device_resume(struct usb_device *udev)
* and device drivers will know about any resume quirks.
*/
status = usb_get_status(udev, USB_RECIP_DEVICE, 0, &devstatus);
- if (status < 2)
+ if (status >= 0)
+ status = (status == 2 ? 0 : -ENODEV);
+
+ if (status)
dev_dbg(&udev->dev,
"gone after usb resume? status %d\n",
status);
@@ -1879,7 +1882,12 @@ hub_port_resume(struct usb_hub *hub, int port1, struct usb_device *udev)
dev_dbg(hub->intfdev,
"port %d status %04x.%04x after resume, %d\n",
port1, portchange, devstatus, status);
+ if (status >= 0)
+ status = -ENODEV;
} else {
+ if (portchange & USB_PORT_STAT_C_SUSPEND)
+ clear_port_feature(hub->hdev, port1,
+ USB_PORT_FEAT_C_SUSPEND);
/* TRSMRCY = 10 msec */
msleep(10);
if (udev)

drivers/usb/core/inode.c

View file
diff --git a/drivers/usb/core/inode.c b/drivers/usb/core/inode.c
index f48c3db..3182c22 100644
--- a/drivers/usb/core/inode.c
+++ b/drivers/usb/core/inode.c
@@ -695,7 +695,7 @@ static void usbfs_remove_device(struct usb_device *dev)
wake_up_all(&ds->wait);
list_del_init(&ds->list);
if (ds->discsignr) {
- sinfo.si_signo = SIGPIPE;
+ sinfo.si_signo = ds->discsignr;
sinfo.si_errno = EPIPE;
sinfo.si_code = SI_ASYNCIO;
sinfo.si_addr = ds->disccontext;

drivers/usb/gadget/epautoconf.c

View file
diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
index f7c6d75..53d5845 100644
--- a/drivers/usb/gadget/epautoconf.c
+++ b/drivers/usb/gadget/epautoconf.c
@@ -34,12 +34,12 @@
/* we must assign addresses for configurable endpoints (like net2280) */
-static __initdata unsigned epnum;
+static __devinitdata unsigned epnum;
// #define MANY_ENDPOINTS
#ifdef MANY_ENDPOINTS
/* more than 15 configurable endpoints */
-static __initdata unsigned in_epnum;
+static __devinitdata unsigned in_epnum;
#endif
@@ -59,7 +59,7 @@ static __initdata unsigned in_epnum;
* NOTE: each endpoint is unidirectional, as specified by its USB
* descriptor; and isn't specific to a configuration or altsetting.
*/
-static int __init
+static int __devinit
ep_matches (
struct usb_gadget *gadget,
struct usb_ep *ep,
@@ -73,7 +73,7 @@ ep_matches (
/* endpoint already claimed? */
if (0 != ep->driver_data)
return 0;
-
+
/* only support ep0 for portable CONTROL traffic */
type = desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
if (USB_ENDPOINT_XFER_CONTROL == type)
@@ -186,7 +186,7 @@ ep_matches (
return 1;
}
-static struct usb_ep * __init
+static struct usb_ep * __devinit
find_ep (struct usb_gadget *gadget, const char *name)
{
struct usb_ep *ep;
@@ -228,7 +228,7 @@ find_ep (struct usb_gadget *gadget, const char *name)
*
* On failure, this returns a null endpoint descriptor.
*/
-struct usb_ep * __init usb_ep_autoconfig (
+struct usb_ep * __devinit usb_ep_autoconfig (
struct usb_gadget *gadget,
struct usb_endpoint_descriptor *desc
)
@@ -276,7 +276,7 @@ struct usb_ep * __init usb_ep_autoconfig (
return ep;
}
- /* Second, look at endpoints until an unclaimed one looks usable */
+ /* Second, look at endpoints until an unclaimed one looks usable */
list_for_each_entry (ep, &gadget->ep_list, ep_list) {
if (ep_matches (gadget, ep, desc))
return ep;
@@ -295,7 +295,7 @@ struct usb_ep * __init usb_ep_autoconfig (
* state such as ep->driver_data and the record of assigned endpoints
* used by usb_ep_autoconfig().
*/
-void __init usb_ep_autoconfig_reset (struct usb_gadget *gadget)
+void __devinit usb_ep_autoconfig_reset (struct usb_gadget *gadget)
{
struct usb_ep *ep;

drivers/usb/gadget/ether.c

View file
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 8320fce..4fe1bec 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -2131,7 +2131,7 @@ eth_req_free (struct usb_ep *ep, struct usb_request *req)
}
-static void __exit
+static void /* __init_or_exit */
eth_unbind (struct usb_gadget *gadget)
{
struct eth_dev *dev = get_gadget_data (gadget);
@@ -2158,7 +2158,7 @@ eth_unbind (struct usb_gadget *gadget)
set_gadget_data (gadget, NULL);
}
-static u8 __init nibble (unsigned char c)
+static u8 __devinit nibble (unsigned char c)
{
if (likely (isdigit (c)))
return c - '0';
@@ -2168,7 +2168,7 @@ static u8 __init nibble (unsigned char c)
return 0;
}
-static int __init get_ether_addr(const char *str, u8 *dev_addr)
+static int __devinit get_ether_addr(const char *str, u8 *dev_addr)
{
if (str) {
unsigned i;
@@ -2189,7 +2189,7 @@ static int __init get_ether_addr(const char *str, u8 *dev_addr)
return 1;
}
-static int __init
+static int __devinit
eth_bind (struct usb_gadget *gadget)
{
struct eth_dev *dev;

drivers/usb/gadget/file_storage.c

View file
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
index b1a9cf0..8d7f1e8 100644
--- a/drivers/usb/gadget/file_storage.c
+++ b/drivers/usb/gadget/file_storage.c
@@ -3691,7 +3691,7 @@ static void lun_release(struct device *dev)
kref_put(&fsg->ref, fsg_release);
}
-static void __exit fsg_unbind(struct usb_gadget *gadget)
+static void /* __init_or_exit */ fsg_unbind(struct usb_gadget *gadget)
{
struct fsg_dev *fsg = get_gadget_data(gadget);
int i;

drivers/usb/gadget/rndis.c

View file
diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c
index 354670d..408c338 100644
--- a/drivers/usb/gadget/rndis.c
+++ b/drivers/usb/gadget/rndis.c
@@ -1398,7 +1398,7 @@ static struct proc_dir_entry *rndis_connect_state [RNDIS_MAX_CONFIGS];
#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
-int __init rndis_init (void)
+int __devinit rndis_init (void)
{
u8 i;

drivers/usb/gadget/rndis.h

View file
diff --git a/drivers/usb/gadget/rndis.h b/drivers/usb/gadget/rndis.h
index 2956608..4c3c725 100644
--- a/drivers/usb/gadget/rndis.h
+++ b/drivers/usb/gadget/rndis.h
@@ -264,7 +264,7 @@ int rndis_signal_disconnect (int configNr);
int rndis_state (int configNr);
extern void rndis_set_host_mac (int configNr, const u8 *addr);
-int __init rndis_init (void);
+int __devinit rndis_init (void);
void rndis_exit (void);
#endif /* _LINUX_RNDIS_H */

drivers/usb/gadget/serial.c

View file
diff --git a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c
index 30d7664..e762aa1 100644
--- a/drivers/usb/gadget/serial.c
+++ b/drivers/usb/gadget/serial.c
@@ -1473,7 +1473,7 @@ autoconf_fail:
* Called on module unload. Frees the control request and device
* structure.
*/
-static void __exit gs_unbind(struct usb_gadget *gadget)
+static void /* __init_or_exit */ gs_unbind(struct usb_gadget *gadget)
{
struct gs_dev *dev = get_gadget_data(gadget);

drivers/usb/gadget/zero.c

View file
diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c
index 3a08a7a..b7018ee 100644
--- a/drivers/usb/gadget/zero.c
+++ b/drivers/usb/gadget/zero.c
@@ -1121,7 +1121,7 @@ zero_autoresume (unsigned long _dev)
/*-------------------------------------------------------------------------*/
-static void __exit
+static void /* __init_or_exit */
zero_unbind (struct usb_gadget *gadget)
{
struct zero_dev *dev = get_gadget_data (gadget);

drivers/usb/host/ehci-au1xxx.c

View file
diff --git a/drivers/usb/host/ehci-au1xxx.c b/drivers/usb/host/ehci-au1xxx.c
index d66867a..26ed757 100644
--- a/drivers/usb/host/ehci-au1xxx.c
+++ b/drivers/usb/host/ehci-au1xxx.c
@@ -41,8 +41,6 @@
#endif
#define USBH_DISABLE (USB_MCFG_EBMEN | USB_MCFG_EMEMEN)
-#endif /* Au1200 */
-
extern int usb_disabled(void);
/*-------------------------------------------------------------------------*/
@@ -107,9 +105,9 @@ int usb_ehci_au1xxx_probe(const struct hc_driver *driver,
/* Au1200 AB USB does not support coherent memory */
if (!(read_c0_prid() & 0xff)) {
- pr_info("%s: this is chip revision AB!\n", dev->dev.name);
+ pr_info("%s: this is chip revision AB!\n", dev->name);
pr_info("%s: update your board or re-configure the kernel\n",
- dev->dev.name);
+ dev->name);
return -ENODEV;
}
#endif
@@ -228,9 +226,8 @@ static const struct hc_driver ehci_au1xxx_hc_driver = {
/*-------------------------------------------------------------------------*/
-static int ehci_hcd_au1xxx_drv_probe(struct device *dev)
+static int ehci_hcd_au1xxx_drv_probe(struct platform_device *pdev)
{
- struct platform_device *pdev = to_platform_device(dev);
struct usb_hcd *hcd = NULL;
int ret;
@@ -243,10 +240,9 @@ static int ehci_hcd_au1xxx_drv_probe(struct device *dev)
return ret;
}
-static int ehci_hcd_au1xxx_drv_remove(struct device *dev)
+static int ehci_hcd_au1xxx_drv_remove(struct platform_device *pdev)
{
- struct platform_device *pdev = to_platform_device(dev);
- struct usb_hcd *hcd = dev_get_drvdata(dev);
+ struct usb_hcd *hcd = platform_get_drvdata(pdev);
usb_ehci_au1xxx_remove(hcd, pdev);
return 0;
@@ -269,12 +265,13 @@ static int ehci_hcd_au1xxx_drv_resume(struct device *dev)
}
*/
MODULE_ALIAS("au1xxx-ehci");
-/* FIXME use "struct platform_driver" */
-static struct device_driver ehci_hcd_au1xxx_driver = {
- .name = "au1xxx-ehci",
- .bus = &platform_bus_type,
+static struct platform_driver ehci_hcd_au1xxx_driver = {
.probe = ehci_hcd_au1xxx_drv_probe,
.remove = ehci_hcd_au1xxx_drv_remove,
/*.suspend = ehci_hcd_au1xxx_drv_suspend, */
/*.resume = ehci_hcd_au1xxx_drv_resume, */
+ .driver = {
+ .name = "au1xxx-ehci",
+ .bus = &platform_bus_type
+ }
};

drivers/usb/host/ehci-hcd.c

View file
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index cee6f53..85b0b4a 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -625,10 +625,11 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd, struct pt_regs *regs)
writel (status | CMD_RUN, &ehci->regs->command);
while (i--) {
- status = readl (&ehci->regs->port_status [i]);
- if (status & PORT_OWNER)
+ int pstatus = readl (&ehci->regs->port_status [i]);
+
+ if (pstatus & PORT_OWNER)
continue;
- if (!(status & PORT_RESUME)
+ if (!(pstatus & PORT_RESUME)
|| ehci->reset_done [i] != 0)
continue;

drivers/usb/host/ohci-au1xxx.c

View file
diff --git a/drivers/usb/host/ohci-au1xxx.c b/drivers/usb/host/ohci-au1xxx.c
index 689261e..822914e 100644
--- a/drivers/usb/host/ohci-au1xxx.c
+++ b/drivers/usb/host/ohci-au1xxx.c
@@ -101,13 +101,16 @@ static void au1xxx_start_ohc(struct platform_device *dev)
#endif /* Au1200 */
+#ifndef CONFIG_SOC_AU1200
/* wait for reset complete (read register twice; see au1500 errata) */
while (au_readl(USB_HOST_CONFIG),
!(au_readl(USB_HOST_CONFIG) & USBH_ENABLE_RD))
+#endif
udelay(1000);
printk(KERN_DEBUG __FILE__
": Clock to USB host has been enabled \n");
+#endif
}
static void au1xxx_stop_ohc(struct platform_device *dev)
@@ -157,9 +160,9 @@ static int usb_ohci_au1xxx_probe(const struct hc_driver *driver,
/* Au1200 AB USB does not support coherent memory */
if (!(read_c0_prid() & 0xff)) {
pr_info("%s: this is chip revision AB !!\n",
- dev->dev.name);
+ dev->name);
pr_info("%s: update your board or re-configure the kernel\n",
- dev->dev.name);
+ dev->name);
return -ENODEV;
}
#endif

drivers/usb/host/ohci-ep93xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-hub.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/pci-quirks.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/input/hid-core.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/cy7c63.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/usb/misc/cypress_cy7c63.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/usblcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/mon/mon_text.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/net/rtl8150.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/airprime.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/anydata.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ark3116.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/belkin_sa.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/bus.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/console.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/cp2101.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/cyberjack.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/cypress_m8.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/digi_acceleport.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/empeg.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ezusb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ftdi_sio.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ftdi_sio.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/funsoft.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/garmin_gps.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/generic.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/hp4x.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/io_edgeport.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/io_ti.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ipaq.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ipw.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ir-usb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/keyspan.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/keyspan_pda.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/kl5kusb105.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/kobil_sct.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/mct_u232.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/navman.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/omninet.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/option.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/pl2303.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/pl2303.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/safe_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/sierra.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ti_usb_3410_5052.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/usb-serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/visor.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/whiteheat.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/scsiglue.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/unusual_devs.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/usb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/usb.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/serial.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb_ch9.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb_gadget.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb_usual.h

View file

This diff is incomplete. Download the complete patch.