1. 29 Oct, 2010 1 commit
    • Michael Hennerich's avatar
      Input: ad7879 - prevent invalid finger data reports · b584efc9
      Michael Hennerich authored
      Considering following scenario - the touch is present on the screen
      at the beginning of the last conversion sequence, but by the time
      the last sequence is finished, the finger is lift off. The AD7879 data
      available interrupt signals (DAV) completion, however some X,Y values
      are not valid because the screen inputs were floating during the
      acquisition.
      
      The AD7877 acts differently here, since it only asserts DAV if the
      touch is still present when the conversion sequence finished.
      
      Based on the fact that this can only happen in the last sample of the
      repeated conversion sequence, we simply skip the last (short glitches
      are filtered by the AD7879 internal median and average filters).
      This doesn't cause noticeable side effects, since the minimum conversion
      interval is 9.44ms. We receive ~100 waypoint samples per second, so we
      simply delay the result by 9.44ms.
      
      We also reject samples where pressure is greater than pressure_max.
      Signed-off-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      b584efc9
  2. 25 Oct, 2010 3 commits
  3. 19 Oct, 2010 1 commit
  4. 18 Oct, 2010 13 commits
  5. 13 Oct, 2010 13 commits
  6. 10 Oct, 2010 1 commit
  7. 05 Oct, 2010 1 commit
    • Dmitry Torokhov's avatar
      Input: wacom - fix runtime PM related deadlock · f6cd3783
      Dmitry Torokhov authored
      When runtime PM is enabled by default for input devices, X hangs in
      wacom open:
      [<ffffffff814a00ea>] mutex_lock+0x1a/0x40
      [<ffffffffa02bc94b>] wacom_resume+0x3b/0x90 [wacom]
      [<ffffffff81327a32>] usb_resume_interface+0xd2/0x190
      [<ffffffff81327b5d>] usb_resume_both+0x6d/0x110
      [<ffffffff81327c24>] usb_runtime_resume+0x24/0x40
      [<ffffffff8130a2cf>] __pm_runtime_resume+0x26f/0x450
      [<ffffffff8130a23a>] __pm_runtime_resume+0x1da/0x450
      [<ffffffff8130a53a>] pm_runtime_resume+0x2a/0x50
      [<ffffffff81328176>] usb_autopm_get_interface+0x26/0x60
      [<ffffffffa02bc626>] wacom_open+0x36/0x90 [wacom]
      
      wacom_open() takes wacom->lock and calls usb_autopm_get_interface(),
      which in turn calls wacom_resume() which tries to acquire the lock
      again.
      
      The fix is to call usb_autopm_get_interface() first, before we take
      the lock.
      
      Since we do not do usb_autopm_put_interface() until wacom_close()
      is called runtime PM is effectively disabled for the driver, however
      changing it now would risk regressions so the complete fix will
      have to wait till the next merge window.
      Reported-by: default avatarJiri Slaby <jslaby@suse.cz>
      Acked-by: default avatarOliver Neukum <oneukum@suse.de>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      f6cd3783
  8. 30 Sep, 2010 5 commits
  9. 21 Sep, 2010 1 commit
  10. 19 Sep, 2010 1 commit