- 29 Dec, 2003 6 commits
-
-
Adam Kropelin authored
hiddev is mistakenly returning empty hiddev_event structures for report events. According to Documentation/usb/hiddev.txt, report events are only sent when HIDDEV_FLAG_REPORT and HIDDEV_FLAG_UREF are both set. Currently, report events from hid cause hiddev to generate empty hiddev_event events when HIDDEV_FLAG_UREF is not set.
-
Greg Kroah-Hartman authored
into kroah.com:/home/linux/BK/usb-new_drivers-2.6
-
Ingo Molnar authored
Noted by Nick Piggin, fix based on a patch by Linus. I've done some additional cleanups: fixed a compilation warning on UP and cleaned up the goto pick_next_task code. Moved the 'unlikely' to the test as a whole. I've tested this patch and the context-switch stats look OK.
-
Linus Torvalds authored
The BIOS may have left the USB controller in some strange state, and we want to fully initialize it before we are ready to handle interrupts.
-
Linus Torvalds authored
if an error happens.
-
Linus Torvalds authored
already registered or not. The x86 PCI layer wants this for its availability testing. Doing a request_irq()/free_irq() pair to check this condition like we used to do can lock the machine if the irq happens to be screaming.
-
- 19 Dec, 2003 1 commit
-
-
Bill Marr authored
Brief Patch Description: Fix a problem in the 'mct_u232' driver whereby output data gets held up in the USB/RS-232 adapter for RS-232 devices which don't assert the 'CTS' signal. Background: The Belkin F5U109 is a 9-pin USB/RS-232 adapter that is supported by the existing 'mct_u232' kernel module. Recently, I've been testing it under the 2.4.22 (Slackware 9.1) kernel and the 2.6.0-test9 kernel. I've connected a Garmin 'GPS35 TracPak' GPS receiver (RS-232 interface) and an ordinary RS-232 external modem to my PC's USB port via the Belkin F5U109 adapter. Problem: Although _reads_ from either of the RS-232 devices mentioned above work fine via the Belkin adapter, _writes_ to the GPS receiver are not being seen by the GPS. Writes to the modem, however, work perfectly. Aside: The 'Linux USB Users' archives show that at least one other person (circa May 2002) had the exact same problem I'm having, but it sounds like no solution was ever determined because the person in question just bought a different USB/RS-232 adapter. Investigation: Using the 'seyon' terminal emulator in Linux and a crude hardware RS-232 "breakout box" that I hacked together, I've determined that the problem is related to the RTS/CTS RS-232 hardware handshaking. After further investigation, I've concluded that RS-232 devices which do not assert the 'Clear To Send' ('CTS') signal prevent the Belkin F5U109 adapter from transmitting data to the RS-232 device when the current (version 1.1) 'mct_u232' module is used. The data gets "queued up" (up to a point -- 16 bytes, I think) in the adapter but never transmitted. Since this GPS receiver works perfectly (reads and writes) when connected to a PC running W98se using the same Belkin adapter and the Belkin-supplied Windows driver, the Linux driver became suspect. After some testing with SniffUSB, I found that the Windows driver sends a couple of unique undocumented USB 'device requests' that the Linux driver does not. As it turns out, the second of those 2 requests is critical in making the adapter transmit data to a device which doesn't assert 'CTS'. For completeness, the Windows driver in use was determined from the 'Device Manager', 'Driver File Details' page: U2SPORT.VXD Provider: Magic Control Technology File version: 1.21P.0104 for Win98/Me Solution: My patch adds the 2 missing USB 'device request' commands right after a baud-change command. This mimics the operation of the W98 driver. Unfortunately, after much testing, I found no other operation (besides a baud-change request) under Windows that triggers either of these 2 'device request' commands. This makes it impossible to fully document the behavior of these requests, but I've made entries for them alongside the others in the 'mct_u232.h' file. Purely for clarity, the patch also modifies various comments in 'mct_u232.h', mostly to reflect proper sizes of the various 'USB Device Request' fields per the USB 1.1 specification. The patch also updates the version number of the driver, corrects a minor typographical error, and documents a difference in the length of the data in a 'baud rate change' command for certain adapters which use a coded baud-rate rather than the conventional RS-232 baud rate divisor. I've provided (tested) patches for both the 2.4.22 and the 2.6.0-test9 kernels. Please note that the changes to 'mct_u232.h' apply to both 2.4.22 and 2.6.0-test9 since that file has not changed between those kernel releases. Nevertheless, I've included that (same) portion of the patch in both attachments for simplicity. Bill Marr
-
- 18 Dec, 2003 18 commits
-
-
Dmitry Torokhov authored
If Synaptics fails to activate or if disabled by psmouse_proto option try other extended protocols as some touchpads may support them.
-
Dmitry Torokhov authored
Remove Synaptics config option. Since mousedev was fixed with regard to touchpads generating absolute events there should no troubles for users migrating from older kernel or different hardware so we can have it always compiled in.
-
Dmitry Torokhov authored
Add serio_[un]register_port_delayed to allow delayed execution of register/unregister code (via kseriod) when it is not clear whether serio_sem has been taken or not. Use in i8042.c to avoid deadlock
-
Dmitry Torokhov authored
- Remove psmouse_pm_callback since i8042 now has its own resume handler which will issue reconnect request - Do not close/open serio port in psmouse_reconnect since i8042 should restore ports to the proper state before calling reconnect
-
Dmitry Torokhov authored
Add reconnect method to atkbd to restore keyboard state after suspend (to be called from i8042 resume function)
-
Dmitry Torokhov authored
- Implement resume methods using serio_reconnect facility - Register i8042 with sysfs - Register i8042 with older PM scheme to restore keyboard and mouse for APM users - Convert parameter handling to the new style - Unregister port not only when there is no free IRQ but also if the port fails to activate.
-
Dmitry Torokhov authored
New parameter psmouse_proto to replace psmouse_noext. Allows to specify highest PS/2 protocol extension that kernel has permission to negotiate (bare|imps|exps). psmouse_noext marked as deprecated and emits a warning when used. parameter parsing converted to the new scheme.
-
Dmitry Torokhov authored
Fix atkbd_softrepeat kernel command line parameter.
-
Vojtech Pavlik authored
I have two patches I'd like to get tested by a wider audience before sending them to Linus for the 2.6 tree. The first one fixes an issue in current 2.6-test with AT keyboard repeat rate setting, the second one makes setkeycodes/getkeycodes work the same as 2.4, so that people can keep their setups. It also fixes japanese and korean key handling.
-
Arief Mulya Utama authored
I just want to share a little change that I've did to psmouse_pm_callback() which without this, my synaptics touchpad would prevent my laptop (IBM Thinkpad T30) from suspending.
-
Dmitry Torokhov authored
I think that if we can't write to the control register it's not less critical than not having a free IRQ so we better unregister port in this case as well. Also logging moved a bit.
-
Peter Osterlund authored
Made the packet checking code less strict, so that the driver works also for touchpads that don't strictly follow the synaptics absolute protocol. Problem reported by Anders Kaseorg using a PowerPro C 3:16 laptop.
-
Dmitry Torokhov authored
Input/Synaptics: 1. Support for pass-through port moved from Synaptics driver to psmouse itself, it is cleaner and should allow using it in other drivers if needed. 2. The driver makes use of new reconnect functionality in serio. It will try to keep the same input device after resume or when it resets itself. 3. If mouse is disconnected or other mouse plugged in while sleeping the driver should correctly recognize that and create a new serio/input device.
-
Dmitry Torokhov authored
Input: serio_reconnect added. Similar to serio_rescan but gives driver a chance to re-initialize keeping the same input device.
-
Dmitry Torokhov authored
Input: Synaptics code cleanup and credit update.
-
Dmitry Torokhov authored
Input: Introduce an optional blacklist field in input_handler structure. When loading a new device or a new handler try to match device against handler's black list before doing match on required attributes. This allows to get rid of "surprises" in connect functions, IMO connect should only fail when it physically can not connect, not because it decides it does not like device.
-
Dmitry Torokhov authored
Input: There is a possibility that serio might get deleted while there are outstanding events involving that serio waiting for kseriod to process them. Invalidate them so kseriod thread will just drop dead events.
-
Dmitry Torokhov authored
Input: rename serio_{register|unregister}_slave_port to __serio_{register|unregister}_port to better follow locked/lockless naming convention
-
- 17 Dec, 2003 3 commits
-
-
Linus Torvalds authored
-
Jes Sorensen authored
This fixes a bug in the qla1280 driver where it would leave a pointer to an on the stack completion event in a command structure if qla1280_mailbox_command fails. The result is that the interrupt handler later tries to complete() garbage on the stack. The mailbox command can fail if a device on the bus decides to lock up etc.
-
Jens Axboe authored
I just found Yet Another Bug in scsi_ioctl - CDROM_SEND_PACKET puts a kernel pointer in hdr->cmdp, where sg_io() expects to find user address. This worked up until recently because of the memcpy bug, but now it doesn't because we do the proper copy_from_user(). This fix undoes the user copy code from sg_io, and instead makes the SG_IO ioctl copy it locally. This makes SG_IO and CDROM_SEND_PACKET agree on the calling convention, and everybody is happy. I've tested that both cdrecord -dev=/dev/hdc -inq and cdrecord -dev=ATAPI:/dev/hdc -inq works now. The former will use SG_IO, the latter CDROM_SEND_PACKET (and incidentally would work in both 2.4 and 2.6, if it wasn't for CDROM_SEND_PACKET sucking badly in 2.4).
-
- 16 Dec, 2003 1 commit
-
-
Greg Kroah-Hartman authored
-
- 15 Dec, 2003 4 commits
-
-
Jens Axboe authored
From Jon Burgess: There is a problems with blank DVD media using the ide-cd driver. When we attempt to read the blank disk, the drive responds to the read request by returning a "blank media" error. The kernel doesn't have any special case handling for this sense value and retries the request a couple of times, then gives up and does a bus reset and disables DMA to the device. Which obviously doesn't help the situation. The sense key value of 8 isn't listed in ide-cd.h, but it is listed in scsi.h as a "BLANK_CHECK" error. This trivial patch treats this error condition as a reason to abort the request. This behaviour is the same as what we do with a blank CD-R. It looks like the same fix might be desired for 2.4 as well, although is perhaps not so important since scsi-ide is normally used instead.
-
bk://linuxusb.bkbits.net/gregkh-2.6Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
Neil Brown authored
1/ make sure raid5 doesn't try to handle multiple overlaping requests at the same time as this would confuse things badly. Currently it justs BUGs if this is attempted. 2/ Fix a possible data-loss-on-write problem. If two or more bio's that write to the same page are processed at the same time, only the first was actually commited to storage. 3/ Fix a use-after-free bug. raid5 keeps the bio's it is given in linked lists when more than one bio touch a single page. In some cases the tail of this list can be freed, and the current test for 'are we at the end' isn't reliable. This patch strengths the test to make it reliable.
-
David Brownell authored
This patch adds definitions: - New "video" class, for video cameras and more complicated devices; - New "Interface association" descriptor type, used by video class, along with two other assigned desciptor type codes (OTG, "debug") listed in the same ECN to the USB 2.0 spec; - Type declarations for "Interface association" and OTG descriptors. It also replaces three copies of USB_DT_CS_* declarations in audio support with one in <linux/usb_ch9.h>, and uses the newly exposed symbol in "usbnet". (Near as I can tell, the convention for those "class specific" descriptor types started with audio, and was then adopted by several other class specifications.)
-
- 14 Dec, 2003 1 commit
-
-
Linus Torvalds authored
Petr Vandrovec noticed a problem where the thread group leader would not be properly reaped if the parent of the thread group was ignoring SIGCHLD, and the thread group leader had exited before the last sub-thread. Fixed by Ingo Molnar.
-
- 13 Dec, 2003 3 commits
-
-
Linus Torvalds authored
This time we have a SMP memory ordering issue in prepare_to_wait(), where we really need to make sure that subsequent tests for the event we are waiting for can not migrate up to before the wait queue has been set up.
-
René Scharfe authored
In 2.5.x, the BKL was pushed from vfs_readdir() into the filesystem specific functions. But only the unlock_kernel() made it into the HPFS code, lock_kernel() got lost on the way. This rendered the filesystem unusable. This adds the missing lock_kernel(). It's been tested by Timo Maier who also reported the problem earlier today.
-
Jens Axboe authored
The previous scsi_ioctl.c patch didn't cleanup the buffer/bio in the error case. Fix it by copying the command data earlier.
-
- 12 Dec, 2003 3 commits
-
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/usb-new_drivers-2.6
-
David Brownell authored
There are problems lurking in the driver binding code for usb, with highlights being disagreements about: (a) locks: usb bus writelock v. BKL v. driver->serialize (b) driver: interface.driver v. interface.dev.driver Fixing those is going to take multiple patches, and I thought I'd start out with a small one that's relatively simple. This: - Cleans up locking. * Updates comments and kerneldoc to reflect that the usb bus writelock is what protects against conflicts when binding/unbinding drivers to devices. * Removes driver->serialize ... not needed, since it's only gotten when the bus writelock is held. * Removes incorrect "must have BKL" comments, and one bit of code that tried to use BKL not the writelock. - Removes inconsistencies about what driver is bound to the interface ... for now "interface.driver" is "the truth". * usb_probe_interface() will no longer clobber bindings established with usb_driver_claim_interface(). * usb_driver_release_interface() calls device_release_driver() for bindings established with probe(), so the driver model updates (sysfs etc) are done as expected. * usb_unbind_interface() doesn't usb_driver_release_interface(), since release() should eventually _always_ call unbind() (indirectly through device_release_driver). Essentially there are two driver binding models in USB today, and this patch makes them start to cooperate properly: - probe()/disconnect(), used by most drivers. This goes through the driver model core. - claim()/release(), used by CDC drivers (ACM, Ethernet) and audio to claim extra interfaces and by usbfs since it can't come in through probe(). Bypasses driver model. That interface.driver pointer can be removed by changing the claim()/release() code to use the driver model calls added for that purpose: device_{bind,release}_driver(). I didn't do that in this patch, since it'll have side effects like extra disconnect() calls that drivers will need to handle. A separate usbfs patch is needed to fix its driver binding; mostly just to use the right lock, but those changes were more extensive and uncovered other issues. (Like, I think, some that Duncan has been noticing ...)
-
Petko Manolov authored
another vendor/deviceID added; HAS_HOME_PNA flag for ADM8511 devices - that should make HomePNA users happy;
-