android_kernel_google_msm/drivers
David Herrmann 4bc92c0070 HID: uhid: implement feature requests
HID standard allows sending a feature request to the device which is
answered by an HID report. uhid implements this by sending a UHID_FEATURE
event to user-space which then must answer with UHID_FEATURE_ANSWER. If it
doesn't do this in a timely manner, the request is discarded silently.

We serialize the feature requests, that is, there is always only a single
active feature-request sent to user-space, other requests have to wait.
HIDP and USB-HID do it the same way.

Because we discard feature-requests silently, we must make sure to match
a response to the corresponding request. We use sequence-IDs for this so
user-space must copy the ID from the request into the answer.
Feature-answers are ignored if they do not contain the same ID as the
currently pending feature request.

Internally, we must make sure that feature-requests are synchronized with
UHID_DESTROY and close() events. We must not dead-lock when closing the
HID device, either, so we have to use separate locks.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-03-04 12:45:08 -08:00
..
accessibility
acpi
amba
ata
atm
auxdisplay
base PM / Sleep: Prevent waiting forever on asynchronous suspend after abort 2013-03-04 12:44:13 -08:00
bcma
block
bluetooth Bluetooth: hci_ath: Support BT Power Save mode on AR3002 2013-02-27 18:20:40 -08:00
cdrom
char display: removed the code exhausts file descriptor in mdp overlay and rotator. 2013-03-04 12:43:58 -08:00
clk clkdev: Remove __init marking from clkdev_add_table() 2013-02-27 18:12:39 -08:00
clocksource
connector
coresight coresight: fix whitespace in coresight drivers 2013-02-27 18:20:33 -08:00
cpufreq cpufreq: Fix panic when setting sampling rate 2013-02-27 18:16:29 -08:00
cpuidle
crypto crypto: Add support for crypto engine 5.0 2013-02-27 18:18:16 -08:00
dca
devfreq
dio
dma
edac
eisa
firewire
firmware
gpio gpio: qpnp-pin: Properly mask gpio get value 2013-02-27 18:21:31 -08:00
gpu [ARM] msm: kgsl: replace vmalloc with kmalloc 2013-03-04 12:43:03 -08:00
gud mobicore: Create branch that uses interrupt 280 2013-02-27 18:17:50 -08:00
hid HID: uhid: implement feature requests 2013-03-04 12:45:08 -08:00
hsi
hv
hwmon pm8xxx-adc: add the functions to set tuning parameters 2013-03-04 12:44:20 -08:00
hwspinlock
i2c qup_i2c: set up node before calling of_i2c_register_devices 2013-02-27 18:20:44 -08:00
ide
idle
ieee802154
infiniband target: Rename target_allocate_tasks to target_setup_cmd_from_cdb 2013-02-27 18:12:37 -08:00
input mako: touch: ignore abnormal touch interrupt 2013-03-04 12:44:46 -08:00
iommu msm: iommu: Support alternate core clocks 2013-02-27 18:17:39 -08:00
isdn
leds leds: pm8xxx: change calculation of blinking period and on/off timing 2013-03-04 12:44:58 -08:00
lguest
macintosh
mca
md dm-crypt: remove per-cpu structure 2013-02-25 11:32:11 -08:00
media camera: imx111(rear): fix unsupported packet format error in csic 2013-03-04 12:45:00 -08:00
memstick
message
mfd msm: wcd9xxx: add device tree support for codec slimbus component 2013-02-27 18:20:08 -08:00
misc android_vibrator: clean up codes and handle errors 2013-03-04 12:44:40 -08:00
mmc mako: fix compile error without PM_RUNTIME 2013-03-04 12:43:47 -08:00
mtd mtd: msm_qpic_nand: Initial driver for QPIC based NAND controller 2013-02-27 18:17:42 -08:00
net net: rmnet_usb: Enable remote wakeup for root hub 2013-02-27 18:19:28 -08:00
nfc mako: nfc: add new nfc broadcom driver 2013-03-04 12:43:35 -08:00
nubus
of slimbus: Initiialize device tree node of slimbus slave devices 2013-02-27 18:18:47 -08:00
oprofile
parisc
parport
pci
pcmcia
pinctrl
platform platform: msm: Add driver for QPNP PMIC clkdiv peripherals 2013-02-27 18:21:35 -08:00
pnp
power power: charger: fix fluctuation between charging and not charging 2013-03-04 12:45:01 -08:00
pps
ps3
ptp
rapidio
regulator regulator: qpnp: Add property to override type registers 2013-02-27 18:20:12 -08:00
remoteproc
rpmsg
rtc RTC: Add QPNP rtc driver 2013-02-27 18:16:09 -08:00
s390
sbus
scsi
sfi
sh
slimbus slimbus: Decrement channel reference during reconfigure now 2013-03-04 12:44:18 -08:00
sn
spi spi_qsd: set bus number based on the cell-index property 2013-02-27 18:21:33 -08:00
spmi spmi: pmic-arb: Fix multibyte transfer bug and enforce buffer len 2013-02-27 18:19:21 -08:00
ssb
staging New prima driver release jb_rel-3.1.7.16 from codeaurora.org 2013-03-04 12:44:19 -08:00
switch switch: fsa8008: show error and warning messages 2013-03-04 12:44:54 -08:00
target target: Rename target_allocate_tasks to target_setup_cmd_from_cdb 2013-02-27 18:12:37 -08:00
tc
thermal thermal: tsens8974: Fix one point calibration offsets 2013-02-27 18:21:16 -08:00
tty Revert "msm: tty: update receive room just before writing data to the ldisc" 2013-03-04 12:44:26 -08:00
uio
usb power: charger: fix fluctuation between charging and not charging 2013-03-04 12:45:01 -08:00
uwb
vhost
video Revert "msm: vidc: Correct calculation of yuv buffer size" 2013-03-04 12:44:56 -08:00
virt
virtio virtio: Decouple virtqueues and vrings 2013-02-27 18:18:30 -08:00
vlynq
w1
watchdog
xen
zorro
Kconfig coresight: rename directory and files from cs to coresight 2013-02-27 18:13:47 -08:00
Makefile coresight: rename directory and files from cs to coresight 2013-02-27 18:13:47 -08:00