Skip to content

Commit

Permalink
[IrDA]: Kingsun KS-959 IrDA USB driver
Browse files Browse the repository at this point in the history
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: Alex Villacís Lasso <[email protected]>
Signed-off-by: Samuel Ortiz <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
avillacis authored and David S. Miller committed Oct 10, 2007
1 parent 4a1d7c2 commit 4b6aa59
Show file tree
Hide file tree
Showing 3 changed files with 954 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/net/irda/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions drivers/net/irda/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading

0 comments on commit 4b6aa59

Please sign in to comment.