- 17 Jun, 2004 3 commits
-
-
David Brownell authored
Stuart Hayes here at Dell has identified this or/and mix-up in the ehci-hcd driver. Because of this, ehci-hcd is not properly released by BIOSes supporting full 2.0 and port behavior can then become erratic. (Code predates general availability of such BIOS firmware. This version of the patch also fixes minor linewrap issues.) From: Gary Lerhaupt <Gary_Lerhaupt@Dell.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Sean Young authored
Here is a patch for the phidgetservo driver -- it was using memory after kfree(), and using driver_info is much nicer. :) Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch adds a bit-array to the hub driver's private data structure, used for storing the contents of the hub's interrupt status message. That message indicates which ports have events pending (and whether the hub itself has events pending). By only polling the status of the ports listed in the bit-array we can save a fair amount of overhead in hub communication. (The #error test added to hub.h is a little awkward, but it's purely precautionary -- it won't matter until someone decides to support hubs with more than 31 ports!) Also included in the patch, since this seemed the perfect opportunity for it, is Byron's suggestion for handling hub events in the order in which they were received. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
- 14 Jun, 2004 4 commits
-
-
Alan Stern authored
This patch removes the private semaphore used by the hub driver, and uses the regular "serialize" semaphore instead. This will satisfy the general locking requirements for adding and removing devices attached to the hub. The only tricky aspect is that now the hub event handler must take a reference to the hub device while waiting to acquire the semaphore, in case the hub is disconnected during the wait. The patch also replaces a few occurrences of spin_lock_irqsave() in regions where interrupts are known to be enabled with spin_lock_irq(). Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch repairs a bug introduced by an earlier patch: The TT initialization code was moved to _after_ the TT's first use. The patch simply puts the code back the way it used to be. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Matthew Dharm authored
This patch fixes a race is disconnecting a usb-storage device that occurs with the SCSI layer. It's primarily reproducable via adding delays into various disconnect and reset processing paths, but has also been encountered in the field. This patch started life as as281b, and was modified by me only to patch properly against current kernels. The main features of the patch are: Store the host pointer at the start of the control thread rather than trying to get it from srb->device; after the host is removed the SCSI device structure may no longer exist. Keep dev_semaphore locked during the entire time the control thread or reset handlers are using the us_data structure. Reorder the items in dissociate_dev() and release_resources() so that things are released in the opposite order from the way they were acquired originally. Don't bother to increment and decrement the usb_device's reference count; it's unnecessary. In disconnect(), first set the DISCONNECTING flag so that no more I/O will take place and no more requests will be accepted. Next, cut short the current command and wait for it to finish. Then call scsi_remove_host(). The SCSI core guarantees that when scsi_remove_host() returns, the host will not be in error recovery and all outstanding commands will have been cancelled. Remove some old useless left-over code that was #if'ed out. Use a wait_queue for the 6-second delay during device resets so that we can be woken up in the middle if a disconnect occurs. The key point here is that after scsi_remove_host(), everything is idle as far as the SCSI midlayer is concerned. But if there was a command in progress at the time, the midlayer will abort it without telling us or waiting for it to complete. Hence we have to wait for the control thread to be idle before we can try to kill it. This should happen quickly, since all I/O attempted by the thread will fail immediately. Signed-off-by: Matthew Dharm <mdharm-usb@one-eyed-alien.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Matthew Dharm authored
This patch does a few things (all in the same section of code). It started life as patches as226b, as280, and as275. Later it was merged into as226e and I added significantly to it. First, this patch introduces a new config option to allow people to enable write-protect detection for their USB devices. With some luck, we've finally got it right and can eventually remove this option in favor of enabling this behavior all the time. Next, we change how we force some flags on -- it turns out that there are some 'generic' entries in the SCSI devinfo which was overriding us when we didn't want it. Finally, we add a safety check to the workaround for GeneSys Logic devices -- if the max_sectors parameter has already been turned down, we won't turn it up. Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
- 11 Jun, 2004 6 commits
-
-
David Brownell authored
Adds a missing byteswap that would affect interrupt transfers with EHCI on big-endian platforms, like Rick's MIPS-4km uClinux. Needed for external hubs, and then likely for mice, keyboards, and so on. From: Rick Sewill <rsewill@cableone.net> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
This matches the behavior for other descriptor fetches. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
If the string descriptor fetch works, no problem. Else make the disconnect() logic -- newly called because of "recent" changes to interface claiming logic -- use its fast cleanup path, since we're still not fully set up yet. Should resolve OSDL bugid 2714; please merge. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
This prevents some warnings during modprobe. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Torrey Hoffman authored
Here are some contributed improvements for the ATI remote driver. I submitted the driver and it was accepted several months ago. Since then a few people have sent me patches and suggestions. This patch adds two things: (1) support for the "Lola" X10 remote, sent to me by Seth Cohn <sethcohn (at) yahoo.com> (2) key autorepeat support, sent to me by Vincent Vanackere <vanackere (at) lif.univ-mrs.fr> The key autorepeat support has been tested by me, but the Lola support has not, as I don't have the hardware. Thanks to Seth and Vincent, with my apologies for taking so long to forward their improvements along. Signed-off-by: Torrey Hoffman <thoffman@arnor.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch implements something we've been lacking for a long time: a way to mark devices as USB_STATE_NOTATTACHED as soon as we know that they're gone. The usb_device->state member is no longer protected by the ->serialize semaphore; instead there's a new private spinlock. Usbcore routines should no longer set ->state directly; instead they should use the new utility routine usb_set_device_state(). There are protections against changing states while devices are being added or removed. Change assignments to udev->state into calls of usb_set_device_state(). Add new private device_state_lock to the hub driver, along with usb_set_device_state() and recursively_mark_NOTATTACHED(). Acquire the new spinlock while adding or removing children[] pointers. When disabling a port that has a child device, mark the child as NOTATTACHED. You mentioned once having tried to do something like this and running into trouble. Take a good look and let me know if you see any difficulties here. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
- 10 Jun, 2004 3 commits
-
-
Greg Kroah-Hartman authored
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Greg Kroah-Hartman authored
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Robert T. Johnson authored
Since ctrl is copied in from userspace, ctrl.data cannot safely be dereferenced. Let me know if you have any questions or if I've made a mistake. Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
- 09 Jun, 2004 5 commits
-
-
Greg Kroah-Hartman authored
This gets rid of usb/host and puts the file in the proper drivers/usb/host directory. Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
On Wed, 9 Jun 2004, David Brownell wrote: > Needs an update for ohci-lh7a404.c too ... I didn't even know this driver existed! Where did usb/host/* come from? Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
After my last few changesets there were a few small items that needed to be tidied up. Update kerneldoc to reflect the actual operation of usb_disconnect() and usb_new_device(). The new locking requirements are listed too, though they aren't all implemented yet. Fulfill the new locking requirement in hcd_panic(). Remove unneeded local variables to conserve stack space in usb_disconnect(), which calls itself recursively. In hub_port_connect_change(), store the parent's children[] pointer as late as possible and don't lock the new device until then (that's when it becomes globally accessible). This will minimize the time that the not-fully-configured device structure is visible to other parts of the kernel. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
There are a few places where the code enumerates through all the USB devices on all the buses, starting with each bus's root hub and working down. However a bus does not always have a root hub, and the code does not check that the root_hub pointer is non-NULL. This patch fixes the problem, using the usb_bus_list_lock semaphore to synchronize access when root hubs are added or removed. In addition it seemed like a good idea to minimize the time that a non-fully-configured root hub is accessible through the bus's pointer. So this patch delays setting the pointer and holds usb_bus_list_lock while configuring a root hub. It turned out that a bunch of things needed to be changed for all this to work: Check for NULL root_hub pointer in usb_device_read() and usb_find_device(). Pass the root-hub device as a separate argument to hcd_register_root(). Make usb_register_root_hub() acquire the usb_bus_list_lock and set the bus->root_hub pointer. For consistency's sake, move the place where the children[] pointer to a non-root-hub device gets stored as close as possible to where usb_new_device() is called. Make usb_disconnect() acquire the usb_bus_list_lock when removing a root hub. Change usb_hcd_pci_remove() and the non-PCI host drivers so that they call usb_disconnect() with a pointer to the bus's root_hub pointer, not a pointer to a temporary variable. Change all the host controller drivers not to store the root_hub pointer in the bus structure but instead to pass it as a new argument to hcd_register_root(). I made some attempt to update the hc_sl811 driver along with the rest, but it's pretty clear that driver won't work in the current framework. Among other things, it never reads the root hub's device descriptor. To what extent is the driver really supported? Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Oliver Neukum authored
- add soft reset ioctl Signed-off-by: Oliver Neukum <oliver@neukum.name> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
- 08 Jun, 2004 19 commits
-
-
Alan Stern authored
This one-line patch corrects a simple problem in the g_file_storage driver. It neglected to initialize the endpoint-autoconfiguration library before using it. Please apply. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
Support for the Sharp LH7A404 OHCI, another non-PCI implementation. This uses a platform_device and a workaround for a register read problem. Signed-off-by: Marc Singer <elf@buici.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
Add byteswapping. Original version partially worked on PPC with Net2280, this version applies to the latest RNDIS code but hasn't been retested on big-endian. Ping should be working in at least one one direction. Also added a handful of other things from my BK: track suspend/resume (to eventually implement wake-on-lan), give a better rndis error message, and add missing declarations for PM-related OIDs (usage is #ifdeffed out by previous patch). From: Jon Neal <jon@ballardtech.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
This makes net2280 behave more correctly with respect to usb suspend and resume processing. So for example gadget zero autoresume testing works. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
This adds hub_set_power_budget(), mostly so that HCDs for low powered ports (cell phone, PDA, etc) can more easily report their true power budgets. It's not always 500mA per root hub port; this makes dummy_hcd report the minimum, 8mA. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/usb-2.6
-
David Howells authored
Stop downgrade_write() from under-adjusting the rwsem counter in optimised rw-semaphores. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
bk://gkernel.bkbits.net/net-drivers-2.6Linus Torvalds authored
into evo.osdl.org:/home/torvalds/v2.6/linux
-
Jesse Brandeburg authored
Signed off by: Jesse Brandeburg
-
Andrew Morton authored
From: Carl-Daniel Hailfinger <c-d.hailfinger.kernel.2004@gmx.net> Handle going-away devices.
-
Herbert Xu authored
This patch fixes an incorrect MCA check as well as a leak on probe failure in at1700.
-
Herbert Xu authored
This patch frees the netdev on failure in mc32_probe in 3c527.
-
Alan Cox authored
"Gee it works better if you turn the chip on before programming it" The ioctl to ethtool change broke that little detail... I made the changes, Jeff agreed in principle, Red Hat owns them and I know no reason they can't be contributed under the GPL v2 or later. Requires: ethtool change
-
Alan Cox authored
Several ethernet drivers have been broken by the ethtool support because the ioctl code used to power the interface up and down as needed. Rather than add this to each driver call Jeff Garzik suggested we add hooks for before/after ethtool processing. This patch implements them which makes fixing the PM stuff easier, as the epic100 patch to follow will show. It also cleans up the via-velocity driver pm/ethtool logic a great deal. As per Jeff's request the before handler is allowed to fail the operation. -- The contribution herein included is a creation of Red Hat Inc. It is hereby submitted under the license of the existing files and as a derivative work thereof. I know of no reason for not having the right to submit the work herein included. (Bluff your way in legalese ;))
-
Michael Hunold authored
Adrian Bunk noticed that the tda1004x DVB frontend driver was broken and sent a small patch that at least made the driver work again. There was a discussion afterwards about the kernel syscall interface, but at the end, the tda1004x DVB frontend driver is still non-functional. This re-applies the temporary band-aid.
-
Paul Mackerras authored
The paca struct contains a pointer to the current task, which is used for the `current' macro. For some reason, this field is a u64, and every time we use it we need a cast, because it is really a pointer. This patch cleans things up a little by making it a pointer to struct task_struct and removing the casts. It also removes a now-incorrect comment which said that r13 contains current (it now holds &paca[smp_processor_id()]). Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
Occasionally the ppc64 kernel emulates a usermode instruction, for example in the alignment exception handler. Kumar Gala pointed out (in the context of the ppc32 kernel) that if the instruction was being single-stepped, and we end up emulating the instruction, we should then send the process a SIGTRAP as if it had not been emulated and the process had then taken a single-step exception. This patch implements this for ppc64. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into evo.osdl.org:/home/torvalds/v2.6/linux
-
bk://kernel.bkbits.net/gregkh/linux/usb-fix-2.6Linus Torvalds authored
into evo.osdl.org:/home/torvalds/v2.6/linux
-