1. 07 10月, 2011 1 次提交
    • D
      Bluetooth: hidp: Stop I/O on shutdown · 794d1756
      David Herrmann 提交于
      Current hidp driver purges the in/out queue on HID shutdown, but does
      not prevent further I/O. If a driver uses hidp_output_raw_report or
      hidp_get_raw_report during shutdown, the driver hangs for 5 or 10
      seconds per call until it gets a timeout.
      That is, if the output queue of an HID driver has 10 messages pending,
      it will take 50s until hid_destroy_device() will return. The
      hidp_session_sem semaphore is held during shutdown so no other HID
      device may be added/removed during this time.
      
      This patch makes hidp_output_raw_report and hidp_get_raw_report fail if
      session->terminate is true. Also hidp_session will wakeup all current
      calls to these functions to cancel the current operations.
      
      We already purge the current I/O queues on hidp_stop(), so this data loss
      does not change the behaviour of the HID drivers.
      Signed-off-by: NDavid Herrmann <dh.herrmann@googlemail.com>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      794d1756
  2. 28 9月, 2011 1 次提交
  3. 21 9月, 2011 1 次提交
  4. 12 8月, 2011 4 次提交
  5. 01 7月, 2011 1 次提交
    • P
      Bluetooth: Fix hidp disconnect deadlocks and lost wakeup · 7bb59df8
      Peter Hurley 提交于
      Partial revert of commit aabf6f89. When the hidp session thread
      was converted from kernel_thread to kthread, the atomic/wakeups
      were replaced with kthread_stop. kthread_stop has blocking semantics
      which are inappropriate for the hidp session kthread. In addition,
      the kthread signals itself to terminate in hidp_process_hid_control()
      - it cannot do this with kthread_stop().
      
      Lastly, a wakeup can be lost if the wakeup happens between checking
      for the loop exit condition and setting the current state to
      TASK_INTERRUPTIBLE. (Without appropriate synchronization mechanisms,
      the task state should not be changed between the condition test and
      the yield - via schedule() - as this creates a race between the
      wakeup and resetting the state back to interruptible.)
      Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      7bb59df8
  6. 28 4月, 2011 1 次提交
  7. 05 4月, 2011 1 次提交
  8. 01 4月, 2011 1 次提交
  9. 22 2月, 2011 1 次提交
  10. 15 2月, 2011 1 次提交
  11. 11 2月, 2011 3 次提交
  12. 08 2月, 2011 1 次提交
  13. 02 12月, 2010 1 次提交
  14. 12 10月, 2010 1 次提交
  15. 21 4月, 2010 1 次提交
  16. 06 2月, 2010 1 次提交
  17. 03 2月, 2010 1 次提交
    • J
      HID: make raw reports possible for both feature and output reports · d4bfa033
      Jiri Kosina 提交于
      In commit 2da31939 ("Bluetooth: Implement raw output support for HIDP
      layer"), support for Bluetooth hid_output_raw_report was added, but it
      pushes the data to the intr socket instead of the ctrl one. This has been
      fixed by 6bf8268f ("Bluetooth: Use the control channel for raw HID reports")
      
      Still, it is necessary to distinguish whether the report in question should be
      either FEATURE or OUTPUT. For this, we have to extend the generic HID API,
      so that hid_output_raw_report() callback provides means to specify this
      value so that it can be passed down to lower level hardware drivers (currently
      Bluetooth and USB).
      
      Based on original patch by Bastien Nocera <hadess@hadess.net>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      d4bfa033
  18. 30 1月, 2010 1 次提交
  19. 18 12月, 2009 1 次提交
  20. 04 12月, 2009 1 次提交
  21. 17 9月, 2009 1 次提交
  22. 23 8月, 2009 3 次提交
  23. 30 11月, 2008 1 次提交
  24. 15 10月, 2008 5 次提交
  25. 15 7月, 2008 1 次提交
  26. 05 2月, 2008 2 次提交
  27. 29 1月, 2008 1 次提交
  28. 22 10月, 2007 1 次提交