Commit 4b6aa599 authored by Alex Villacís Lasso's avatar Alex Villacís Lasso Committed by David S. Miller

[IrDA]: Kingsun KS-959 IrDA USB driver

This dongle does not follow the usb-irda specification, so it needs its own
special driver. First, it uses control URBs for data transfer, instead of
bulk or interrupt transfers; the only interrupt endpoint exposed seems to
be a dummy to prevent the interface from being rejected. Second, it uses
obfuscation and padding at the USB traffic level, for no apparent reason
other than to make reverse engineering harder (full details on obfuscation
in comments at beginning of source). Although it is advertised as a "4 Mbps
FIR dongle", it apparently loses packets at speeds greater than 57600 bps.

On plugin, this dongle reports vendor and device IDs: 0x07d0:0x4959 .

The Windows driver that is used normally to control this dongle has a
filename of KS-959.SYS .
Signed-off-by: default avatarAlex Villacís Lasso <a_villacis@palosanto.com>
Signed-off-by: default avatarSamuel Ortiz <samuel@sortiz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4a1d7c25
......@@ -176,6 +176,20 @@ config KSDAZZLE_DONGLE
To compile it as a module, choose M here: the module will be called
ksdazzle-sir.
config KS959_DONGLE
tristate "KingSun KS-959 IrDA-USB dongle (EXPERIMENTAL)"
depends on IRDA && USB && EXPERIMENTAL
help
Say Y or M here if you want to build support for the KingSun KS-959
IrDA-USB bridge device driver.
This USB bridge does not conform to the IrDA-USB device class
specification, and therefore needs its own specific driver. This
dongle supports SIR speeds only (9600 through 57600 bps).
To compile it as a module, choose M here: the module will be called
ks959-sir.
comment "Old SIR device drivers"
config IRPORT_SIR
......
......@@ -48,6 +48,7 @@ obj-$(CONFIG_TOIM3232_DONGLE) += toim3232-sir.o
obj-$(CONFIG_EP7211_DONGLE) += ep7211-sir.o
obj-$(CONFIG_KINGSUN_DONGLE) += kingsun-sir.o
obj-$(CONFIG_KSDAZZLE_DONGLE) += ksdazzle-sir.o
obj-$(CONFIG_KS959_DONGLE) += ks959-sir.o
# The SIR helper module
sir-dev-objs := sir_dev.o sir_dongle.o
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment