- 25 Mar, 2004 29 commits
-
-
Alan Stern authored
This patch introduces a major simplification into the UHCI driver by replacing its multiple spinlocks with a single one. The protected area of code is slightly larger and there's more possibilities for contention on an SMP system, but I think that shouldn't be a problem. Stephen Hemminger has been kind enough to test this on his SMP computer and he hasn't encountered any difficulties.
-
Alan Stern authored
This patch simplies the way the UHCI driver handles short control transfers. When a transfer is short the HC will stop handling that endpoint, and it's necessary to get it going again so that the status stage of the control transfer can take place. Currently the driver does this by allocating a new QH for the transfer and setting its element pointer to point at the final status TD. The old QH is recycled. But it's not necessary to go to all that trouble; the element pointer in the original QH can be updated directly. Normally the element pointer is supposed to be owned by the HC, and it's not safe to just change its value since the HC may overwrite it at any time. But when a transfer is stopped because of a short packet, the current TD is marked inactive and the HC will not update the element pointer. To write an unchanged pointer value back to memory would be a waste of PCI bus cycles. Now the UHCI spec doesn't say explicitly that an HC _can't_ do this, but I've tested both Intel and VIA hardware and neither of them does. As a side effect of this change, some of the code for removing QHs can be eliminated.
-
Alan Stern authored
This patch makes some simple changes to the way the UHCI driver does short packet detection. The current implementation is incorrect in several ways: The Short-Packet-Detect flag is set for OUT transfers, which yields undefined behavior according to the UHCI spec. It's not set for URBs with URB_SHORT_NOT_OK, which is just the opposite of what we want! Those are the ones where short packets do matter. It is set for the last packet in a transfer, which causes an unnecessary pause in the data flow (except of course that the pause _is_ necessary when URB_SHORT_NOT_OK is set). The patch also implements the URB_NO_INTERRUPT flag for bulk transfers, which can help improve system performance by reducing interrupt overhead.
-
Alan Stern authored
This is a very minor point, unlikely ever to come up. But just in case... It's conceivable that a device might transmit different values for a configuration descriptor's wTotalLength the first time we ask for it (in order to get the length) and the second time (to get the entire descriptor). Should that improbable event occur, the rawdescriptor buffer could be allocated using a size that's smaller than the length recorded in the rawdescriptor itself. This patch protects devio.c against such a problem. If you feel this sequence of events is too unlikely to worry about, then don't bother to apply the patch.
-
Oliver Neukum authored
there's a race in how open handles multiple openers. You implement exclusive opening and wait for close in case of further openers. However if there are more than one waiter, only one of them must be allowed to proceed.
-
Alan Stern authored
On Thu, 18 Mar 2004, Urban Borstnik wrote: > The 2.6.4 and 2.6.3 (and possibly some earlier) kernels log the > following message when I plug in a Lexar CompactFlash Reader: > > usb-storage: This device (05dc,b002,0113 S 06 P 50) has unneeded > SubClass and Protocol entries in unusual_devs.h > Please send a copy of this message to <linux-usb-devel@lists.sourceforge.net> > > Otherwise it has been working very well with the devepment kernels on at > least 4 machines ever since a trivial fix was introduced for this device > to unusual_devs.c over a year ago. > > Best regards, > Urban. Thank you for sending this in. An update will appear soon.
-
Torrey Hoffman authored
On Thu, 2004-03-18 at 07:44, Oliver Neukum wrote: > Hi, > > you must use set_current_state() only after usb_submit_urb() with GFP_KERNEL > as second argument, because it may sleep to allocate memory and is woken up > resetting the state to TASK_RUNNING. In that case you had a busy polling loop. > Furthermore, always use wake_up unconditionally. It checkes anyway. Thanks for reviewing this code, I'm new to Linux driver development and more eyes on my work is a good thing. I've actually been working on some more cleanups to the driver to fix the race between open and disconnect, and was just about to send it in... So, the attached patch against 2.6.5-rc1-mm1 includes a mutex to lock the open/disconnect paths, modelled after the usb-skeleton driver. It includes Oliver Neukum's fixes and other cleanups as well.
-
Michael Still authored
Correct kernel-doc comment with incorrect parameters documented
-
Alan Stern authored
I saw that you just added another unusual_devs.h entry submitted by Henning Schild, for vendor ID 0x05e3. It turns out this is our old friend Genesys Logic. A recent message from Brad Campbell included a Windows driver file by Genesys, and it included these lines: USB\VID_05E3&PID_0700.DeviceDesc="USB Card Reader" USB\VID_05E3&PID_0701.DeviceDesc="USB Optical Device" USB\VID_05E3&PID_0702.DeviceDesc="USB Mass Storage Device" Based on this information, we can clean up the 0x05e3 entries in unusual_devs.h. This patch puts all three entries into a regularized form.
-
Alan Stern authored
On Tue, 16 Mar 2004, John Katzmaier wrote: > Hi, > > Just wanted to let you know that when using my Panasonic PV-SD4090 digital > camera with kernel 2.6.3, I found this entry in my logs: > > Mar 16 21:43:27 rocket kernel: usb-storage: Vendor: Panasonic > Mar 16 21:43:27 rocket kernel: usb-storage: Product: LS-120 Camera > Mar 16 21:43:27 rocket kernel: usb-storage: This device (04da,0901,0109 S 00 P > 00) has an unneeded Protocol entry in unusual_devs.h > Mar 16 21:43:27 rocket kernel: Please send a copy of this message to > <linux-usb-devel@lists.sourceforge.net> > > I thought it might be best to follow its instructions and so I did. > > Thanks. > > -John Katzmaier Thank you for sending this in. An update will appear in a forthcoming kernel. Greg, here's the patch.
-
David Brownell authored
Need to initialize timers a bit earlier to handle certain initialization faults. OSDL bug 2006 Need to initialize some timers a bit earlier to clean up safely after very early init HCD failures. Those early init faults were needlessly mysterious since they didn't emit diagnostics except at HCD discretion.
-
David Brownell authored
Some boot-time messages were obnoxiously long because they used "old-style" diagnostics. OSDL bugid 481 Get rid of most remaining "old style" diagnostics from usbcore. Most messages use driver model style diagnostics. Messages that don't have an associated device use the standard kernel printk wrappers and label themselves as from "usbcore". (Except that there's no such wrapper for KERN_ERR.) This doesn't touch usbfs, "config.c" (Alan's patches do this), or usb_reset_device() (needs a more substantial overhaul). Or any other USB drivers (notably HID).
-
Alan Stern authored
This patch makes some improvements to the code in config.c. Create a subroutine to handle the repeated task of skipping forward to the next descriptor of a certain type. Remove some fairly useless debugging messages (they could never even have been enabled in the pre-as221 code). Verify that endpoint descriptors don't have an address equal to 0 (as well as not being above 15). Rename some local variables so they are a little more consistent and meaningful. Despite all the changes, the functionality should remain the same. Please apply.
-
Alan Stern authored
This patch improves error reporting in the configuration parsing routines. It also adds a few extra minor tweaks. #include linux/config.h and make the usual DEBUG settings available. Use the driver-model dev_xxx() macros for log output. Be much more explicit about the nature of errors, including configuration, interface, and altsetting numbers where appropriate. Log fatal problems as errors, non-fatal ones as warnings. Remove a #define'd constant that is already set in linux/usb.h. Fix some variables declared as pointer to char that really should be pointers to unsigned char. Replace a whole bunch of "out-of-memory" error messages with a single message. Wrap source lines that are longer than 80 columns (but not log output lines!). Clean up the logic for detecting errors when retrieving a configuration descriptor. Apart from the log messages themselves, this introduces no functional changes.
-
David Brownell authored
This adds some code that gadget drivers can call from driver initialization, to simplify the "configure against this hardware" step. Add endpoint autoconfiguration for gadget drivers. Endpoint selection is currently being done with conditional compilation. That doesn't look nice, but more importantly it doesn't work well with the model that some distributions won't be custom-matched to hardware. Say, a PDA distro running on iPaq (pxa2xx_udc) or Axim (mq11xx_udc). This code just makes it easier for drivers to match to hardware at run-time. It's a convenience function for something they could have been doing already, but weren't.
-
Greg Kroah-Hartman authored
-
Erik Rigtorp authored
-
Petko Manolov authored
adds two more vid/did and better packet error statistics. Link detection also has been added.
-
David Brownell authored
Here's where all those preceding autoconfig patches start to fit together: one gadget driver gets rid of almost all the controller-specific #ifdeffery. Two of the other gadget drivers can do the same thing, and just as easily: file storage, and serial. (I'll hope their maintainers do those changes though.) The "ether.c" gadget driver is a lot more complicated to do this way since it has to cope with some differences by switching to alternate protocols (CDC Ethernet vs a subset) and soon be able to handle RNDIS. So that'll be a while yet. Gadget Zero learns to autoconfigure. - Gets rid of remaining controller-specific #ifdeffery. Now hardware choices can be made at run time too (not just compile time). - Simplifies its use of the "DEBUG" CPP symbol. - Force device to report itself consistently as self-powered.
-
Michael Still authored
Correct kernel-doc comment with incorrect parameters documented
-
Gude Analog- und Digitalsysteme GmbH authored
we (the german company Gude Analog und Digitalsysteme GmbH, http://www.gude.info) have manufactored a USB<->RS232 adapter with galvanic isolated RS232 Interface. Data is transmitted by optical signals only. The Product's name is "USB-RS232 OptoBridge". We used the FTDI 233BM Chip with PID 0xE889 (VID 0x0403). The Product will be released this Cebit 2004. Could you please extend the ftdi_sio code with this PID. You find a .diff file attached which I have tested with kernel 2.6.4 At http://ftdi-usb-sio.sourceforge.net/ I saw that you provide a patch for 2.4.x kernels. Will our PID also find it's way in this back-ported driver patch? In the future (in the next 10 month), our company will have some more Products using the FTDI Chip. The PID's FTDI already allocated for us are: E888 to E88F and E808 to E80F Thank you very much, Martin Bachem
-
Jeff Garzik authored
x86-64 needs this (obvious) patch, due to the rename.
-
Andrew Morton authored
From: David Mosberger <davidm@napali.hpl.hp.com> From: Bjorn Helgaas <bjorn.helgaas@hp.com> We can't build floppy.o on ia64, so why bother asking?
-
Andrew Morton authored
From: Jens Axboe <axboe@suse.de> Currently SCSI cdroms show up in /proc/partitions in 2.6, they didn't in 2.4. And ATAPI cdroms don't show up either. Mark both as genhd removable for now, when they are partionable this can be updated.
-
Andrew Morton authored
From: Jens Axboe <axboe@suse.de> If the drive doesn't support GPCMD_READ_DISC_INFO at all, permit writeable opens.
-
Andrew Morton authored
Spotted by Jorn Engel <joern@wohnheim.fh-wedel.de>: both the generic and fs-specific parts of the inode have an i_flags. find_group_orlov() is using the wrong one.
-
Andrew Morton authored
strncpy() may not null-terminate the destination.
-
Andrew Morton authored
From: Olof Johansson <olof@austin.ibm.com> A smt_snooze_delay of 0 is supposed to mean "disabled", but current idle loop logic doesn't take that into account and snoozes immediately instead. Below patch fixes the logic in the idle loop, as well as cleans up the test a bit. An idling processor might no longer see a snooze change immediately, but that's not needed anyway.
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> From: Marcus Meissner <meissner@suse.de> With 2.6.4 we now have the glorious hidden d_type passing in getdents. glibc CVS expects this to be passed if we have a kernel version after 2.6.4, so we have to also handle it in the 32bit syscall converter.
-
- 24 Mar, 2004 11 commits
-
-
Anton Blanchard authored
From Dave Miller: We weren't handling a NULL 'type' argument to mount() properly, f.e. this happens legitimately when changing the options of an existing mount.
-
David S. Miller authored
into kernel.bkbits.net:/home/davem/net-2.6
-
Dave Kleikamp authored
I stupidly used the global jfs_log_sem to protect log->sb_list when implementing the shared journal stuff. Since we already hold LOG_LOCK, it makes more sense to use that to protect log->sb_list. This caused horrible serialization when running on lots of jfs volumes.
-
Dave Kleikamp authored
Remove the hold_metapage call from txLog to prevent a hang. While investigating this one, I audited all functions that held metapage locks and found several error paths that did not release them correctly. These are fixed as well.
-
John Williams Floroiu authored
-
Krishna Kumar authored
-
Dmitry Torokhov authored
-
Dmitry Torokhov authored
The patch below fixes issue with 'tc class show dev <dev>' not showing any classes when TBF qdisc is present in the chain. PLease consider for inclusion.
-
Wensong Zhang authored
Brett E. <brettspamacct@fastclick.com> noticed the missing service lock for editing dest. Julian Anastasov <ja@ssi.bg> provided the patch.
-
David S. Miller authored
-
http://linux-lksctp.bkbits.net/lksctp-2.5.workDavid S. Miller authored
into nuts.davemloft.net:/disk1/BK/net-2.6
-