This patch does a full cleanup of 'NULL checks before vfree', and a partial
cleanup of calls to kfree for all of drivers/ - the kfree bit is partial in
that I only did the files that also had vfree calls in them. The patch
also gets rid of some redundant (void *) casts of pointers being passed to
[vk]free, and a some tiny whitespace corrections also crept in.
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Clean up timer initialization by introducing DEFINE_TIMER a'la
DEFINE_SPINLOCK. Build and boot-tested on x86. A similar patch has been
been in the -RT tree for some time.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This patch aggregates all modifications in the -mm tree and adds
complete ringtone support.
The following features are supported:
- keyboard full support
- LCD full support
- LED full support
- dialtone full support
- ringtone full support
- audio playback via generic usb audio diver
- audio record via generic usb audio diver
For driver documentation see: Documentation/input/yealink.txt
For vendor documentation see: http://yealink.com
Signed-off-by: Henk <Henk.Vergonet@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
As sugested by Alan Stern here are a few code cleanups for onetouch.c:
-Check number of endpoints before directly referencing intf->endpoint[2]
-Use defined constants instead of magic numbers
-Revmove the non-ascii characters from copyright notice
-Make registration and deregistration messages more similar
Signed-off-by: Nick Sillik <n.sillik@temple.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This code looks at urb->transfer_dma, maps the page and takes the data.
I am looking for volunteers to contribute architectures other than i386
or to develop an architecure-neutral API for it (or point me that it
was done already).
Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This adds the field tt_usecs to ehci_qh and ehci_iso_stream, and sets it
appropriately when setting them up as periodic endpoints. It records
the transation translator's think_time (added in last patch) plus the
downstream (i.e. low or full speed) bustime of the transfer associated
with each interrupt or iso frame, as calculated by usb_calc_bus_time.
Signed-off-by: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This adds think_time to the usb_tt struct and sets it appropriately
(measured in ns); this can help us implement better split transaction
scheduling.
Signed-off-by: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This wraps up the conversion of the "usbnet" driver structure, by
moving the Prolific PL-2201/2302 minidriver to a module of its own.
It also includes some minor cleanups to the remaining "usbnet" file,
notably removing that long changelog at the top.
Minor historical note: Linux 2.2 first called the driver for
this hardware "plusb".
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This adds host-side RNDIS support to the "usbnet" driver, so Linux can talk
to various devices (often based on WinCE) that otherwise only Windows could
talk to.
Tested with little-endian Linux talking to a Linux-USB Ethernet/RNDIS based
peripheral. This also includes updates from Eddie C. Dost <ecd@brainaid.de>
for big-endian SPARC Linux talking to a Nokia 9500 Communicator.
It's still marked as EXPERIMENTAL because this code is so young. This
ought to let Linux to work with various cable modems that previously
would have been "Windows Only".
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Makes the CDC Ethernet support live in a separate driver module.
This module is a bit special since it exports utility functions
that are reused by the the Zaurus and RNDIS drivers, but it's
not "core" like usbnet itself.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This moves usbnet support for Zaurus and compatibles into its own module.
Other than exporting a couple of helper functions, this just involved
shuffling some code and updating the comments.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This moves the GeneSys GL620USB-A support into its own driver file.
It also fixes a "return wrong skb" glitch in the rx unbatching, as
recently reported, and adds some missing byteswaps in the special
"genelink" headers (so it might now work on big-endian Linux).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
As with the "cdc_subset" and "asix" drivers, this just moves the net1080
support into its one driver module. In this case there's a small bit of
extra cleanup involved, moving some funky framing logic into the tx_fixup()
routine (resolving a long overdue FIXME).
Minor historical note: "usbnet" started out as "net1080", then got
generalized to make it easier for other network drivers to reuse the
urb queueing and fault management code here.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch moves the ASIX AX8817x driver into its own file, just using
the "usbnet" infrastructure as a utility library.
- As with "cdc_subset" this involved minor Kconfig/kbuild tweaks,
moving code from one file to another, and exporting a few functions.
- This includes updates from Jamie Painter to add (and use) a new hook
to handle the different maximum transfer sizes for rx and tx sides.
- Also from Jamie, some bugfixes:
* MDIO byteorder (to address some PPC media negotiation problems);
* Force alignment at key spots when using ax88772 framing (on some
embedded hardware, the network stack will break otherwise);
* Address some link reset problems.
It also makes this driver use the standard (5 seconds vs half second)
control timeouts used elsewhere in USB; and wraps a few lines before
the 80th column (which previously needed it).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch creates the first of several separate "minidriver" modules
for "usbnet". This one handles only the very simplest hardware, which
can be handled almost entirely by the "usbnet" core.
- Move device-specific bits into new "cdc_subset.c" driver,
shrinking "usbnet" by a bunch;
- Export the functions needed to support this minidriver
(with EXPORT_SYMBOL_GPL);
- Update Kconfig and kbuild accordingly.
This one handles about a dozen different device types, with the most
notable ones being Gumstix and most Linux-based PDAs (except Zaurus
running that ancient code from Sharp).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This starts to prepare the core of "usbnet" to know less about various
framing protocols that map Ethernet packets onto USB, so "minidrivers"
can be modules that just plug into the core.
- Remove some framing-specific code that cluttered the core:
* net->hard_header_len records how much space to preallocate;
now drivers that add their own framing (Net1080, GeneLink,
Zaurus, and RNDIS) will have smoother TX paths. Even for
the drivers (Zaurus, Net1080) that need trailers.
* defines new dev->hard_mtu, using this "hardware" limit to
check changes to the link's settable "software" mtu.
* now net->hard_header_len and dev->hard_mtu are set up in the
driver bind() routines, if needed.
- Transaction ID is no longer specific to the Net1080 framing;
RNDIS needs one too.
- Creates a new "usbnet.h" header with declarations that are shared
between the core and what will be separate modules.
- Plus a couple other minor tweaks, like recognizing -ESHUTDOWN
means the keventd work should just shut itself down asap.
The core code is only about 1/3 of this large file. Splitting out the
minidrivers into separate modules (e.g. ones for ASIX adapters,
Zaurii and similar, CDC Ethernet, etc), in later patches, will
improve maintainability and shrink typical runtime footprints.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Fix
drivers/usb/misc/ldusb.c: In function `ld_usb_read':
drivers/usb/misc/ldusb.c:467: warning: int format, different type arg (arg 4)
drivers/usb/misc/ldusb.c: In function `ld_usb_write':
drivers/usb/misc/ldusb.c:531: warning: int format, different type arg (arg 4)
drivers/usb/misc/ldusb.c:532: warning: int format, different type arg (arg 5)
drivers/usb/misc/ldusb.c:532: warning: int format, different type arg (arg 6)
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Deprecate the OSS USB drivers.
This patch includes spelling fixes by Lee Revell.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
ohci-ppc-soc.c provides for a platform-specific callback mechanism for
when the HC is successfully probed or removed. It turned out that none
of the 3 platforms using it need this facility. Also the required
include/asm-ppc/usb.h has never been accepted. This patch removes the
callback feature and the include of <asm/usb.h>.
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Avoid an annoying message that can appear if devices are disconnected
in the middle of a USB scatterlist operation.
Message noted in http://bugzilla.kernel.org/show_bug.cgi?id=4373
(but the real issue there seems to be a SCSI level hang).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Use a more correct calculation for highspeed bit times.
http://bugzilla.kernel.org/show_bug.cgi?id=3604
This sort if thing might start to make a difference now that the high
speed periodic scheduler is more complete -- and even getting used.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch (as556) adds support for unbinding the usb_generic "driver".
That driver only binds to USB devices, as opposed to interfaces, and it
does nothing much besides marking which struct device's go with an
overall USB device plus providing suspend/resume methods. Now that
users can unbind drivers at will using the sysfs "unbind" attribute, we
need a rational way of dealing with USB devices that are no longer under
full control of the USB stack. The patch handles this by unconfiguring
the device, thereby removing all the interfaces and their associated
drivers and children.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch (as555) modifies the already-awkward
usb_lock_device_for_reset routine in usbcore by adding a timeout. The
whole point of the routine is that the caller wants to acquire some
semaphores in the wrong order; protecting against the possibility of
deadlock by timing out seems only prudent.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Fix the port numbering confusion for the S3C24XX platform device
information as reported by Rudy <rudyboy168@gmail.com>
This patch ensurs that the the ports are numbered 0 and 1.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch (as554) makes the hub driver disconnect any child USB devices
when it is unbound from a hub. Normally this will never happen, but
there are a few oddball ways to unbind the hub driver while leaving the
children intact. For example, the new "unbind" sysfs attribute can be
used for this purpose.
Given that unbinding hubs with children is now safe, the patch also
removes the code that prevented people from doing so using usbfs.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch (as553) merely moves some code and deletes an unneeded test in
the hub driver. This is in preparation for the patch that follows.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Adding flash-device support to the shuttle_usbat driver in 2.6.11
introduced the need to detect which type of device we are dealing with:
CDRW drive, or flash media reader.
The detection routine used turned out to not work for HP8200 CDRW users,
who saw their devices being detected as a flash disk.
This patch (which has been tested on both flash and cdrom) removes some
unnecessary code, moves device detection to much later during
initialization, and introduces a new detection routine which appears to
work.
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
29 July 2005, Cambridge, MA:
This afternoon Alan Stern submitted a patch to remove the URB_ASYNC_UNLINK
flag from the Linux kernel. Mr. Stern explained, "This flag is a relic
from an earlier, less-well-designed system. For over a year it hasn't
been used for anything other than printing warning messages."
An anonymous spokesman for the Linux kernel development community
commented, "This is exactly the sort of thing we see happening all the
time. As the kernel evolves, support for old techniques and old code can
be jettisoned and replaced by newer, better approaches. Proprietary
operating systems do not have the freedom or flexibility to change so
quickly."
Mr. Stern, a staff member at Harvard University's Rowland Institute who
works on Linux only as a hobby, noted that the patch (labelled as548) did
not update two files, keyspan.c and option.c, in the USB drivers' "serial"
subdirectory. "Those files need more extensive changes," he remarked.
"They examine the status field of several URBs at times when they're not
supposed to. That will need to be fixed before the URB_ASYNC_UNLINK flag
is removed."
Greg Kroah-Hartman, the kernel maintainer responsible for overseeing all
of Linux's USB drivers, did not respond to our inquiries or return our
calls. His only comment was "Applied, thanks."
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch started life as as479b, and has been rediffed. Please note
the order of submission of this latest patch series -- even tho this has
an older original number, it is the last patch I'll be sending today.
This patch changes the reported SCSI revision level to 2 for all
disk-type devices. This is needed in a few cases because the device
reports a level of 3 or higher but then crashes when given a REPORT LUNS
command (for which support is supposed to be mandatory at those levels).
This shouldn't harm us, since it only matters for sparse LUNs and we
have separate ways of coping with that.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch is originally from Nick Sillik, and has been rediffed against
the latest tree.
This patch adds usability to the OneTouch Button on Maxtor External USB
Hard Drives. Using an unusual device entry it declares an extra init
function which claims the interrupt endpoint associated with this
button. The button is connected to the input system.
Signed-off-by: Nick Sillik <n.sillik@temple.edu>
Signed-off-by: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch started life as as534, and has been re-diffed against the latest
tree.
usb-storage has a small loophole, a window between the time queuecommand
accepts a new command and the time the control thread starts to execute
it. If disconnect is called during that window, the driver won't cancel
the pending command -- we've been relying on the SCSI core to cancel it
for us during host removal. But it's better for usb-storage to cancel
it; this avoids races and reduces reliance on the SCSI core.
Fortunately cancelling these commands is easy to do; the key is to do it
_before_ calling scsi_remove_host.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch started life as as533, and has been re-diffed against the
current tree.
Disconnect processing in usb-storage naturally divides into two parts:
one to quiesce the driver (make sure no commands are executing or
queued) and remove the host, and the other to deallocate all the USB and
non-USB resources. This patch creates two subroutines to handle those
two parts. Mostly it's just code movement, but there is one significant
change. If the scsi-scanning thread fails to initialize but the host
has successfully been added, we need to quiesce the driver before
removing the host. After all, it's possible that scanning could have
been initiated from somewhere else, such as userspace -- very low
probability, but it's easily handled by calling the new subroutine.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch started life as as531 from Alan Stern. It has been rediffed
against the latest tree.
The SCSI people have deprecated the use of scsi_cmnd.serial_number for
anything other than printk. Worse than that, the SCSI core doesn't
always increment the number (when the error handler is running, for
example). So this patch creates a locally-stored value for use in
bulk-only tags. The net result is a simplification, since we no longer
have to save & restore the serial_number value while autosensing.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Switch isp116x-hcd over from root hub polling to interrupt. This change closes
also a race that was present with the old polling scheme: status polling could
happen in a time window, where root hub status bits were not stable.
Signed-off-by: Olav Kongas <ok@artecdesign.ee>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch removes support for user-provided platform-specific hardware reset
and clock starting/stopping functions. Hardware reset was needed earlier as
getting the software reset working was tricky due to the lack of documentation.
Recently, a number of people using isp116x have said the software reset is
working for them.
I haven't heard of anybody using the clock starting/stopping.
Signed-off-by: Olav Kongas <ok@artecdesign.ee>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch sets the isp116x to report overcurrent always per-port.
Signed-off-by: Olav Kongas <ok@artecdesign.ee>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The isp116x chip will now always be in per-port power switching mode. Remove
conf options to set any other mode.
Signed-off-by: Olav Kongas <ok@artecdesign.ee>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch removes the power-on-to-power-good-time configuration option for
isp116x-hcd.
Signed-off-by: Olav Kongas <ok@artecdesign.ee>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This just fixes some gfp flags warnings that joined us recently.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Rate-limit usblp printer error status messages.
I unplugged my USB printer and almost instantly got several hundred
of these in my kernel message log:
drivers/usb/class/usblp.c: usblp0: error -19 reading printer status
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch adds an entry in the unusual_devs.h file for a Mitsumi card
reader/floppy combo that uses a VIA chipset. The IGNORE_RESIDUE flag was
needed for the second LUN to operate properly.
Signed-off-by: Mihnea-Costin Grigore <mihnea@zulu.ro>
Signed-off-by: Phil Dibowitz <phil@ipom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch (as551) fixes another little problem recently added to the
USB core. Someone didn't fix the type of the first argument to
unregister_chrdev_region.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch introduces a /sys/class/usb_device/ class
where every connected usb-device will show up:
tree /sys/class/usb_device/
/sys/class/usb_device/
|-- usb1.1
| |-- dev
| `-- device -> ../../../devices/pci0000:00/0000:00:1d.0/usb1
|-- usb2.1
| |-- dev
| `-- device -> ../../../devices/pci0000:00/0000:00:1d.1/usb2
...
The presence of the "dev" file lets udev create real device nodes.
kay@pim:~/src/linux-2.6> tree /dev/bus/usb/
/dev/bus/usb/
|-- 1
| `-- 1
|-- 2
| `-- 1
...
udev rule:
SUBSYSTEM="usb_device", PROGRAM="/sbin/usb_device %k", NAME="%c"
(echo $1 | /bin/sed 's/usb\([0-9]*\)\.\([0-9]*\)/bus\/usb\/\1\/\2/')
This makes libusb pick up the real nodes instead of the mounted usbfs:
export USB_DEVFS_PATH=/dev/bus/usb
Background:
All this makes it possible to manage usb devices with udev instead of
the devfs solution. We are currently working on a pam_console/resmgr
replacement driven by udev and a pam-helper. It applies ACL's to device
nodes, which is required for modern desktop functionalty like
"Fast User Switching" or multiple local login support.
New patch with its own major. I've succesfully disabled usbfs and use real
nodes only on my box. With: "export USB_DEVFS_PATH=/dev/bus/usb" libusb picks
up the udev managed nodes instead of reading usbfs files.
This makes udev to provide symlinks for libusb to pick up:
SUBSYSTEM="usb_device", PROGRAM="/sbin/usbdevice %k", SYMLINK="%c"
/sbin/usbdevice:
#!/bin/sh
echo $1 | /bin/sed 's/usbdev\([0-9]*\)\.\([0-9]*\)/bus\/usb\/\1\/\2/'
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
To recap: My new G4 powerbook has a bluetooth device that boots up in
what apppears to be a compatability mode - it looks exactly like an HID
keyboard/mouse device.
A special command sequence is sent to switch it into full bluetooth
mode. When this occurs the original HID device vanishes, and a new
(bluetooth HID) USB device appears on the bus with a different product
ID.
The original thread is here:
http://sourceforge.net/mailarchive/message.php?msg_id=12532263
The attached patch adds the device to the hid-core quirks so that
hid-core ignores it.
Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>