1. 29 Dec, 2003 6 commits
  2. 19 Dec, 2003 1 commit
    • Bill Marr's avatar
      [PATCH] Status Query On My MCT-U232 Patch · 53f87a8f
      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
      53f87a8f
  3. 18 Dec, 2003 18 commits
    • Dmitry Torokhov's avatar
      [PATCH] Input: synaptics protocol discovery · fe6705c3
      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.
      fe6705c3
    • Dmitry Torokhov's avatar
      [PATCH] Input: remove synaptics config option · 07f0aef8
      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.
      07f0aef8
    • Dmitry Torokhov's avatar
      [PATCH] Input: add serio_[un]register_port_delayed to fix deadlock · c948129d
      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
      c948129d
    • Dmitry Torokhov's avatar
      [PATCH] Input: psmouse fixes · c5a67891
      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
      c5a67891
    • Dmitry Torokhov's avatar
      [PATCH] Input: add atkbd reconnect method · bfb0d97d
      Dmitry Torokhov authored
      Add reconnect method to atkbd to restore keyboard state after suspend (to
      be called from i8042 resume function)
      bfb0d97d
    • Dmitry Torokhov's avatar
      [PATCH] Input: implement resume methods · 25b78b8f
      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.
      25b78b8f
    • Dmitry Torokhov's avatar
      [PATCH] Input: add psmouse_proto parameter · c0fbf5b6
      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.
      c0fbf5b6
    • Dmitry Torokhov's avatar
      [PATCH] input: fix atkbd_softrepeat · 0f40c994
      Dmitry Torokhov authored
      Fix atkbd_softrepeat kernel command line parameter.
      0f40c994
    • Vojtech Pavlik's avatar
      [PATCH] Fixes for keyboard 2.4 compatibility · 46716383
      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.
      46716383
    • Arief Mulya Utama's avatar
      [PATCH] psmouse pm resume fix · f5af7c4c
      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.
      f5af7c4c
    • Dmitry Torokhov's avatar
      [PATCH] Input: unregister i8042 port when writing to control register fails · 39e00ca1
      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.
      39e00ca1
    • Peter Osterlund's avatar
      [PATCH] synaptics powerpro fix · 75dcd3a4
      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.
      75dcd3a4
    • Dmitry Torokhov's avatar
      [PATCH] Synaptics: use serio_reconnect · 2b07066d
      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.
      2b07066d
    • Dmitry Torokhov's avatar
      [PATCH] serio: reconnect facility · 5ef1bd1e
      Dmitry Torokhov authored
      Input: serio_reconnect added. Similar to serio_rescan but gives driver
             a chance to re-initialize keeping the same input device.
      5ef1bd1e
    • Dmitry Torokhov's avatar
      [PATCH] Synaptics: code cleanup · 7822f653
      Dmitry Torokhov authored
      Input: Synaptics code cleanup and credit update.
      7822f653
    • Dmitry Torokhov's avatar
      [PATCH] Add black list to handler<->device matching · 35028d96
      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.
      35028d96
    • Dmitry Torokhov's avatar
      [PATCH] serio: possible race between port removal and kseriod · 94b49086
      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.
      94b49086
    • Dmitry Torokhov's avatar
      [PATCH] serio: rename serio_[un]register_slave_port to __serio_[un]register_port · 9c3faa99
      Dmitry Torokhov authored
      Input: rename serio_{register|unregister}_slave_port to 
             __serio_{register|unregister}_port to better follow
             locked/lockless naming convention
      9c3faa99
  4. 17 Dec, 2003 3 commits
    • Linus Torvalds's avatar
      Linux 2.6.0 · 67e9bb60
      Linus Torvalds authored
      67e9bb60
    • Jes Sorensen's avatar
      [PATCH] qla1280 crash fix in error handling · 0e70f996
      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.
      0e70f996
    • Jens Axboe's avatar
      [PATCH] CDROM_SEND_PACKET bug · f75da5af
      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).
      f75da5af
  5. 16 Dec, 2003 1 commit
  6. 15 Dec, 2003 4 commits
    • Jens Axboe's avatar
      [PATCH] Fix IDE bus reset and DMA disable when reading blank DVD-R · 314dc154
      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.
      314dc154
    • Linus Torvalds's avatar
      Merge bk://linuxusb.bkbits.net/gregkh-2.6 · 3f69168f
      Linus Torvalds authored
      into home.osdl.org:/home/torvalds/v2.5/linux
      3f69168f
    • Neil Brown's avatar
      [PATCH] Fix possible bio corruption with RAID5 · e1f936a9
      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.
      e1f936a9
    • David Brownell's avatar
      [PATCH] USB: <linux/usb_ch9.h> new descriptor codes, types · 9616878a
      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.)
      9616878a
  7. 14 Dec, 2003 1 commit
    • Linus Torvalds's avatar
      Fix thread group leader zombie leak · 056ffaad
      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.
      056ffaad
  8. 13 Dec, 2003 3 commits
    • Linus Torvalds's avatar
      More subtle SMP bugs in prepare_to_wait()/finish_wait(). · e220fdf7
      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.
      e220fdf7
    • René Scharfe's avatar
      [PATCH] HPFS: missing lock_kernel() in hpfs_readdir() · 14c5d2d2
      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.
      14c5d2d2
    • Jens Axboe's avatar
      [PATCH] no bio unmap on cdb copy failure · 5965168e
      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.
      5965168e
  9. 12 Dec, 2003 3 commits
    • Greg Kroah-Hartman's avatar
      Merge kroah.com:/home/greg/linux/BK/bleed-2.5 · 7885c113
      Greg Kroah-Hartman authored
      into kroah.com:/home/greg/linux/BK/usb-new_drivers-2.6
      7885c113
    • David Brownell's avatar
      [PATCH] USB: usb driver binding fixes · 070c4e6f
      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 ...)
      070c4e6f
    • Petko Manolov's avatar
      [PATCH] USB: pegasus driver update · 7c374cf1
      Petko Manolov authored
        another vendor/deviceID added;
        HAS_HOME_PNA flag for ADM8511 devices - that should
        make HomePNA users happy;
      7c374cf1