projects/linux·commit 37b05b17

Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6

37b05b17 · Linus Torvalds <[email protected]> · 2008-04-25 12:40:57 -07:00

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (120 commits)
  usb: don't update devnum for wusb devices
  wusb: make ep0_reinit available for modules
  wusb: devices dont use a set address
  wusb: teach choose_address() about wireless devices
  wusb: add link wusb-usb device
  wusb: add authenticathed bit to usb_dev
  USB: remove unnecessary type casting of urb->context
  usb serial: more fixes and groundwork for tty changes
  USB: replace remaining __FUNCTION__ occurrences
  USB: usbfs: export the URB_NO_INTERRUPT flag to userspace
  USB: fix compile problems in ehci-hcd
  USB: ehci: qh_completions cleanup and bugfix
  USB: cdc-acm: signedness fix
  USB: add documentation about callbacks
  USB: don't explicitly reenable root-hub status interrupts
  USB: OHCI: turn off RD when remote wakeup is disabled
  USB: HCDs use the do_remote_wakeup flag
  USB: g_file_storage: ignore bulk-out data after invalid CBW
  USB: serial: remove endpoints setting checks from core and header
  USB: serial: remove unneeded number endpoints settings
  ...
Commit
37b05b17985ecc43a33e2a8cbdaa220115de4703
Parents
ce1d5b23 · 4953d141

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

Changes

185 files changed · +8195 −6540

FileStatusAddDelContent
Documentation/usb/anchors.txtadded+50−0View file
Documentation/usb/callbacks.txtadded+132−0View file
Documentation/usb/persist.txtmodified+23−20View file
Documentation/usb/usb-serial.txtmodified+2−5View file
drivers/input/joystick/xpad.cmodified+12−8View file
drivers/usb/atm/cxacru.cmodified+1−1View file
drivers/usb/atm/ueagle-atm.cmodified+3−3View file
drivers/usb/atm/usbatm.cmodified+15−12View file
drivers/usb/atm/usbatm.hmodified+1−1View file
drivers/usb/class/cdc-acm.cmodified+52−46View file
drivers/usb/class/cdc-acm.hmodified+4−3View file
drivers/usb/core/Kconfigmodified+10−32View file
drivers/usb/core/config.cmodified+17−0View file
drivers/usb/core/devio.cmodified+47−26View file
drivers/usb/core/driver.cmodified+26−26View file
drivers/usb/core/hcd-pci.cmodified+5−10View file
drivers/usb/core/hcd.cmodified+12−13View file
drivers/usb/core/hcd.hmodified+4−5View file
drivers/usb/core/hub.cmodified+256−140View file
drivers/usb/core/hub.hmodified+7−2View file
drivers/usb/core/inode.cmodified+2−2View file
drivers/usb/core/message.cmodified+8−9View file
drivers/usb/core/quirks.cmodified+14−0View file
drivers/usb/core/sysfs.cmodified+10−12View file
drivers/usb/core/urb.cmodified+25−1View file
drivers/usb/core/usb.hmodified+0−2View file
drivers/usb/gadget/Kconfigmodified+10−8View file
drivers/usb/gadget/amd5536udc.cmodified+10−0View file
drivers/usb/gadget/at91_udc.cmodified+6−3View file
drivers/usb/gadget/dummy_hcd.cmodified+41−57View file
drivers/usb/gadget/epautoconf.cmodified+6−6View file
drivers/usb/gadget/ether.cmodified+9−9View file
drivers/usb/gadget/file_storage.cmodified+19−17View file
drivers/usb/gadget/fsl_usb2_udc.cmodified+2−2View file
drivers/usb/gadget/fsl_usb2_udc.hmodified+1−1View file
drivers/usb/gadget/gmidi.cmodified+1−1View file
drivers/usb/gadget/goku_udc.cmodified+10−10View file
drivers/usb/gadget/inode.cmodified+9−9View file
drivers/usb/gadget/lh7a40x_udc.cmodified+66−66View file
drivers/usb/gadget/m66592-udc.hmodified+1−1View file
drivers/usb/gadget/net2280.hmodified+1−1View file
drivers/usb/gadget/omap_udc.cmodified+8−12View file
drivers/usb/gadget/printer.cmodified+57−35View file
drivers/usb/gadget/pxa2xx_udc.cmodified+13−13View file
drivers/usb/gadget/rndis.cmodified+74−74View file
drivers/usb/gadget/serial.cmodified+1−2View file
drivers/usb/host/Kconfigmodified+8−2View file
drivers/usb/host/ehci-au1xxx.cmodified+3−2View file
drivers/usb/host/ehci-dbg.cmodified+2−2View file
drivers/usb/host/ehci-fsl.cmodified+4−5View file
drivers/usb/host/ehci-hcd.cmodified+52−61View file
drivers/usb/host/ehci-hub.cmodified+10−24View file
drivers/usb/host/ehci-ixp4xx.cmodified+1−2View file
drivers/usb/host/ehci-pci.cmodified+5−4View file
drivers/usb/host/ehci-ppc-soc.cmodified+3−2View file
drivers/usb/host/ehci-ps3.cmodified+0−1View file
drivers/usb/host/ehci-q.cmodified+73−31View file
drivers/usb/host/ehci-sched.cmodified+19−27View file
drivers/usb/host/isp116x-hcd.cmodified+2−12View file
drivers/usb/host/ohci-at91.cmodified+1−1View file
drivers/usb/host/ohci-au1xxx.cmodified+0−1View file
drivers/usb/host/ohci-dbg.cmodified+1−1View file
drivers/usb/host/ohci-ep93xx.cmodified+1−4View file
drivers/usb/host/ohci-hub.cmodified+99−29View file
drivers/usb/host/ohci-lh7a404.cmodified+0−1View file
drivers/usb/host/ohci-omap.cmodified+3−5View file
drivers/usb/host/ohci-pci.cmodified+3−44View file
drivers/usb/host/ohci-pnx4008.cmodified+0−1View file
drivers/usb/host/ohci-pnx8550.cmodified+0−1View file
drivers/usb/host/ohci-ppc-of.cmodified+0−1View file
drivers/usb/host/ohci-ppc-soc.cmodified+0−1View file
drivers/usb/host/ohci-ps3.cmodified+0−2View file
drivers/usb/host/ohci-pxa27x.cmodified+1−5View file
drivers/usb/host/ohci-s3c2410.cmodified+0−1View file
drivers/usb/host/ohci-sa1111.cmodified+0−1View file
drivers/usb/host/ohci-sh.cmodified+0−1View file
drivers/usb/host/ohci-sm501.cmodified+8−8View file
drivers/usb/host/ohci-ssb.cmodified+1−36View file
drivers/usb/host/pci-quirks.cmodified+3−3View file
drivers/usb/host/r8a66597-hcd.cmodified+180−76View file
drivers/usb/host/r8a66597.hmodified+50−1View file
drivers/usb/host/sl811-hcd.cmodified+3−9View file
drivers/usb/host/u132-hcd.cmodified+2535−2589View file
drivers/usb/host/uhci-hcd.cmodified+14−21View file
drivers/usb/host/uhci-q.cmodified+1−1View file
drivers/usb/image/Kconfigmodified+2−2View file
drivers/usb/image/microtek.cmodified+1−2View file
drivers/usb/image/microtek.hmodified+0−1View file
drivers/usb/misc/Kconfigmodified+10−10View file
drivers/usb/misc/adutux.cmodified+60−60View file
drivers/usb/misc/appledisplay.cmodified+3−3View file
drivers/usb/misc/auerswald.cmodified+69−66View file
drivers/usb/misc/emi26.cmodified+15−15View file
drivers/usb/misc/emi62.cmodified+16−16View file
drivers/usb/misc/ftdi-elan.cmodified+1−1View file
drivers/usb/misc/iowarrior.cmodified+5−5View file
drivers/usb/misc/ldusb.cmodified+5−5View file
drivers/usb/misc/legousbtower.cmodified+46−46View file
drivers/usb/misc/phidgetkit.cmodified+3−3View file
drivers/usb/misc/phidgetmotorcontrol.cmodified+1−1View file
drivers/usb/misc/phidgetservo.cmodified+3−3View file
drivers/usb/misc/usblcd.cmodified+4−4View file
drivers/usb/misc/usbtest.cmodified+7−6View file
drivers/usb/mon/Makefilemodified+1−1View file
drivers/usb/mon/mon_bin.cmodified+3−6View file
drivers/usb/mon/mon_main.cmodified+1−2View file
drivers/usb/mon/mon_stat.cmodified+3−0View file
drivers/usb/serial/Kconfigmodified+22−54View file
drivers/usb/serial/Makefilemodified+2−1View file
drivers/usb/serial/aircable.cmodified+26−26View file
drivers/usb/serial/airprime.cmodified+17−20View file
drivers/usb/serial/ark3116.cmodified+4−6View file
drivers/usb/serial/belkin_sa.cmodified+10−13View file
drivers/usb/serial/ch341.cmodified+0−3View file
drivers/usb/serial/console.cmodified+5−5View file
drivers/usb/serial/cp2101.cmodified+57−57View file
drivers/usb/serial/cyberjack.cmodified+55−57View file
drivers/usb/serial/cypress_m8.cmodified+257−322View file
drivers/usb/serial/digi_acceleport.cmodified+22−28View file
drivers/usb/serial/empeg.cmodified+28−31View file
drivers/usb/serial/ezusb.cmodified+4−4View file
drivers/usb/serial/ftdi_sio.cmodified+84−87View file
drivers/usb/serial/funsoft.cmodified+0−3View file
drivers/usb/serial/garmin_gps.cmodified+56−59View file
drivers/usb/serial/generic.cmodified+27−29View file
drivers/usb/serial/hp4x.cmodified+0−3View file
drivers/usb/serial/io_edgeport.cmodified+163−163View file
drivers/usb/serial/io_tables.hmodified+0−12View file
drivers/usb/serial/io_ti.cmodified+198−200View file
drivers/usb/serial/ipaq.cmodified+25−28View file
drivers/usb/serial/ipw.cmodified+24−27View file
drivers/usb/serial/ir-usb.cmodified+25−28View file
drivers/usb/serial/iuu_phoenix.cmodified+85−80View file
drivers/usb/serial/keyspan.cmodified+141−140View file
drivers/usb/serial/keyspan.hmodified+0−16View file
drivers/usb/serial/keyspan_pda.cmodified+19−23View file
drivers/usb/serial/kl5kusb105.cmodified+65−59View file
drivers/usb/serial/kobil_sct.cmodified+33−42View file
drivers/usb/serial/mct_u232.cmodified+19−22View file
drivers/usb/serial/mos7720.cmodified+60−62View file
drivers/usb/serial/mos7840.cmodified+80−84View file
drivers/usb/serial/navman.cmodified+14−17View file
drivers/usb/serial/omninet.cmodified+20−22View file
drivers/usb/serial/option.cmodified+48−44View file
drivers/usb/serial/oti6858.cmodified+57−64View file
drivers/usb/serial/pl2303.cmodified+58−59View file
drivers/usb/serial/safe_serial.cmodified+26−34View file
drivers/usb/serial/sierra.cmodified+84−45View file
drivers/usb/serial/spcp8x5.cadded+1072−0View file
drivers/usb/serial/ti_usb_3410_5052.cmodified+107−104View file
drivers/usb/serial/usb-serial.cmodified+50−57View file
drivers/usb/serial/usb_debug.cmodified+0−3View file
drivers/usb/serial/visor.cmodified+48−55View file
drivers/usb/serial/whiteheat.cmodified+56−62View file
drivers/usb/storage/Kconfigmodified+25−14View file
drivers/usb/storage/Makefilemodified+1−0View file
drivers/usb/storage/cypress_atacb.cadded+200−0View file
drivers/usb/storage/cypress_atacb.hadded+25−0View file
drivers/usb/storage/libusual.cmodified+6−8View file
drivers/usb/storage/scsiglue.cmodified+14−12View file
drivers/usb/storage/transport.cmodified+12−11View file
drivers/usb/storage/unusual_devs.hmodified+8−0View file
drivers/usb/storage/usb.cmodified+18−8View file
drivers/usb/usb-skeleton.cmodified+4−4View file
include/linux/usb.hmodified+119−77View file
include/linux/usb/audio.hmodified+1−1View file
include/linux/usb/cdc.hmodified+4−0View file
include/linux/usb/ch9.hmodified+13−4View file
include/linux/usb/g_printer.hmodified+4−0View file
include/linux/usb/gadget.hmodified+1−1View file
include/linux/usb/gadgetfs.hmodified+8−8View file
include/linux/usb/input.hmodified+4−4View file
include/linux/usb/iowarrior.hmodified+3−3View file
include/linux/usb/isp116x.hmodified+5−1View file
include/linux/usb/midi.hmodified+1−1View file
include/linux/usb/net2280.hmodified+4−5View file
include/linux/usb/otg.hmodified+5−1View file
include/linux/usb/quirks.hmodified+5−0View file
include/linux/usb/rndis_host.hmodified+3−6View file
include/linux/usb/serial.hmodified+1−20View file
include/linux/usb/sl811.hmodified+4−1View file
include/linux/usb/usbnet.hmodified+3−5View file
include/linux/usb_usual.hmodified+1−0View file
include/linux/usbdevice_fs.hmodified+5−2View file
scripts/checkpatch.plmodified+7−0View file

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

Documentation/usb/anchors.txt

View file
diff --git a/Documentation/usb/anchors.txt b/Documentation/usb/anchors.txt
new file mode 100644
index 0000000..7304bcf
--- /dev/null
+++ b/Documentation/usb/anchors.txt
@@ -0,0 +1,50 @@
+What is anchor?
+===============
+
+A USB driver needs to support some callbacks requiring
+a driver to cease all IO to an interface. To do so, a
+driver has to keep track of the URBs it has submitted
+to know they've all completed or to call usb_kill_urb
+for them. The anchor is a data structure takes care of
+keeping track of URBs and provides methods to deal with
+multiple URBs.
+
+Allocation and Initialisation
+=============================
+
+There's no API to allocate an anchor. It is simply declared
+as struct usb_anchor. init_usb_anchor() must be called to
+initialise the data structure.
+
+Deallocation
+============
+
+Once it has no more URBs associated with it, the anchor can be
+freed with normal memory management operations.
+
+Association and disassociation of URBs with anchors
+===================================================
+
+An association of URBs to an anchor is made by an explicit
+call to usb_anchor_urb(). The association is maintained until
+an URB is finished by (successfull) completion. Thus disassociation
+is automatic. A function is provided to forcibly finish (kill)
+all URBs associated with an anchor.
+Furthermore, disassociation can be made with usb_unanchor_urb()
+
+Operations on multitudes of URBs
+================================
+
+usb_kill_anchored_urbs()
+------------------------
+
+This function kills all URBs associated with an anchor. The URBs
+are called in the reverse temporal order they were submitted.
+This way no data can be reordered.
+
+usb_wait_anchor_empty_timeout()
+-------------------------------
+
+This function waits for all URBs associated with an anchor to finish
+or a timeout, whichever comes first. Its return value will tell you
+whether the timeout was reached.

Documentation/usb/callbacks.txt

View file
diff --git a/Documentation/usb/callbacks.txt b/Documentation/usb/callbacks.txt
new file mode 100644
index 0000000..7c81241
--- /dev/null
+++ b/Documentation/usb/callbacks.txt
@@ -0,0 +1,132 @@
+What callbacks will usbcore do?
+===============================
+
+Usbcore will call into a driver through callbacks defined in the driver
+structure and through the completion handler of URBs a driver submits.
+Only the former are in the scope of this document. These two kinds of
+callbacks are completely independent of each other. Information on the
+completion callback can be found in Documentation/usb/URB.txt.
+
+The callbacks defined in the driver structure are:
+
+1. Hotplugging callbacks:
+
+ * @probe: Called to see if the driver is willing to manage a particular
+ * interface on a device.
+ * @disconnect: Called when the interface is no longer accessible, usually
+ * because its device has been (or is being) disconnected or the
+ * driver module is being unloaded.
+
+2. Odd backdoor through usbfs:
+
+ * @ioctl: Used for drivers that want to talk to userspace through
+ * the "usbfs" filesystem. This lets devices provide ways to
+ * expose information to user space regardless of where they
+ * do (or don't) show up otherwise in the filesystem.
+
+3. Power management (PM) callbacks:
+
+ * @suspend: Called when the device is going to be suspended.
+ * @resume: Called when the device is being resumed.
+ * @reset_resume: Called when the suspended device has been reset instead
+ * of being resumed.
+
+4. Device level operations:
+
+ * @pre_reset: Called when the device is about to be reset.
+ * @post_reset: Called after the device has been reset
+
+The ioctl interface (2) should be used only if you have a very good
+reason. Sysfs is preferred these days. The PM callbacks are covered
+separately in Documentation/usb/power-management.txt.
+
+Calling conventions
+===================
+
+All callbacks are mutually exclusive. There's no need for locking
+against other USB callbacks. All callbacks are called from a task
+context. You may sleep. However, it is important that all sleeps have a
+small fixed upper limit in time. In particular you must not call out to
+user space and await results.
+
+Hotplugging callbacks
+=====================
+
+These callbacks are intended to associate and disassociate a driver with
+an interface. A driver's bond to an interface is exclusive.
+
+The probe() callback
+--------------------
+
+int (*probe) (struct usb_interface *intf,
+ const struct usb_device_id *id);
+
+Accept or decline an interface. If you accept the device return 0,
+otherwise -ENODEV or -ENXIO. Other error codes should be used only if a
+genuine error occurred during initialisation which prevented a driver
+from accepting a device that would else have been accepted.
+You are strongly encouraged to use usbcore'sfacility,
+usb_set_intfdata(), to associate a data structure with an interface, so
+that you know which internal state and identity you associate with a
+particular interface. The device will not be suspended and you may do IO
+to the interface you are called for and endpoint 0 of the device. Device
+initialisation that doesn't take too long is a good idea here.
+
+The disconnect() callback
+-------------------------
+
+void (*disconnect) (struct usb_interface *intf);
+
+This callback is a signal to break any connection with an interface.
+You are not allowed any IO to a device after returning from this
+callback. You also may not do any other operation that may interfere
+with another driver bound the interface, eg. a power management
+operation.
+If you are called due to a physical disconnection, all your URBs will be
+killed by usbcore. Note that in this case disconnect will be called some
+time after the physical disconnection. Thus your driver must be prepared
+to deal with failing IO even prior to the callback.
+
+Device level callbacks
+======================
+
+pre_reset
+---------
+
+int (*pre_reset)(struct usb_interface *intf);
+
+Another driver or user space is triggering a reset on the device which
+contains the interface passed as an argument. Cease IO and save any
+device state you need to restore.
+
+If you need to allocate memory here, use GFP_NOIO or GFP_ATOMIC, if you
+are in atomic context.
+
+post_reset
+----------
+
+int (*post_reset)(struct usb_interface *intf);
+
+The reset has completed. Restore any saved device state and begin
+using the device again.
+
+If you need to allocate memory here, use GFP_NOIO or GFP_ATOMIC, if you
+are in atomic context.
+
+Call sequences
+==============
+
+No callbacks other than probe will be invoked for an interface
+that isn't bound to your driver.
+
+Probe will never be called for an interface bound to a driver.
+Hence following a successful probe, disconnect will be called
+before there is another probe for the same interface.
+
+Once your driver is bound to an interface, disconnect can be
+called at any time except in between pre_reset and post_reset.
+pre_reset is always followed by post_reset, even if the reset
+failed or the device has been unplugged.
+
+suspend is always followed by one of: resume, reset_resume, or
+disconnect.

Documentation/usb/persist.txt

View file
diff --git a/Documentation/usb/persist.txt b/Documentation/usb/persist.txt
index df54d64..d56cb1a 100644
--- a/Documentation/usb/persist.txt
+++ b/Documentation/usb/persist.txt
@@ -2,7 +2,7 @@
Alan Stern <[email protected]>
- September 2, 2006 (Updated May 29, 2007)
+ September 2, 2006 (Updated February 25, 2008)
What is the problem?
@@ -65,9 +65,10 @@ much better.)
What is the solution?
-Setting CONFIG_USB_PERSIST will cause the kernel to work around these
-issues. It enables a mode in which the core USB device data
-structures are allowed to persist across a power-session disruption.
+The kernel includes a feature called USB-persist. It tries to work
+around these issues by allowing the core USB device data structures to
+persist across a power-session disruption.
+
It works like this. If the kernel sees that a USB host controller is
not in the expected state during resume (i.e., if the controller was
reset or otherwise had lost power) then it applies a persistence check
@@ -80,28 +81,30 @@ re-enumeration shows that the device now attached to that port has the
same descriptors as before, including the Vendor and Product IDs, then
the kernel continues to use the same device structure. In effect, the
kernel treats the device as though it had merely been reset instead of
-unplugged.
+unplugged. The same thing happens if the host controller is in the
+expected state but a USB device was unplugged and then replugged.
If no device is now attached to the port, or if the descriptors are
different from what the kernel remembers, then the treatment is what
you would expect. The kernel destroys the old device structure and
behaves as though the old device had been unplugged and a new device
-plugged in, just as it would without the CONFIG_USB_PERSIST option.
+plugged in.
The end result is that the USB device remains available and usable.
Filesystem mounts and memory mappings are unaffected, and the world is
now a good and happy place.
-Note that even when CONFIG_USB_PERSIST is set, the "persist" feature
-will be applied only to those devices for which it is enabled. You
-can enable the feature by doing (as root):
+Note that the "USB-persist" feature will be applied only to those
+devices for which it is enabled. You can enable the feature by doing
+(as root):
echo 1 >/sys/bus/usb/devices/.../power/persist
where the "..." should be filled in the with the device's ID. Disable
the feature by writing 0 instead of 1. For hubs the feature is
-automatically and permanently enabled, so you only have to worry about
-setting it for devices where it really matters.
+automatically and permanently enabled and the power/persist file
+doesn't even exist, so you only have to worry about setting it for
+devices where it really matters.
Is this the best solution?
@@ -112,19 +115,19 @@ centralized Logical Volume Manager. Such a solution would allow you
to plug in a USB flash device, create a persistent volume associated
with it, unplug the flash device, plug it back in later, and still
have the same persistent volume associated with the device. As such
-it would be more far-reaching than CONFIG_USB_PERSIST.
+it would be more far-reaching than USB-persist.
On the other hand, writing a persistent volume manager would be a big
job and using it would require significant input from the user. This
solution is much quicker and easier -- and it exists now, a giant
point in its favor!
-Furthermore, the USB_PERSIST option applies to _all_ USB devices, not
+Furthermore, the USB-persist feature applies to _all_ USB devices, not
just mass-storage devices. It might turn out to be equally useful for
other device types, such as network interfaces.
- WARNING: Using CONFIG_USB_PERSIST can be dangerous!!
+ WARNING: USB-persist can be dangerous!!
When recovering an interrupted power session the kernel does its best
to make sure the USB device hasn't been changed; that is, the same
@@ -133,10 +136,10 @@ aren't guaranteed to be 100% accurate.
If you replace one USB device with another of the same type (same
manufacturer, same IDs, and so on) there's an excellent chance the
-kernel won't detect the change. Serial numbers and other strings are
-not compared. In many cases it wouldn't help if they were, because
-manufacturers frequently omit serial numbers entirely in their
-devices.
+kernel won't detect the change. The serial number string and other
+descriptors are compared with the kernel's stored values, but this
+might not help since manufacturers frequently omit serial numbers
+entirely in their devices.
Furthermore it's quite possible to leave a USB device exactly the same
while changing its media. If you replace the flash memory card in a
@@ -152,5 +155,5 @@ but yourself.
YOU HAVE BEEN WARNED! USE AT YOUR OWN RISK!
That having been said, most of the time there shouldn't be any trouble
-at all. The "persist" feature can be extremely useful. Make the most
-of it.
+at all. The USB-persist feature can be extremely useful. Make the
+most of it.

Documentation/usb/usb-serial.txt

View file
diff --git a/Documentation/usb/usb-serial.txt b/Documentation/usb/usb-serial.txt
index 8b077e4..ff2c1ff 100644
--- a/Documentation/usb/usb-serial.txt
+++ b/Documentation/usb/usb-serial.txt
@@ -192,12 +192,9 @@ Keyspan USA-series Serial Adapters
FTDI Single Port Serial Driver
- This is a single port DB-25 serial adapter. More information about this
- device and the Linux driver can be found at:
- http://reality.sgi.com/bryder_wellington/ftdi_sio/
+ This is a single port DB-25 serial adapter.
- For any questions or problems with this driver, please contact Bill Ryder
+ For any questions or problems with this driver, please contact Bill Ryder.
ZyXEL omni.net lcd plus ISDN TA

drivers/input/joystick/xpad.c

View file
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 52ddb04..4b07bda 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -405,9 +405,11 @@ static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned cha
static void xpad_irq_in(struct urb *urb)
{
struct usb_xpad *xpad = urb->context;
- int retval;
+ int retval, status;
- switch (urb->status) {
+ status = urb->status;
+
+ switch (status) {
case 0:
/* success */
break;
@@ -416,11 +418,11 @@ static void xpad_irq_in(struct urb *urb)
case -ESHUTDOWN:
/* this urb is terminated, clean up */
dbg("%s - urb shutting down with status: %d",
- __FUNCTION__, urb->status);
+ __FUNCTION__, status);
return;
default:
dbg("%s - nonzero urb status received: %d",
- __FUNCTION__, urb->status);
+ __FUNCTION__, status);
goto exit;
}
@@ -445,9 +447,11 @@ exit:
#if defined(CONFIG_JOYSTICK_XPAD_FF) || defined(CONFIG_JOYSTICK_XPAD_LEDS)
static void xpad_irq_out(struct urb *urb)
{
- int retval;
+ int retval, status;
- switch (urb->status) {
+ status = urb->status;
+
+ switch (status) {
case 0:
/* success */
break;
@@ -456,11 +460,11 @@ static void xpad_irq_out(struct urb *urb)
case -ESHUTDOWN:
/* this urb is terminated, clean up */
dbg("%s - urb shutting down with status: %d",
- __FUNCTION__, urb->status);
+ __FUNCTION__, status);
return;
default:
dbg("%s - nonzero urb status received: %d",
- __FUNCTION__, urb->status);
+ __FUNCTION__, status);
goto exit;
}

drivers/usb/atm/cxacru.c

View file
diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
index a51eeed..d470c72 100644
--- a/drivers/usb/atm/cxacru.c
+++ b/drivers/usb/atm/cxacru.c
@@ -444,7 +444,7 @@ CXACRU_ALL_FILES(INIT);
/* the following three functions are stolen from drivers/usb/core/message.c */
static void cxacru_blocking_completion(struct urb *urb)
{
- complete((struct completion *)urb->context);
+ complete(urb->context);
}
static void cxacru_timeout_kill(unsigned long data)

drivers/usb/atm/ueagle-atm.c

View file
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c
index c5ec1a5..abb7d74 100644
--- a/drivers/usb/atm/ueagle-atm.c
+++ b/drivers/usb/atm/ueagle-atm.c
@@ -83,7 +83,7 @@
if (debug >= 1) \
dev_dbg(&(usb_dev)->dev, \
"[ueagle-atm dbg] %s: " format, \
- __FUNCTION__, ##args); \
+ __func__, ##args); \
} while (0)
#define uea_vdbg(usb_dev, format, args...) \
@@ -94,10 +94,10 @@
} while (0)
#define uea_enters(usb_dev) \
- uea_vdbg(usb_dev, "entering %s\n", __FUNCTION__)
+ uea_vdbg(usb_dev, "entering %s\n", __func__)
#define uea_leaves(usb_dev) \
- uea_vdbg(usb_dev, "leaving %s\n", __FUNCTION__)
+ uea_vdbg(usb_dev, "leaving %s\n", __func__)
#define uea_err(usb_dev, format,args...) \
dev_err(&(usb_dev)->dev ,"[UEAGLE-ATM] " format , ##args)

drivers/usb/atm/usbatm.c

View file
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
index e717f5b..0722872 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
@@ -80,6 +80,7 @@
#include <linux/stat.h>
#include <linux/timer.h>
#include <linux/wait.h>
+#include <linux/kthread.h>
#ifdef VERBOSE_DEBUG
static int usbatm_print_packet(const unsigned char *data, int len);
@@ -1014,10 +1015,7 @@ static int usbatm_do_heavy_init(void *arg)
struct usbatm_data *instance = arg;
int ret;
- daemonize(instance->driver->driver_name);
allow_signal(SIGTERM);
- instance->thread_pid = current->pid;
-
complete(&instance->thread_started);
ret = instance->driver->heavy_init(instance, instance->usb_intf);
@@ -1026,7 +1024,7 @@ static int usbatm_do_heavy_init(void *arg)
ret = usbatm_atm_init(instance);
mutex_lock(&instance->serialize);
- instance->thread_pid = -1;
+ instance->thread = NULL;
mutex_unlock(&instance->serialize);
complete_and_exit(&instance->thread_exited, ret);
@@ -1034,13 +1032,18 @@ static int usbatm_do_heavy_init(void *arg)
static int usbatm_heavy_init(struct usbatm_data *instance)
{
- int ret = kernel_thread(usbatm_do_heavy_init, instance, CLONE_FS | CLONE_FILES);
-
- if (ret < 0) {
- usb_err(instance, "%s: failed to create kernel_thread (%d)!\n", __func__, ret);
- return ret;
+ struct task_struct *t;
+
+ t = kthread_create(usbatm_do_heavy_init, instance,
+ instance->driver->driver_name);
+ if (IS_ERR(t)) {
+ usb_err(instance, "%s: failed to create kernel_thread (%ld)!\n",
+ __func__, PTR_ERR(t));
+ return PTR_ERR(t);
}
+ instance->thread = t;
+ wake_up_process(t);
wait_for_completion(&instance->thread_started);
return 0;
@@ -1124,7 +1127,7 @@ int usbatm_usb_probe(struct usb_interface *intf, const struct usb_device_id *id,
kref_init(&instance->refcount); /* dropped in usbatm_usb_disconnect */
mutex_init(&instance->serialize);
- instance->thread_pid = -1;
+ instance->thread = NULL;
init_completion(&instance->thread_started);
init_completion(&instance->thread_exited);
@@ -1287,8 +1290,8 @@ void usbatm_usb_disconnect(struct usb_interface *intf)
mutex_lock(&instance->serialize);
instance->disconnected = 1;
- if (instance->thread_pid >= 0)
- kill_proc(instance->thread_pid, SIGTERM, 1);
+ if (instance->thread != NULL)
+ send_sig(SIGTERM, instance->thread, 1);
mutex_unlock(&instance->serialize);
wait_for_completion(&instance->thread_exited);

drivers/usb/atm/usbatm.h

View file
diff --git a/drivers/usb/atm/usbatm.h b/drivers/usb/atm/usbatm.h
index fc6c2be..e6887c6 100644
--- a/drivers/usb/atm/usbatm.h
+++ b/drivers/usb/atm/usbatm.h
@@ -175,7 +175,7 @@ struct usbatm_data {
int disconnected;
/* heavy init */
- int thread_pid;
+ struct task_struct *thread;
struct completion thread_started;
struct completion thread_exited;

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 0147ea3..7b572e7 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -31,6 +31,7 @@
* v0.23 - use softirq for rx processing, as needed by tty layer
* v0.24 - change probe method to evaluate CDC union descriptor
* v0.25 - downstream tasks paralelized to maximize throughput
+ * v0.26 - multiple write urbs, writesize increased
*/
/*
@@ -72,7 +73,7 @@
/*
* Version Information
*/
-#define DRIVER_VERSION "v0.25"
+#define DRIVER_VERSION "v0.26"
#define DRIVER_AUTHOR "Armin Fuerst, Pavel Machek, Johannes Erdfelt, Vojtech Pavlik, David Kubicek"
#define DRIVER_DESC "USB Abstract Control Model driver for USB modems and ISDN adapters"
@@ -118,7 +119,7 @@ static int acm_wb_alloc(struct acm *acm)
int i, wbn;
struct acm_wb *wb;
- wbn = acm->write_current;
+ wbn = 0;
i = 0;
for (;;) {
wb = &acm->wb[wbn];
@@ -132,11 +133,6 @@ static int acm_wb_alloc(struct acm *acm)
}
}
-static void acm_wb_free(struct acm *acm, int wbn)
-{
- acm->wb[wbn].use = 0;
-}
-
static int acm_wb_is_avail(struct acm *acm)
{
int i, n;
@@ -156,26 +152,22 @@ static inline int acm_wb_is_used(struct acm *acm, int wbn)
/*
* Finish write.
*/
-static void acm_write_done(struct acm *acm)
+static void acm_write_done(struct acm *acm, struct acm_wb *wb)
{
unsigned long flags;
- int wbn;
spin_lock_irqsave(&acm->write_lock, flags);
acm->write_ready = 1;
- wbn = acm->write_current;
- acm_wb_free(acm, wbn);
- acm->write_current = (wbn + 1) % ACM_NW;
+ wb->use = 0;
spin_unlock_irqrestore(&acm->write_lock, flags);
}
/*
* Poke write.
*/
-static int acm_write_start(struct acm *acm)
+static int acm_write_start(struct acm *acm, int wbn)
{
unsigned long flags;
- int wbn;
struct acm_wb *wb;
int rc;
@@ -190,24 +182,24 @@ static int acm_write_start(struct acm *acm)
return 0; /* A white lie */
}
- wbn = acm->write_current;
if (!acm_wb_is_used(acm, wbn)) {
spin_unlock_irqrestore(&acm->write_lock, flags);
return 0;
}
wb = &acm->wb[wbn];
- acm->write_ready = 0;
+ if(acm_wb_is_avail(acm) <= 1)
+ acm->write_ready = 0;
spin_unlock_irqrestore(&acm->write_lock, flags);

This diff is incomplete. Download the complete patch.

drivers/usb/class/cdc-acm.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/config.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/devio.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/hcd-pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/hcd.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/hub.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/hub.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/inode.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/message.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/quirks.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/sysfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/urb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/usb.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/amd5536udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/at91_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/dummy_hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/epautoconf.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/ether.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/file_storage.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/fsl_usb2_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/fsl_usb2_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/gmidi.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/goku_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/inode.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/lh7a40x_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/m66592-udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/net2280.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/omap_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/printer.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/pxa2xx_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/rndis.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-au1xxx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-dbg.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-fsl.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-hub.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-ixp4xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-ppc-soc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-ps3.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-q.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-sched.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/isp116x-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-at91.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-au1xxx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-dbg.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ep93xx.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/ohci-lh7a404.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-omap.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-pnx4008.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-pnx8550.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ppc-of.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ppc-soc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ps3.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-pxa27x.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-s3c2410.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-sa1111.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-sh.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-sm501.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ssb.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/host/r8a66597-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/r8a66597.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/sl811-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/u132-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/uhci-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/uhci-q.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/image/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/image/microtek.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/image/microtek.h

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/adutux.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/appledisplay.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/auerswald.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/emi26.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/emi62.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/ftdi-elan.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/iowarrior.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/ldusb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/legousbtower.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/phidgetkit.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/phidgetmotorcontrol.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/phidgetservo.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/misc/usbtest.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/mon/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/mon/mon_bin.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/mon/mon_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/mon/mon_stat.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/aircable.c

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/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/ch341.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/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_tables.h

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/iuu_phoenix.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.h

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/mos7720.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/mos7840.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/oti6858.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/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/spcp8x5.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/usb_debug.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/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/cypress_atacb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/cypress_atacb.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/libusual.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/transport.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/usb-skeleton.c

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/audio.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/cdc.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/g_printer.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/gadgetfs.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/input.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/iowarrior.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/isp116x.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/midi.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/net2280.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/otg.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/quirks.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/rndis_host.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/sl811.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/usbnet.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.

include/linux/usbdevice_fs.h

View file

This diff is incomplete. Download the complete patch.

scripts/checkpatch.pl

View file

This diff is incomplete. Download the complete patch.