David Herrmann
23c063cb02
HID: wiimote: Add output queue for wiimote driver
...
The raw hid output function that is supported by bluetooth low-level
hid driver does not provide an output queue and also may sleep. The
wiimote driver, though, may need to send data in atomic context so
this patch adds a buffered output queue for the wiimote driver.
We use the shared workqueue to send our buffer to the hid device.
There is always only one active worker which flushes the whole output
queue to the device. If our queue is full, every further
output is discarded.
Special care is needed in the deinitialization routine. When
wiimote_hid_remove is called, HID input is already disabled, but HID
output may still be used from our worker and is then discarded by the
lower HID layers. Therefore, we can safely disable the input layer since it
is the only layer that still sends input events.
Future sysfs attributes must be freed before unregistering input to
avoid the sysfs handlers to send input events to a non-existing input
layer.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2011-07-11 14:30:23 +02:00
..
usbhid
HID: hiddev: fix use after free in hiddev_release
2011-05-26 14:04:40 +02:00
hid-a4tech.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-apple.c
Input: bcm5974 - add support for MacBookPro8
2011-03-12 20:37:30 -08:00
hid-axff.c
HID: ACRUX - activate the device immediately after binding
2011-03-12 21:47:18 +01:00
hid-belkin.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-cherry.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-chicony.c
hid-core.c
HID: wiimote: Register wiimote hid driver stub
2011-07-11 14:30:22 +02:00
hid-cypress.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-debug.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
hid-dr.c
HID: add support for DragonRise PID 0011 gamepad
2011-02-01 11:01:06 +01:00
hid-elecom.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-emsff.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-ezkey.c
hid-gaff.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-gyration.c
HID: Add teletext/color keys - gyration remote - EU version (GYAR3101CKDE)
2011-02-15 10:29:57 +01:00
hid-ids.h
HID: wiimote: Register wiimote hid driver stub
2011-07-11 14:30:22 +02:00
hid-input.c
HID: assorted usage updates from hut 1.12
2011-05-18 17:07:34 +02:00
hid-kensington.c
hid-keytouch.c
HID: add support for Keytouch IEC 60945
2011-02-17 15:12:45 +01:00
hid-kye.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-lcpower.c
HID: hid-lcpower: fix key mapping
2011-02-13 15:04:51 +01:00
hid-lg.c
HID: add support for Logitech G27 wheel
2011-05-03 10:15:03 +02:00
hid-lg.h
hid-lg2ff.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-lg3ff.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-lg4ff.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-lgff.c
Merge branches 'doc', 'multitouch', 'upstream' and 'upstream-fixes' into for-linus
2011-05-23 12:49:25 +02:00
hid-magicmouse.c
Revert "HID: magicmouse: ignore 'ivalid report id' while switching modes"
2011-06-16 12:21:34 +02:00
hid-microsoft.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-monterey.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-multitouch.c
HID: hid-multitouch: add support for a new Lumio dual-touch panel
2011-06-24 13:41:11 +02:00
hid-ntrig.c
HID: hid-ntrig: init settle and mode check
2011-03-14 13:10:13 +01:00
hid-ortek.c
HID: add support for Skycable 0x3f07 wireless presenter
2011-03-21 16:12:23 +01:00
hid-petalynx.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-picolcd.c
Merge branch 'master' into upstream.
2011-05-18 17:06:49 +02:00
hid-pl.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-prodikeys.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-quanta.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-roccat-arvo.c
HID: roccat: Rename header roccat.h -> hid-roccat.h
2011-02-03 16:37:28 +01:00
hid-roccat-arvo.h
HID: roccat: Add support for Roccat Arvo keyboard
2011-01-20 11:27:54 +01:00
hid-roccat-common.c
HID: roccat: Introduce module hid-roccat-common
2011-02-03 16:37:27 +01:00
hid-roccat-common.h
HID: roccat: Introduce module hid-roccat-common
2011-02-03 16:37:27 +01:00
hid-roccat-kone.c
HID: roccat: Rename header roccat.h -> hid-roccat.h
2011-02-03 16:37:28 +01:00
hid-roccat-kone.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
hid-roccat-koneplus.c
HID: roccat: fix actual/startup profile sysfs attribute in koneplus
2011-05-18 16:34:06 +02:00
hid-roccat-koneplus.h
HID: roccat: fix actual/startup profile sysfs attribute in koneplus
2011-05-18 16:34:06 +02:00
hid-roccat-kovaplus.c
HID: roccat: Rename header roccat.h -> hid-roccat.h
2011-02-03 16:37:28 +01:00
hid-roccat-kovaplus.h
HID: roccat: Add support for Kova[+] mouse
2011-02-03 16:37:27 +01:00
hid-roccat-pyra.c
HID: roccat: Add support for wireless variant of Pyra
2011-03-24 12:47:46 +01:00
hid-roccat-pyra.h
HID: roccat: don't use #pragma pack
2011-01-08 01:18:35 +01:00
hid-roccat.c
HID: roccat: Rename header roccat.h -> hid-roccat.h
2011-02-03 16:37:28 +01:00
hid-samsung.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-sjoy.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-sony.c
HID: add support for Sony Navigation Controller
2011-04-28 15:43:13 +02:00
hid-sunplus.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-tmff.c
Merge branch 'master' into upstream
2010-12-10 15:19:18 +01:00
hid-topseed.c
hid-twinhan.c
hid-uclogic.c
hid-wacom.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-waltop.c
hid-wiimote.c
HID: wiimote: Add output queue for wiimote driver
2011-07-11 14:30:23 +02:00
hid-zpff.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hid-zydacron.c
HID: Add and use hid_<level>: dev_<level> equivalents
2010-12-10 15:10:38 +01:00
hidraw.c
HID: 'name' and 'phys' in 'struct hid_device' can never be NULL
2011-05-18 13:23:31 +02:00
Kconfig
HID: wiimote: Add Nintendo Wii Remote driver stub
2011-07-11 14:30:21 +02:00
Makefile
HID: wiimote: Add Nintendo Wii Remote driver stub
2011-07-11 14:30:21 +02:00