You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[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: Alex Villacís Lasso <a_villacis@palosanto.com> Signed-off-by: Samuel Ortiz <samuel@sortiz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
4a1d7c25cb
commit
4b6aa59999
@@ -176,6 +176,20 @@ config KSDAZZLE_DONGLE
|
|||||||
To compile it as a module, choose M here: the module will be called
|
To compile it as a module, choose M here: the module will be called
|
||||||
ksdazzle-sir.
|
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"
|
comment "Old SIR device drivers"
|
||||||
|
|
||||||
config IRPORT_SIR
|
config IRPORT_SIR
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ obj-$(CONFIG_TOIM3232_DONGLE) += toim3232-sir.o
|
|||||||
obj-$(CONFIG_EP7211_DONGLE) += ep7211-sir.o
|
obj-$(CONFIG_EP7211_DONGLE) += ep7211-sir.o
|
||||||
obj-$(CONFIG_KINGSUN_DONGLE) += kingsun-sir.o
|
obj-$(CONFIG_KINGSUN_DONGLE) += kingsun-sir.o
|
||||||
obj-$(CONFIG_KSDAZZLE_DONGLE) += ksdazzle-sir.o
|
obj-$(CONFIG_KSDAZZLE_DONGLE) += ksdazzle-sir.o
|
||||||
|
obj-$(CONFIG_KS959_DONGLE) += ks959-sir.o
|
||||||
|
|
||||||
# The SIR helper module
|
# The SIR helper module
|
||||||
sir-dev-objs := sir_dev.o sir_dongle.o
|
sir-dev-objs := sir_dev.o sir_dongle.o
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user