openwrt/staging/blogic.git
17 years agoUSB: struct usb_device: change flag to bitflag
Alan Stern [Mon, 20 Nov 2006 16:12:22 +0000 (11:12 -0500)]
USB: struct usb_device: change flag to bitflag

This patch (as816) changes an existing flag in the usb_device
structure to a bitflag, preparing the way for more bitflags to come
in the future.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoOHCI: make autostop conditional on CONFIG_PM
Alan Stern [Mon, 20 Nov 2006 16:06:59 +0000 (11:06 -0500)]
OHCI: make autostop conditional on CONFIG_PM

Unlike UHCI, OHCI does not exert any DMA load on the system when no
devices are connected.  Consequently there is no advantage to doing
an autostop other than the power savings, so we shouldn't compile the
necessary code unless CONFIG_PM is enabled.

This patch (as820) makes the root-hub suspend and resume routines
conditional on CONFIG_PM.  It also prevents autostop from activating
if the device_may_wakeup flag isn't set; some people use this flag to
alert the driver about Resume-Detect bugs in the hardware.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: Add autosuspend support to the hub driver
Alan Stern [Thu, 9 Nov 2006 19:44:33 +0000 (14:44 -0500)]
USB: Add autosuspend support to the hub driver

This patch (as742b) adds autosuspend/autoresume support to the USB hub
driver.  The largest aspect of the change is that we no longer need a
special flag for root hubs that want to be resumed.  Now every hub is
autoresumed whenever khubd needs to access it.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoEHCI: Fix root-hub and port suspend/resume problems
Alan Stern [Thu, 9 Nov 2006 19:42:16 +0000 (14:42 -0500)]
EHCI: Fix root-hub and port suspend/resume problems

This patch (as738b) fixes numerous problems in the controller/root-hub
suspend/resume/remote-wakeup support in ehci-hcd:

The bus_resume() routine should wake up only the ports that
were suspended by bus_suspend().  Ports that were already
suspended should remain that way.

The interrupt mask is used to detect loss of power in the
bus_resume() routine (if the mask is 0 then power was lost).
However bus_suspend() always sets the mask to 0.  Instead the
mask should retain its normal value, with port-change-detect
interrupts disabled if remote wakeup is turned off.

The interrupt mask should be reset to its correct value at the
end of bus_resume() regardless of whether power was lost.

bus_resume() reinitializes the operational registers if power
was lost.  However those registers are not in the aux power
well, hence they can lose their values whenever the controller
is put into D3.  They should always be reinitialized.

When a port-change interrupt occurs and the root hub is
suspended, the interrupt handler should request a root-hub
resume instead of starting up the controller all by itself.

There's no need for the interrupt handler to request a
root-hub resume every time a suspended port sends a
remote-wakeup request.

The pci_resume() method doesn't need to check for connected
ports when deciding whether or not to reset the controller.
It can make that decision based on whether Vaux power was
maintained.

Even when the controller does not need to be reset,
pci_resume() must undo the effect of pci_suspend() by
re-enabling the interrupt mask.

If power was lost, pci_resume() must not call ehci_run().
At this point the root hub is still supposed to be suspended,
not running.  It's enough to rewrite the command register and
set the configured_flag.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: create a new thread for every USB device found during the probe sequence
Greg Kroah-Hartman [Fri, 11 Aug 2006 08:55:12 +0000 (01:55 -0700)]
USB: create a new thread for every USB device found during the probe sequence

Might speed up some systems.  If nothing else, a bad driver should not
take the whole USB subsystem down with it.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: add driver for the USB debug devices
Greg Kroah-Hartman [Tue, 9 Apr 2002 19:14:34 +0000 (12:14 -0700)]
USB: add driver for the USB debug devices

It's a simple usb-serial driver that just creates a tty device to read
and write from.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: added dynamic major number for USB endpoints
Sarah Bailey [Sun, 19 Nov 2006 06:30:16 +0000 (22:30 -0800)]
USB: added dynamic major number for USB endpoints

This patch is an update for Greg K-H's proposed usbfs2:
http://sourceforge.net/mailarchive/message.php?msg_id=19295229

It creates a dynamic major for USB endpoints and fixes
the endpoint minor calculation.

Signed-off-by: Sarah Bailey <saharabeara@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: pegasus error path not resetting task's state
Oliver Neukum [Thu, 23 Nov 2006 14:40:17 +0000 (15:40 +0100)]
USB: pegasus error path not resetting task's state

there is an error path in the pegasus driver which can leave
the task in TASK_UNINTERRUPTIBLE. Depending on when it
schedules next, this can be bad.

Signed-off-by: Oliver Neukum <oliver@neukum.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: endianness fix for asix.c
Oliver Neukum [Thu, 23 Nov 2006 11:45:31 +0000 (12:45 +0100)]
USB: endianness fix for asix.c

the latest update for asix.c reverted some endianness fixes. This
reinstates them.

Signed-off-by: Oliver Neukum <oliver@neukum.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: build the appledisplay driver
Adrian Bunk [Fri, 24 Nov 2006 02:24:03 +0000 (03:24 +0100)]
USB: build the appledisplay driver

We do already have both the code and a config option, so why not build
this driver?  ;-)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB serial: replace kmalloc+memset with kzalloc
Burman Yan [Wed, 22 Nov 2006 18:54:38 +0000 (20:54 +0200)]
USB serial: replace kmalloc+memset with kzalloc

Replace kmalloc+memset with kzalloc

Signed-off-by: Yan Burman <yan_952@hotmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: hid-core: canonical defines for Apple USB device IDs
Julien BLACHE [Wed, 15 Nov 2006 05:00:17 +0000 (00:00 -0500)]
USB: hid-core: canonical defines for Apple USB device IDs

Use canonical defines for the Apple USB device IDs.
Also add the Geyser IV devices missing in my previous patch.

Signed-off-by: Julien BLACHE <jb@jblache.org>
Acked-by: Dmitry Torokhov <dtor@insightbb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: idmouse cleanup
Mariusz Kozlowski [Mon, 6 Nov 2006 16:37:20 +0000 (17:37 +0100)]
USB: idmouse cleanup

Just digging through code and found these needless variable initializations. So here is the patch.

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: make drivers/usb/core/driver.c:usb_device_match() static
Adrian Bunk [Tue, 21 Nov 2006 21:02:54 +0000 (22:02 +0100)]
USB: make drivers/usb/core/driver.c:usb_device_match() static

usb_device_match() can now become static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: lh7a40x_udc remove double declaration
David Brownell [Mon, 20 Nov 2006 19:41:39 +0000 (11:41 -0800)]
USB: lh7a40x_udc remove double declaration

Remove minor double-declaration goof.

Signed-off-by: Milan Svoboda <msvoboda@ra.rockwell.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: pxa2xx_udc recognizes ixp425 rev b0 chip
David Brownell [Mon, 20 Nov 2006 19:38:57 +0000 (11:38 -0800)]
USB: pxa2xx_udc recognizes ixp425 rev b0 chip

Make the pxa2xx_udc driver recognize a newer revision of the IXP425 chip.

Signed-off-by: Milan Svoboda <msvoboda@ra.rockwell.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousbtouchscreen: add support for DMC TSC-10/25 devices
Holger Schurig [Fri, 17 Nov 2006 21:50:15 +0000 (22:50 +0100)]
usbtouchscreen: add support for DMC TSC-10/25 devices

Adds support for the DMC TSC-10 and TSC-25 usb touchscreen controllers.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: ftdi-elan.c: fixes and cleanups
Adrian Bunk [Mon, 20 Nov 2006 02:24:44 +0000 (03:24 +0100)]
USB: ftdi-elan.c: fixes and cleanups

This patch contains the following possible cleanups:
- make the needlessly global ftdi_release_platform_dev() static
- remove the unused usb_ftdi_elan_read_reg()
- proper prototypes for the following functions:
  - usb_ftdi_elan_read_pcimem()
  - usb_ftdi_elan_write_pcimem()

Note that the misplaced prototypes for the latter ones in
drivers/usb/host/u132-hcd.c were buggy. Depending on the calling
convention of the architecture calling one of them could have turned
your stack into garbage.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: make drivers/usb/host/u132-hcd.c:u132_hcd_wait static
Adrian Bunk [Mon, 20 Nov 2006 02:23:54 +0000 (03:23 +0100)]
USB: make drivers/usb/host/u132-hcd.c:u132_hcd_wait static

This patch makes the needlessly global "u132_hcd_wait" static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: cypress_m8 init error path fix
Mariusz Kozlowski [Fri, 17 Nov 2006 16:49:22 +0000 (17:49 +0100)]
usb: cypress_m8 init error path fix

If at some point cypress_init() fails deregister
only the resources that were registered until that point.

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: add ehci_hcd.ignore_oc parameter
David Brownell [Fri, 17 Nov 2006 07:34:58 +0000 (23:34 -0800)]
USB: add ehci_hcd.ignore_oc parameter

Certain boards seem to like to issue false overcurrent notifications, for
example on ports that don't have anything connected to them.  This looks
like a hardware error, at the level of noise to those ports' overcurrent
input signals (or non-debounced VBUS comparators).  This surfaces to users
as truly massive amounts of syslog spam from khubd (which is appropriate
for real hardware problems, except for the volume from multiple ports).

Using this new "ignore_oc" flag helps such systems work more sanely, by
preventing such indications from getting to khubd (and spam syslog).  The
downside is of course that true overcurrent errors will be masked; they'll
appear as spontaneous disconnects, without the diagnostics that will let
users troubleshoot issues like short circuited cables.

Note that the bulk of these reports seem to be with VIA southbridges, but
I think some were with Intel ones.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: EHCI hooks for high speed electrical tests
David Brownell [Fri, 17 Nov 2006 07:56:15 +0000 (23:56 -0800)]
USB: EHCI hooks for high speed electrical tests

EHCI hooks for high speed electrical tests of the root hub ports.

The expectation is that a usermode program actually triggers the test,
making the same control request it would make for an external hub.
Tests for peripheral upstream ports would issue a different request.
In all cases, the hardware needs re-initialization before it could
be used "normally" again (e.g. unplug/replug, rmmod/modprobe).

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: net2280: don't send unwanted zero-length packets
Alan Stern [Thu, 16 Nov 2006 15:16:00 +0000 (10:16 -0500)]
USB: net2280: don't send unwanted zero-length packets

The net2280 driver is too eager to send zero-length packets when
IN tokens are received on ep0.  No such packet should be sent (the
driver should NAK) before the gadget driver has queued the proper
response.  Otherwise deferred responses are impossible.

This patch (as823) makes net2280 avoid sending ZLPs for IN transfers
on ep0 until a response has been submitted, and avoids stalling when an
OUT packet is received before a request has been submitted for an OUT
transfer on ep0.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: microtek possible memleak fix
Mariusz Kozlowski [Fri, 17 Nov 2006 10:53:23 +0000 (11:53 +0100)]
usb: microtek possible memleak fix

Possible memleak fix on error path. The changes:

- out_kfree2 and out_free_urb replaced
- missing scsi_host_put() added

Here it goes:

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Oliver Neukum <oliver@neukum.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: add Digitech USB-Storage to unusual_devs.h
Jaco Kroon [Wed, 15 Nov 2006 09:02:08 +0000 (01:02 -0800)]
USB: add Digitech USB-Storage to unusual_devs.h

The mass storage device from Digitech designed for Flash Cards, as found
on (for example) the GNX4 device has issues with residue, similar to the
bug report at http://kerneltrap.org/node/6297.  This patch adds the
faulty storage device to unusual_devs.h, this not only reduces the noise
in dmesg but also increases the transfer speeds by a factor of 7x for me
(89kB/s -> 637kB/s).

T:  Bus=02 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1210 ProdID=0003 Rev= 1.00
S:  Manufacturer=DigiTech HMG
S:  Product=DigiTech Mass Storage
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50
Driver=usb-storage
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

Signed-off-by: Jaco Kroon <jaco@kroon.co.za>
Signed-off-by: Phil Dibowitz <phil@ipom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB core: fix compiler warning about usb_autosuspend_work
Alan Stern [Mon, 13 Nov 2006 20:02:04 +0000 (15:02 -0500)]
USB core: fix compiler warning about usb_autosuspend_work

This patch (as821) fixes a compiler warning when CONFIG_PM isn't on
("usb_autosuspend_work" defined but not used).

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: fix aircable.c: inconsequent NULL checking
Naranjo Manuel Francisco [Wed, 15 Nov 2006 18:14:27 +0000 (15:14 -0300)]
USB: fix aircable.c: inconsequent NULL checking

> 2006/11/11, Adrian Bunk <bunk@stusta.de>:
> > The Coverity checker spotted the following in
> > drivers/usb/serial/aircable.c:
> >
> > <--  snip  -->
> >
> > ...
> > static void aircable_read(void *params)
> > {
> > ...

Hi everyone,
Sorry for the long time response but here is the patch, I think this way should
work, if anyone has any suggestion let me know. What I do now is, in case I
don't have the tty available I reschedule the work, I have tried it and it
works with no problem, I even tried removing the device, and didn't find
anything strange.

Signed-off-by: Naranjo Manuel <naranjo.manuel@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoOHCI: change priority level of resume log message
Alan Stern [Mon, 6 Nov 2006 17:05:00 +0000 (12:05 -0500)]
OHCI: change priority level of resume log message

All the other root-hub suspend or resume log messages, in ohci-hcd or
any of the other host controller drivers, use the debug priority
level.  This patch (as815) makes the one single exception behave like
all the rest.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: usbmixer free kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:37:04 +0000 (15:37 +0100)]
usb: usbmixer free kill urb cleanup

- usb_free_urb() cleanup
- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: usbmidi kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:37:00 +0000 (15:37 +0100)]
usb: usbmidi kill urb cleanup

- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: visor kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:55 +0000 (15:36 +0100)]
usb: visor kill urb cleanup

- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: usb-serial free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:51 +0000 (15:36 +0100)]
usb: usb-serial free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: navman kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:46 +0000 (15:36 +0100)]
usb: navman kill urb cleanup

- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: mct_u232 free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:42 +0000 (15:36 +0100)]
usb: mct_u232 free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: kobil_sct kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:38 +0000 (15:36 +0100)]
usb: kobil_sct kill urb cleanup

- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: keyspan free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:34 +0000 (15:36 +0100)]
usb: keyspan free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: io_edgeport kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:29 +0000 (15:36 +0100)]
usb: io_edgeport kill urb cleanup

- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: catc free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:22 +0000 (15:36 +0100)]
usb: catc free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: ftdi_sio kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:25 +0000 (15:36 +0100)]
usb: ftdi_sio kill urb cleanup

- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: phidgetmotorcontrol free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:18 +0000 (15:36 +0100)]
usb: phidgetmotorcontrol free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: phidgetkit free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:07 +0000 (15:36 +0100)]
usb: phidgetkit free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: legousbtower free kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:14 +0000 (15:36 +0100)]
usb: legousbtower free kill urb cleanup

Hello,

- usb_free_urb() cleanup
- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: auerswald free kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:36:03 +0000 (15:36 +0100)]
usb: auerswald free kill urb cleanup

- usb_free_urb() cleanup
- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: usbkbd free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:35:58 +0000 (15:35 +0100)]
usb: usbkbd free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: hid-core free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:35:54 +0000 (15:35 +0100)]
usb: hid-core free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: ati_remote2 free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:35:50 +0000 (15:35 +0100)]
usb: ati_remote2 free urb cleanup

Hello,

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: ati_remote free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:35:46 +0000 (15:35 +0100)]
usb: ati_remote free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: zd1201 free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:35:42 +0000 (15:35 +0100)]
usb: zd1201 free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: irda-usb free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:35:38 +0000 (15:35 +0100)]
usb: irda-usb free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: zc0301_core free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:35:12 +0000 (15:35 +0100)]
usb: zc0301_core free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: quickcam_messenger free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:35:02 +0000 (15:35 +0100)]
usb: quickcam_messenger free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: sn9c102_core free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:59 +0000 (15:34 +0100)]
usb: sn9c102_core free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: pwc-if free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:55 +0000 (15:34 +0100)]
usb: pwc-if free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: pvrusb2-io free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:50 +0000 (15:34 +0100)]
usb: pvrusb2-io free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: pvrusb2-hdw free unlink urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:31 +0000 (15:34 +0100)]
usb: pvrusb2-hdw free unlink urb cleanup

- usb_free_urb() cleanup
- usb_unlink_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: ttusb_dec free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:27 +0000 (15:34 +0100)]
usb: ttusb_dec free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: cinergyT2 free kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:22 +0000 (15:34 +0100)]
usb: cinergyT2 free kill urb cleanup

- usb_free_urb() cleanup
- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: usb-gigaset free kill urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:17 +0000 (15:34 +0100)]
usb: usb-gigaset free kill urb cleanup

- usb_free_urb() cleanup
- usb_kill_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: iforce-usb free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:09 +0000 (15:34 +0100)]
usb: iforce-usb free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: pcwd_usb free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:34:02 +0000 (15:34 +0100)]
usb: pcwd_usb free urb cleanup

- usb_free_urb() cleanup

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb: writing_usb_driver free urb cleanup
Mariusz Kozlowski [Wed, 8 Nov 2006 14:33:38 +0000 (15:33 +0100)]
usb: writing_usb_driver free urb cleanup

Allright. As Greg KH suggested I split this big patch into smaller ones to
make the changes easier to review. Having no better idea how to split that I
split it on a 'patch per file' basis. All those patches clean redundant 'if' before
usb_unlink/free/kill_urb():

if (urb)
usb_free_urb(urb); /* unlink / free / kill */

I decided not to touch bigger 'if's like

if (urb) {
usb_kill_urb(urb);
usb_free_urb(urb);
urb = NULL;
}

as that would be probably too intrusive. One of patches also fixes
drivers/usb/misc/auerswald.c memleak I found when digging the code. All those
patches are against 2.6.19-rc4.

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: pwc-if loop fix
Mariusz Kozlowski [Thu, 16 Nov 2006 15:38:57 +0000 (16:38 +0100)]
USB: pwc-if loop fix

We should free urbs starting at [i-1] not [i].

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb-serial: ti_usb, TI ez430 development tool ID
Oleg Verych [Fri, 17 Nov 2006 08:21:27 +0000 (08:21 +0000)]
usb-serial: ti_usb, TI ez430 development tool ID

usb-serial: ti_usb, TI ez430 development tool ID

Signed-off-by: Oleg Verych <olecom@flower.upol.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: airprime: New device ID
daniel@centurion.net.nz [Sat, 11 Nov 2006 02:47:52 +0000 (15:47 +1300)]
USB: airprime: New device ID

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: make drivers/usb/input/wacom_sys.c:wacom_sys_irq() static
Adrian Bunk [Mon, 20 Nov 2006 02:23:58 +0000 (03:23 +0100)]
USB: make drivers/usb/input/wacom_sys.c:wacom_sys_irq() static

This patch makes the needlessly global wacom_sys_irq() static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: resume_device symbol conflict
Stephen Hemminger [Tue, 14 Nov 2006 18:06:17 +0000 (10:06 -0800)]
USB: resume_device symbol conflict

Several functions in USB core overlap with global functions.
The linker appears to do the right thing, but it is bad practice and makes
debugging harder.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb/gadget/ether.c minor manycast tweaks
David Brownell [Mon, 13 Nov 2006 02:09:44 +0000 (18:09 -0800)]
usb/gadget/ether.c minor manycast tweaks

Minor cleanup/clarification in the ethernet gadget driver, using standard
calls to test for Ethernet multicast and broadcast addresses.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: Move private hub declarations out of public header file
Alan Stern [Mon, 6 Nov 2006 16:56:13 +0000 (11:56 -0500)]
USB: Move private hub declarations out of public header file

This patch (as809b) moves the declaration of the hub driver's private
data structure from hub.h into the hub.c source file.  Lots of other
files import hub.h; they have no need to know about the details of the
hub driver's private data.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: net1080: Fix && typos
Jean Delvare [Thu, 9 Nov 2006 21:02:37 +0000 (22:02 +0100)]
USB: net1080: Fix && typos

Fix STATUS_PACKETS_* macros, where "&&" was mistakenly used where
"&" should have.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: David Brownell <david-b@pacbell.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: expand autosuspend/autoresume API
Alan Stern [Mon, 30 Oct 2006 22:07:51 +0000 (17:07 -0500)]
USB: expand autosuspend/autoresume API

This patch (as814) adds usb_autopm_set_interface() to the autosuspend
API.  It also provides convenient wrapper routines,
usb_autopm_enable() and usb_autopm_disable(), for drivers that want
to specify directly whether autosuspend should be allowed.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: autosuspend code consolidation
Alan Stern [Mon, 30 Oct 2006 22:06:45 +0000 (17:06 -0500)]
USB: autosuspend code consolidation

This patch (as813) gathers together common code for USB interface
autosuspend/autoresume.

It also adds some simple checking at the time an autosuspend request
is made, to see whether the request will fail.  This way we don't
add a workqueue entry when it would end up doing nothing.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: makes usb_endpoint_* functions inline.
Luiz Fernando N. Capitulino [Mon, 30 Oct 2006 17:53:03 +0000 (14:53 -0300)]
USB: makes usb_endpoint_* functions inline.

We have no benefits of having the usb_endpoint_* functions as functions,
but making them inline saves text and data segment sizes:

text    data     bss     dec     hex filename
14893634 3108770 1108840 19111244 1239d4c vmlinux.func
14893185 3108566 1108840 19110591 1239abf vmlinux.inline

 This is the result of a 2.6.19-rc3 kernel compiled with GCC 4.1.1 without
CONFIG_MODULES, CONFIG_CC_OPTIMIZE_FOR_SIZE, CONFIG_REGPARM options set.
USB support is fully enabled (while most of the other drivers are not),
and that kernel has most of the USB code ported to use the endpoint
functions.

That happens because a call to those functions are expensive (in terms
of bytes), while the function's size is smaller or have the same 'size' of
the call.

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: yealink: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:03:04 +0000 (13:03 -0300)]
USB: yealink: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: storage: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:03:03 +0000 (13:03 -0300)]
USB: storage: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: usbtest: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:03:02 +0000 (13:03 -0300)]
USB: usbtest: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: usbnet: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:03:01 +0000 (13:03 -0300)]
USB: usbnet: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: usbmouse: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:03:00 +0000 (13:03 -0300)]
USB: usbmouse: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: usbkbd: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:59 +0000 (13:02 -0300)]
USB: usbkbd: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: speedtch: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:58 +0000 (13:02 -0300)]
USB: speedtch: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: phidgetmotorcontrol: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:57 +0000 (13:02 -0300)]
USB: phidgetmotorcontrol: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: phidgetkit: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:56 +0000 (13:02 -0300)]
USB: phidgetkit: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: onetouch: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:55 +0000 (13:02 -0300)]
USB: onetouch: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: legousbtower: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:54 +0000 (13:02 -0300)]
USB: legousbtower: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: kobil_sct: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:53 +0000 (13:02 -0300)]
USB: kobil_sct: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: idmouse: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:52 +0000 (13:02 -0300)]
USB: idmouse: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: hid-core: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:51 +0000 (13:02 -0300)]
USB: hid-core: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: ftdi-elan: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:50 +0000 (13:02 -0300)]
USB: ftdi-elan: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: devices: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:49 +0000 (13:02 -0300)]
USB: devices: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: cdc-acm: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:48 +0000 (13:02 -0300)]
USB: cdc-acm: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: cdc_ether: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:47 +0000 (13:02 -0300)]
USB: cdc_ether: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: appledisplay: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:46 +0000 (13:02 -0300)]
USB: appledisplay: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: aircable: Use usb_endpoint_* functions
Luiz Fernando N. Capitulino [Thu, 26 Oct 2006 16:02:45 +0000 (13:02 -0300)]
USB: aircable: Use usb_endpoint_* functions

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: OHCI: remove stale testing code from root-hub resume
Alan Stern [Fri, 27 Oct 2006 14:35:01 +0000 (10:35 -0400)]
USB: OHCI: remove stale testing code from root-hub resume

This patch (as811) removes some stale testing code from the root-hub
resume routine in ohci-hcd.  It also adds a spin_lock_irq() call that
inadvertently got left out of an error pathway.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: kmemdup() cleanup in drivers/usb/
Eric Sesterhenn [Thu, 26 Oct 2006 19:06:24 +0000 (21:06 +0200)]
USB: kmemdup() cleanup in drivers/usb/

replace open coded kmemdup() to save some screen space,
and allow inlining/not inlining to be triggered by gcc.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: OHCI: disable RHSC inside interrupt handler
Alan Stern [Fri, 27 Oct 2006 14:33:11 +0000 (10:33 -0400)]
USB: OHCI: disable RHSC inside interrupt handler

This patch (as808b) moves the Root Hub Status Change interrupt-disable
code in ohci-hcd back into the interrupt handler proper, to avoid the
chance of adverse interactions with mediocre hardware implementations.

It also deletes the root-hub status timer from within the interrupt-enable
routine.  There's no need to poll for status any more once interrupts are
re-enabled.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: ohci-hcd: fix compiler warning
Alan Stern [Tue, 24 Oct 2006 16:02:31 +0000 (12:02 -0400)]
USB: ohci-hcd: fix compiler warning

This patch (as806) fixes a compiler warning when ohci-hcd is built
with CONFIG_PM turned off.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB core: don't match interface descriptors for vendor-specific devices
Alan Stern [Wed, 18 Oct 2006 20:41:51 +0000 (16:41 -0400)]
USB core: don't match interface descriptors for vendor-specific devices

This patch (as804) makes USB driver matching ignore the interface
class, subclass, and protocol if the device class is Vendor Specific.
Drivers can override this policy by specifying a Vendor ID as part
of the match; then vendor-specific matches are allowed.

Linus Walleij has reported a problem this patch fixes.  When a
particular mass-storage device is switched from mass-storage mode to
Media Transfer Protocol, the interface class remains set to mass-storage
and usb-storage binds to it erroneously, even though the device class
changes to Vendor-Specific.

This may cause a problem for some drivers until their match records can
be updated to include Vendor IDs.  But if it does, then those records
were broken to begin with.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB HID: Handle STALL on interrupt endpoint
Alan Stern [Wed, 18 Oct 2006 16:35:24 +0000 (12:35 -0400)]
USB HID: Handle STALL on interrupt endpoint

The USB HID driver doesn't include any code to handle a STALL on the
interrupt endpoint.  While this may be uncommon, it does happen
sometimes.  This patch (as805) adds a fix.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb hub: fix root hub code so it takes more than 15 devices per root hub
inaky@linux.intel.com [Thu, 12 Oct 2006 03:05:59 +0000 (20:05 -0700)]
usb hub: fix root hub code so it takes more than 15 devices per root hub

Wireless USB Host Controllers accept a large number of devices per
host, which shows up as a large number of ports in its root hub.

When the number of ports in a hub device goes over 16, the activation
of the hub fails with the cryptic message in klogd.

hub 2-0:1.0: activate --> -22

Following this further, it was seen that:

hub_probe()
  hub_configure()
    generates pipe number

    pseudo allocates buffer 'maxp' bytes in size using usb_maxpacket()

      The endpoint descriptor for a root hub interrupt endpoint is
      declared in
      drivers/usb/core/hcd.c:hs_rh_config_descriptor and declares it
      to be size two (supporting 15 devices max).

    hub_activate()
      usb_hcd_submit_urb()
        rh_urb_enqueue()
          urb->pipe is neither int nor ctl, so it errors out
            rh_queue_status()
              Returns -EINVAL because the buffer length is smaller
              than the minimum needed to report all the hub port
              bits as in accordance with USB2.0[11.12.3]. There has
              to be trunc((PORTS + 1 + 7) / 8) bytes of space at
              least.

Alan Stern confirmed that the reason for reading maxpktsize and not
the right amount is because some hubs are known to return more data
and thus cause overflow.

So this patch simply changes the code to make the interrupt endpoint's
max packet size be at least the minimum required by USB_MAXCHILDREN
(instead of a fixed magic number) and add documentation for that. This
way we are always ahead of the limit.

Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb/hub: allow hubs up to 31 children
inaky@linux.intel.com [Thu, 12 Oct 2006 03:05:58 +0000 (20:05 -0700)]
usb/hub: allow hubs up to 31 children

Current Wireless USB host hardware (Intel i1480 for example) allows up
to 22 devices to connect, thus bringing up the max number of children
in the WUSB Host Controller to 22 'fake' ports. Upcoming hardware
might raise that limit.

Makes almost no difference to go to 31, as the bit arrays are
byte-aligned (plus an extra bit in general), so 22 bits fit in 4 bytes
as 31 do.

As well, the only other array that depends on USB_MAXCHILDREN is
'struct usb_hub->indicator'. By declaring it 'u8' instead of 'enum
hub_led_mode', we reduce the size of each entry from 4 bytes (in i386)
to 1, which will add as we when are doubling USB_MAXCHILDREN
(with 16 the size of that array is 64 bytes, with 31 would be 128; by
using u8 that goes down to 31 bytes).

Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>