- 03 Nov, 2004 8 commits
-
-
Alan Stern authored
This patch removes the code for deallocating the usb_hcd structure from the three PCI-based host controller drivers. It also moves the embedded struct usb_hcd member to the front of the larger driver-specific structures, as required for the core to do its work. Please apply. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch contains changes to usbcore making the core responsible for deallocating memory for usb_hcd structures, rather than calling back into the host controller drivers. This solves a long-standing oops, since the drivers may have been unloaded from memory by the time the release routine is called. (There probably are some Bugzilla entries caused by this, but I don't know which ones.) To really fix this up properly will require merging the HCD "glue" layer into the higher core structures. As things stand now, a usb_hcd contains a usb_bus member, and the usb_bus is associated with a class_device: when the class_device is released the usb_hcd gets deallocated. It's awkward in that neither the usb_hcd nor the usb_bus has its own reference count, and the class_device is created when the bus is registered (not when it is initialized). Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
Neither requests to suspended devices nor control request stalls should ever log fault messages, they happen routinely; this stops such logging. There's also a better message for control/bulk timeout -- but after the HCD finishes unlinking the URB, not from 'swapper' in the timer callback! Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
Delete the second pci_set_master(), not the first one. Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Lonnie Mendez authored
This patch adds equal support for interrupt out transfers to the usb serial core to match the current interrupt in support. It also improves a few debug messages, nothing major. Signed-off-by: Lonnie Mendez <lmendez19@austin.rr.com> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch reorganizes the startup and shutdown code in the dummy-hcd driver to make it consistent with all the other host controller drivers. For example, the platform device representing the HC hardware is allocated separately and given as an argument to the probe() and remove() routines, as it would be for a real device. This paves the way to making widespread and uniform changes in all the HCDs at once. Please apply. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
Although this is the first patch in a series of six, it's not closely related to the others. This includes a whole bunch of simple cleanups for the dummy-hcd driver, all of which fall into the following categories: Convert explicit container_of() to type-safe inline functions, Minimize reliance on global variables. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Greg Kroah-Hartman authored
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
- 01 Nov, 2004 32 commits
-
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/usb-2.6
-
Alan Stern authored
This patch changes the device initialization code for the UHCI driver to use a more meaningful timeout than simply waiting for 1000 loop iterations. It also causes the code to fail when a timeout occurs rather than proceed blindly. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Adrian Bunk authored
The patch below removes an unused function from drivers/usb/host/ohci-dbg.c Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Adrian Bunk authored
The patch below removes an unused function from drivers/usb/media/stv680.c Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Arnaldo Carvalho de Melo authored
[PL2303] add id for Siemens x65 series of mobiles Tested with CX65 and S65 models Signed-off-by: Arnaldo Carvalho de Melo <acme@conectiva.com.br> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Thomas Gleixner authored
To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
With 2.6.10 getting warning about ohci_restart() defined and not used if !CONFIG_PM. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch fixes a tiny SMP-type hole in root-hub synchronization. Although the HCD glue layer properly unlinks root-hub status URBs synchronously, it doesn't do so for URBs sent to endpoint 0. This patch copies some code from usb_kill_urb, to make such unlinks wait until the host controller driver has finished handling the URB. This behavior is required for hcd_endpoint_disable to work correctly. The patch also renames usb_rh_status_dequeue to usb_rh_urb_dequeue (to better describe its updated function) and declares the routine static. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch, suggested by Karsten Wiese, converts a few remainder ('%') operations in the UHCI driver to bitwise-and ('&'). It's not a huge change, but this is a common idiom in C and it will save a few bytes with some compilers. Also one of the changes is in an inner loop, so it might help a little bit. From: Karsten Wiese <annabellesgarden@yahoo.de> Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
Minor updates for better diagnostics from usbcore: - Only print ep0 maxpacket when it's not what we first tried - have khubd say when it's looking at a hub - When warning about synchronous control or bulk timeouts, report the program that triggered the message. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
This marks the controller as running at the end of a "resume" path used when the controller lost power, or was otherwise reset (not a real resume). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
This patch much improves suspend/resume behavior of EHCI, as tested with "echo suspend > /sys/power/state" and "echo disk > /sys/power/state". - Quiescing the controller has to handle a case where the software has finished shutting down periodic and async schedules, but the hardware hasn't yet finished its part. - When suspending the root hub, be more by-the-book so that resumes behave better. - When resuming after suspend-to-disk, or in general when no port is suspended, the driver re-uses the initialization logic. That logic needed to understand that resources don't need re-allocation, and that a few things need to be reset to the default state. - More code paths needed to notice a suspended controller, and stop right away. - To shut down the controller, start with the root hub ports and work up from there. Tested by writing "suspend" or "disk" to /sys/power/state; several systems resumed OK, at least given the associated usbcore patches. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
Recent PCI changes are killing USB Power Management, and maybe more. The root cause is a change to the PCI suspend code from back in May, saving a copy of pci config space after the PCI driver did. That was OK until a recent change made it overwrite the copy that the PCI device driver would later restore ... net result for USB is that DMA would always be disabled after resume. This patch restores the long-documented behavior of PCI driver suspend/resume calls (drivers are responsible for saving and restoring config space state), and also removes a superfluous line from the USB suspend logic. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
This patch makes usbcore behave better with system sleep states, fixing some PM/PCI integration problems as well as some PM/USB ones. - PCI HCDs should behave better, even if they don't support PCI PM; tested with both ACPI and APM suspend cycles, and swsusp. - Systems that advertise ACPI S1 support don't necessarily support the PCI D1 or D2 states for their USB controllers. (Examples include Centrino laptops.) This patch makes them suspend into D3hot, which always works (and won't take much longer to resume, either). - Handle the "go into deeper suspend" transition the way PCI drivers are supposed to. - Understand that USB only has one suspend state: if the device is suspended, it can't do any better. - Export some symbols to HCDs, so they can reuse more of the existing usbcore framework. Plus minor related cleanups. The PCI D1/D2 state issue is a variant of an earlier problem, with the same root cause: the PM core thinking there's a one-to-one mapping between system states (roughly: ACPI S0/S1/S3/S4) and PCI states that a given device can support (only D0 is required, D3hot is common). That same issue comes up again with USB. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Arjan van de Ven authored
Hi, Patch below removes somem dead, never used code from the usbvideo driver, including a function that uses interruptible_sleep_on_timeout() oddly. Signed-off-by: Arjan van de Ven <arjan@fenrus.demon.nl> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch adds a workaround for host controllers that don't properly support remote wakeup. That includes Intel controllers (on certain badly designed motherboards) and a recent Genesys Logic controller. Although the UHCI driver avoids suspending the Intel-based controllers, this workaround will handle things about as well. In the not-too-distant future I will have to revamp most of the root-hub suspend/resume code in the UHCI driver. For now, please apply the patch. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Lonnie Mendez authored
This patch adds the Delorme Earthmate usb gps and the Cypress hid->com rs232 adapter to hid-core's device blacklist. Signed-off-by: Lonnie Mendez <lmendez19@austin.rr.com> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Nishanth Aravamudan authored
Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Christoph Lameter authored
- fix broken IBM cyclone time interpolator support - add support for cyclic timers through an addition of a mask in the timer interpolator structure - Allow time_interpolator_update() and time_interpolator_get_offset() to be invoked without an active time interpolator (necessary since the cyclone clock is initialized late in ACPI processing) - remove obsolete function time_interpolator_resolution() - add a mask to all struct time_interpolator setups in the kernel - Make time interpolators work on 32bit platforms Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Kay Sievers authored
Move hotplug_path[] out of kmod.[ch] to kobject_uevent.[ch] where it belongs now. At some time in the future we should fix the remaining bad hotplug calls (no SEQNUM, no netlink uevent): ./drivers/input/input.c (no DEVPATH on some hotplug events!) ./drivers/pnp/pnpbios/core.c ./drivers/s390/crypto/z90main.c Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Dmitry Torokhov authored
Driver core: when binding device to a driver create "driver" symlink in device's directory. Rename serio's "driver" attribute to "drvctl" (write-only) Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Kay Sievers authored
On Sat, Oct 30, 2004 at 04:54:29AM +0200, Kay Sievers wrote: > On Sat, Oct 30, 2004 at 02:25:23AM +0200, Kay Sievers wrote: > > On Sat, Oct 30, 2004 at 02:00:45AM +0200, Kay Sievers wrote: > > > On Fri, Oct 29, 2004 at 06:13:19PM -0500, Greg KH wrote: > > > > On Fri, Oct 29, 2004 at 11:28:56PM +0200, Kay Sievers wrote: > > > > > > But there might still be a problem. With this change, the sequence > > > > > > number is not sent out the kevent message. Kay, do you think this is an > > > > > > issue? I don't think we can get netlink messages out of order, right? > > > > > > > > > > Right, especially not the events with the same DEVPATH, like "remove" > > > > > beating an "add". But I'm not sure if the number isn't useful. Whatever > > > > > we may do with the hotplug over netlink in the future, we will only have > > > > > /sbin/hotplug for the early boot and it may be nice to know, what events > > > > > we have already handled... > > > > > > > > > > > I'll hold off on applying this patch until we figure this out... > > > > > > > > > > How about just reserving 20 bytes for the number (u64 will never be > > > > > more than that), save the pointer to that field, and fill the number in > > > > > later? > > > > > > > > Ah, something like this instead? I like it, it's even smaller than the > > > > previous patch. Compile tested only... > > > > > > I like that. How about the following. It will keep the buffer clean from > > > random chars, cause the kevent does not have the vector and relies on > > > the '\0' to separate the strings from each other. > > > I've tested it. The netlink-hotplug message looks like this: > > > > > > recv(3, "remove@/class/input/mouse2\0ACTION=remove\0DEVPATH=/class/input/mouse2\0SUBSYSTEM=input\0SEQNUM=961 \0", 1024, 0) = 113 > > > > Hmm, these trailing spaces are just bad, sorry. I'll better pass the > > envp array over to send_uevent() and clean up the keys while copying > > the env values into the skb buffer. This will make the event payload > > more safe too. So your first version looks better. > > How about this? We copy over key by key into the skb buffer and the > netlink message can get the envp array without depending on a single > continuous buffer. > > The netlink message looks nice like this now: > > recv(3, " > add@/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0\0 > HOME=/\0 > PATH=/sbin:/bin:/usr/sbin:/usr/bin\0 > ACTION=add\0 > DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0\0 > SUBSYSTEM=usb\0 > SEQNUM=991\0 > DEVICE=/proc/bus/usb/003/008\0 > PRODUCT=46d/c03e/2000\0 > TYPE=0/0/0\0 > INTERFACE=3/1/2\0 > ", 1024, 0) = 268 Here is an improved version that uses skb_put() to fill the skb buffer, instead of trimming the buffer to the final size after we've copied over all keys. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Dmitry Torokhov authored
Driver core: rename bus_match into driver_probe_device and export it so subsystems can bind an individual device to a specific driver without getting involved with driver core internals. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Dmitry Torokhov authored
Driver core: make device_attach() global and export it and driver_attach() so subsystems can have finer control over binding process. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Andrew Morton authored
From: Paul Mackerras <paulus@samba.org> Currently the device_pm_foo() functions are rather prone to deadlocks during suspend/resume. This is because the dpm_sem is held for the duration of device_suspend() and device_resume() as well as device_pm_add() and device_pm_remove(). If for any reason you get a device addition or removal triggered by a device's suspend or resume code, you get a deadlock. (The classic example is a USB host adaptor resuming and discovering that the mouse you used to have plugged in has gone away.) This patch fixes the problem by using a separate semaphore, called dpm_list_sem, to cover the places where we need the device pm lists to be stable, and by being careful about how we traverse the lists on suspend and resume. I have analysed the various cases that can occur and I am confident that I have handled them all correctly. I posted this patch together with a detailed analysis 10 days ago. Signed-off-by Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Andrew Morton authored
From: Simon Derr <Simon.Derr@bull.net> Add a `needs_read_fill' field in sysfs_buffer so that reading after a write in a sysfs file returns valid data. (instead of the data that have been written, that may be invalid or at the wrong offset) Signed-off-by: Simon Derr <simon.derr@bull.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Andrew Morton authored
From: Simon Derr <Simon.Derr@bull.net> - fixes the race between threads by adding a semaphore in sysfs_buffer - allocates the buffer upon call to pread(). We still call again fill_read_buffer() if the file is "rewinded" to offset zero. - fixes the comparison in flush_read_buffer(). Signed-off-by: Simon Derr <simon.derr@bull.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> o This patch stops the pinning of non-directory or leaf dentries and inodes. The leaf dentries and inodes are created during lookup based on the entries on sysfs_dirent tree. These leaves are removed from the dcache through the VFS dentry ageing process during shrink dcache operations. Thus reducing about 80% of sysfs lowmem needs. o This implments the ->lookup() for sysfs directory inodes and allocates dentry and inode if the lookup is successful and avoids the need of allocating and pinning of dentry and inodes during the creation of corresponding sysfs leaf entry. As of now the implementation has not required negative dentry creation on failed lookup. As sysfs is still a RAM based filesystem, negative dentries are not of any use IMO. o The leaf dentry allocated after successful lookup is connected to the existing corresponding sysfs_dirent through the d_fsdata field. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> o This patch implements the sysfs_dir_operations file_operations strucutre for sysfs directories. It uses the sysfs_dirent based tree for ->readdir() and ->lseek() methods instead of simple_dir_operations which use dentry based tree. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> o This patch uses the sysfs_dirent based tree while removing sysfs files and directories. This avoids holding dcache_lock by not using dentry based vfs tree. Thus simplyfying the removal logic in sysfs. o It uses two helper routines sysfs_get_name(), to get the name for sysfs element and sysfs_drop_dentry() to delete the dentry given a sysfs_dirent. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> o This patch introduces the new sysfs_dirent data structure. The sysfs_dirent is added to the dentry corresponding to each of the element which can be represented in sysfs like, kobject (directory), text or binary attributes (files), attribute groups (directory) and symlinks. o It uses dentry's d_fsdata field to attach the corresponding sysfs_dirent. o The sysfs_dirents are maintained in a tree of all the sysfs entries using the s_children and s_sibling list pointers. o This patch also changes how we access attributes and kobjects in file_operations from a given dentry, basically introducing one more level of indirection. o The sysfs_dirents are freed and the sysfs_dirent tree is updated accordingly upon the deletion of corresponding dentry. The sysfs dirents are kept alive as long as there is corresponding dentry around. The are freed when the dentry is finally out of dcache using the ->d_iput() method. o This also fixes the dentry leaks in case of error paths after sysfs has got a newly alocated (and hashed) dentry from sysfs_get_dentry() by d_drop()'ing the dentry. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> My fault, a bad typo in fs/sysfs/bin.c. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-