linux/drivers
Robert Schedel 0810b51170 HID: Support new variants of Samsung USB IR receiver (0419:0001)
This patch extends the existing Samsung IrDA (0419:0001) quirk file with newly
reported variants:

* New device variants with 203 byte and 135 byte report descriptors were
  reported to be recognized incorrectly. This patch adds an autodetection for
  those two, using report descriptor size to enable new quirks.

* Any other unknown 0419:0001 variants will now be treated without any quirk
  flags (i.e. IGNORE_HIDINPUT/HIDDEV_FORCE will not be set by default anymore).

More details:

1. Descriptor size 184 bytes ("Satelco bundled remote")
Already supported since kernel 2.6.25 (my old patch).

2. Descriptor size 203 bytes ("Optronix remote")
This receiver mostly works with the regular HID input driver. Only when some
keys are released, another spurious key press event is interpreted due to
incorrect array ranges. According to HID 1.11, section 6.2.2.5, arrays should
return a 0 value when no control is asserted, and ranges should go from 1 to
the number of elements. The patch clips the value with a logical range from
1..15 (instead of originally 0..18).

Ticket with more information available at
https://bugs.launchpad.net/bugs/326986

3. Descriptor size 135 bytes ("Gotview remote")
This receiver has a similar issue than the previous one, i.e. it mostly works
with regular HID input, except some key press events get stuck on key release.
The patch clips the array value from 1..14 (instead of originally 0..17).

Ticket with more information available at
http://bugs.archlinux.org/task/15216

4. Other unknown variants (found one report with 218 bytes,
   but no further information about issues)

For such unknown variants we should refrain from changing any device flags.
Currently, HIDINPUT is suppressed and HIDDEV is enforced (because in 2.6.25 the
quirk table did not yet allow differentiating variants and we
did not expect variants either). Now we should be as strict as
possible and enable it only for the first variant above.

Signed-off-by: Robert Schedel <r.schedel@yahoo.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2009-07-23 01:27:59 +02:00
..
accessibility
acpi ACPI: video: prevent NULL deref in acpi_get_pci_dev() 2009-06-26 00:23:42 -04:00
amba [ARM] amba: fix amba device resources 2009-07-05 22:39:08 +01:00
ata ahci: add device ID for 82801JI sata controller 2009-07-14 22:42:56 -04:00
atm
auxdisplay
base Firmware: firmware_class, fix lock imbalance 2009-07-12 13:02:10 -07:00
block Merge branch 'tj-block-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc 2009-07-22 10:06:33 -07:00
bluetooth headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
cdrom
char tty: fix chars_in_buffers 2009-07-20 16:38:43 -07:00
clocksource clocksource: sh_tmu: Make undefined TCOR behaviour less undefined. 2009-06-24 21:08:11 +09:00
connector connector: maintainer/mail update. 2009-07-21 12:43:51 -07:00
cpufreq [CPUFREQ] Fix compile failure in cpufreq.c 2009-07-08 19:04:23 -04:00
cpuidle
crypto crypto: padlock-aes - work around Nano CPU errata in CBC mode 2009-06-18 19:31:09 +08:00
dca
dio
dma DMA: txx9dmac: use dma_unmap_single if DMA_COMPL_{SRC,DEST}_UNMAP_SINGLE set 2009-06-24 18:34:40 +01:00
edac edac: add DDR3 memory type for MPC85xx EDAC 2009-06-30 18:55:59 -07:00
eisa Merge branch 'akpm' 2009-06-16 19:50:13 -07:00
firewire Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2009-07-06 14:03:44 -07:00
firmware Pull for-2.6.31 into release 2009-06-17 09:35:24 -07:00
gpio headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
gpu drm: Move a dereference below a NULL test 2009-07-15 16:56:48 +10:00
hid HID: Support new variants of Samsung USB IR receiver (0419:0001) 2009-07-23 01:27:59 +02:00
hwmon hwmon: (abituguru3) DMI probing for AB9, AB9 QuadQT and IX38 QuadGT 2009-07-11 13:42:38 +02:00
i2c i2c: Use resource_size 2009-07-15 00:03:56 +01:00
ide ide-tape: Don't leak kernel stack information 2009-07-21 20:36:25 -07:00
idle
ieee1394 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2009-07-06 14:03:44 -07:00
ieee802154
infiniband Merge branches 'ehca', 'misc', 'mlx4', 'mthca' and 'nes' into for-linus 2009-06-23 10:38:47 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-07-22 09:25:31 -07:00
isdn tty: fix chars_in_buffers 2009-07-20 16:38:43 -07:00
leds Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
lguest lguest: remove unnecessary forward struct declaration 2009-07-17 21:47:44 +09:30
macintosh powerpc/pmac: Fix DMA ops for MacIO devices 2009-06-26 14:37:25 +10:00
mca
md Fix congestion_wait() sync/async vs read/write confusion 2009-07-10 20:31:53 +02:00
media headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
memstick
message fusion: mptsas, fix lock imbalance 2009-06-22 08:54:14 -05:00
mfd Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-07-08 09:32:41 -07:00
misc headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
mmc mvsdio: fix handling of partial word at the end of PIO transfer 2009-07-20 16:46:34 -07:00
mtd UBI: fix bug in image sequence number handling 2009-07-15 11:30:59 +03:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-22 09:49:58 -07:00
nubus
of
oprofile oprofile: reset bt_lost_no_mapping with other stats 2009-07-10 12:35:36 +02:00
parisc Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
parport parport/serial: add support for NetMos 9901 Multi-IO card 2009-06-30 18:55:59 -07:00
pci headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
pcmcia Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
platform Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-09 20:33:18 -07:00
pnp Merge branches 'acerhdf', 'acpi-pci-bind', 'bjorn-pci-root', 'bugzilla-12904', 'bugzilla-13121', 'bugzilla-13396', 'bugzilla-13533', 'bugzilla-13612', 'c3_lock', 'hid-cleanups', 'misc-2.6.31', 'pdc-leak-fix', 'pnpacpi', 'power_nocheck', 'thinkpad_acpi', 'video' and 'wmi' into release 2009-06-24 01:19:50 -04:00
power wm97xx_batery: replace driver_data with dev_get_drvdata() 2009-07-12 13:02:10 -07:00
pps LinuxPPS: core support 2009-06-18 13:04:04 -07:00
ps3
rapidio
regulator
rtc rtc: ds1374, fix lock imbalance 2009-07-06 13:57:03 -07:00
s390 headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
sbus
scsi headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
serial drivers/serial/bfin_sport_uart.c: remove wrong and unneeded memset 2009-07-16 09:19:16 -07:00
sh
sn
spi spi: bitbang bugfix in message setup 2009-06-30 18:56:00 -07:00
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-09 20:33:18 -07:00
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 2009-07-13 10:24:43 -07:00
tc
telephony headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
thermal
uio
usb tty: fix chars_in_buffers 2009-07-20 16:38:43 -07:00
uwb
video fbmon: work around compiler bug in gcc-2.4.2 2009-07-22 08:49:22 -07:00
virtio virtio-pci: correctly unregister root device on error 2009-07-17 21:47:47 +09:30
vlynq vlynq: fix typo in Kconfig to enable debugging 2009-07-06 13:57:03 -07:00
w1 Merge git://git.infradead.org/battery-2.6 2009-06-24 14:35:57 -07:00
watchdog Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-07-18 11:59:33 -07:00
xen xen: Use kcalloc() in xen_init_IRQ() 2009-07-01 11:19:47 +02:00
zorro
Kconfig LinuxPPS: core support 2009-06-18 13:04:04 -07:00
Makefile LinuxPPS: core support 2009-06-18 13:04:04 -07:00