Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
0d69a3c7
Commit
0d69a3c7
authored
Feb 21, 2013
by
Jiri Kosina
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'for-3.9/sony' and 'for-3.9/steelseries' into for-linus
Conflicts: drivers/hid/hid-core.c
parents
73759518
99d24902
7e415762
Changes
7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
469 additions
and
3 deletions
+469
-3
Documentation/ABI/testing/sysfs-driver-hid-srws1
Documentation/ABI/testing/sysfs-driver-hid-srws1
+21
-0
drivers/hid/Kconfig
drivers/hid/Kconfig
+6
-0
drivers/hid/Makefile
drivers/hid/Makefile
+1
-0
drivers/hid/hid-core.c
drivers/hid/hid-core.c
+1
-0
drivers/hid/hid-ids.h
drivers/hid/hid-ids.h
+4
-0
drivers/hid/hid-sony.c
drivers/hid/hid-sony.c
+43
-3
drivers/hid/hid-steelseries.c
drivers/hid/hid-steelseries.c
+393
-0
No files found.
Documentation/ABI/testing/sysfs-driver-hid-srws1
0 → 100644
View file @
0d69a3c7
What: /sys/class/leds/SRWS1::<serial>::RPM1
What: /sys/class/leds/SRWS1::<serial>::RPM2
What: /sys/class/leds/SRWS1::<serial>::RPM3
What: /sys/class/leds/SRWS1::<serial>::RPM4
What: /sys/class/leds/SRWS1::<serial>::RPM5
What: /sys/class/leds/SRWS1::<serial>::RPM6
What: /sys/class/leds/SRWS1::<serial>::RPM7
What: /sys/class/leds/SRWS1::<serial>::RPM8
What: /sys/class/leds/SRWS1::<serial>::RPM9
What: /sys/class/leds/SRWS1::<serial>::RPM10
What: /sys/class/leds/SRWS1::<serial>::RPM11
What: /sys/class/leds/SRWS1::<serial>::RPM12
What: /sys/class/leds/SRWS1::<serial>::RPM13
What: /sys/class/leds/SRWS1::<serial>::RPM14
What: /sys/class/leds/SRWS1::<serial>::RPM15
What: /sys/class/leds/SRWS1::<serial>::RPMALL
Date: Jan 2013
KernelVersion: 3.9
Contact: Simon Wood <simon@mungewell.org>
Description: Provides a control for turning on/off the LEDs which form
an RPM meter on the front of the controller
drivers/hid/Kconfig
View file @
0d69a3c7
...
@@ -596,6 +596,12 @@ config HID_SPEEDLINK
...
@@ -596,6 +596,12 @@ config HID_SPEEDLINK
---help---
---help---
Support for Speedlink Vicious and Divine Cezanne mouse.
Support for Speedlink Vicious and Divine Cezanne mouse.
config HID_STEELSERIES
tristate "Steelseries SRW-S1 steering wheel support"
depends on USB_HID
---help---
Support for Steelseries SRW-S1 steering wheel
config HID_SUNPLUS
config HID_SUNPLUS
tristate "Sunplus wireless desktop"
tristate "Sunplus wireless desktop"
depends on USB_HID
depends on USB_HID
...
...
drivers/hid/Makefile
View file @
0d69a3c7
...
@@ -101,6 +101,7 @@ obj-$(CONFIG_HID_SAMSUNG) += hid-samsung.o
...
@@ -101,6 +101,7 @@ obj-$(CONFIG_HID_SAMSUNG) += hid-samsung.o
obj-$(CONFIG_HID_SMARTJOYPLUS)
+=
hid-sjoy.o
obj-$(CONFIG_HID_SMARTJOYPLUS)
+=
hid-sjoy.o
obj-$(CONFIG_HID_SONY)
+=
hid-sony.o
obj-$(CONFIG_HID_SONY)
+=
hid-sony.o
obj-$(CONFIG_HID_SPEEDLINK)
+=
hid-speedlink.o
obj-$(CONFIG_HID_SPEEDLINK)
+=
hid-speedlink.o
obj-$(CONFIG_HID_STEELSERIES)
+=
hid-steelseries.o
obj-$(CONFIG_HID_SUNPLUS)
+=
hid-sunplus.o
obj-$(CONFIG_HID_SUNPLUS)
+=
hid-sunplus.o
obj-$(CONFIG_HID_GREENASIA)
+=
hid-gaff.o
obj-$(CONFIG_HID_GREENASIA)
+=
hid-gaff.o
obj-$(CONFIG_HID_THINGM)
+=
hid-thingm.o
obj-$(CONFIG_HID_THINGM)
+=
hid-thingm.o
...
...
drivers/hid/hid-core.c
View file @
0d69a3c7
...
@@ -1702,6 +1702,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
...
@@ -1702,6 +1702,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER
)
},
{
HID_BLUETOOTH_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_PS3_CONTROLLER
)
},
{
HID_BLUETOOTH_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_PS3_CONTROLLER
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_STEELSERIES
,
USB_DEVICE_ID_STEELSERIES_SRWS1
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SUNPLUS
,
USB_DEVICE_ID_SUNPLUS_WDESKTOP
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SUNPLUS
,
USB_DEVICE_ID_SUNPLUS_WDESKTOP
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_THINGM
,
USB_DEVICE_ID_BLINK1
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_THINGM
,
USB_DEVICE_ID_BLINK1
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_THRUSTMASTER
,
0xb300
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_THRUSTMASTER
,
0xb300
)
},
...
...
drivers/hid/hid-ids.h
View file @
0d69a3c7
...
@@ -715,6 +715,7 @@
...
@@ -715,6 +715,7 @@
#define USB_VENDOR_ID_SONY 0x054c
#define USB_VENDOR_ID_SONY 0x054c
#define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b
#define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b
#define USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE 0x0374
#define USB_DEVICE_ID_SONY_PS3_BDREMOTE 0x0306
#define USB_DEVICE_ID_SONY_PS3_BDREMOTE 0x0306
#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268
#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268
#define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f
#define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f
...
@@ -732,6 +733,9 @@
...
@@ -732,6 +733,9 @@
#define USB_VENDOR_ID_STANTUM_SITRONIX 0x1403
#define USB_VENDOR_ID_STANTUM_SITRONIX 0x1403
#define USB_DEVICE_ID_MTP_SITRONIX 0x5001
#define USB_DEVICE_ID_MTP_SITRONIX 0x5001
#define USB_VENDOR_ID_STEELSERIES 0x1038
#define USB_DEVICE_ID_STEELSERIES_SRWS1 0x1410
#define USB_VENDOR_ID_SUN 0x0430
#define USB_VENDOR_ID_SUN 0x0430
#define USB_DEVICE_ID_RARITAN_KVM_DONGLE 0xcdab
#define USB_DEVICE_ID_RARITAN_KVM_DONGLE 0xcdab
...
...
drivers/hid/hid-sony.c
View file @
0d69a3c7
...
@@ -33,6 +33,28 @@ static const u8 sixaxis_rdesc_fixup[] = {
...
@@ -33,6 +33,28 @@ static const u8 sixaxis_rdesc_fixup[] = {
0x03
,
0x46
,
0xFF
,
0x03
,
0x09
,
0x01
,
0x81
,
0x02
0x03
,
0x46
,
0xFF
,
0x03
,
0x09
,
0x01
,
0x81
,
0x02
};
};
static
const
u8
sixaxis_rdesc_fixup2
[]
=
{
0x05
,
0x01
,
0x09
,
0x04
,
0xa1
,
0x01
,
0xa1
,
0x02
,
0x85
,
0x01
,
0x75
,
0x08
,
0x95
,
0x01
,
0x15
,
0x00
,
0x26
,
0xff
,
0x00
,
0x81
,
0x03
,
0x75
,
0x01
,
0x95
,
0x13
,
0x15
,
0x00
,
0x25
,
0x01
,
0x35
,
0x00
,
0x45
,
0x01
,
0x05
,
0x09
,
0x19
,
0x01
,
0x29
,
0x13
,
0x81
,
0x02
,
0x75
,
0x01
,
0x95
,
0x0d
,
0x06
,
0x00
,
0xff
,
0x81
,
0x03
,
0x15
,
0x00
,
0x26
,
0xff
,
0x00
,
0x05
,
0x01
,
0x09
,
0x01
,
0xa1
,
0x00
,
0x75
,
0x08
,
0x95
,
0x04
,
0x35
,
0x00
,
0x46
,
0xff
,
0x00
,
0x09
,
0x30
,
0x09
,
0x31
,
0x09
,
0x32
,
0x09
,
0x35
,
0x81
,
0x02
,
0xc0
,
0x05
,
0x01
,
0x95
,
0x13
,
0x09
,
0x01
,
0x81
,
0x02
,
0x95
,
0x0c
,
0x81
,
0x01
,
0x75
,
0x10
,
0x95
,
0x04
,
0x26
,
0xff
,
0x03
,
0x46
,
0xff
,
0x03
,
0x09
,
0x01
,
0x81
,
0x02
,
0xc0
,
0xa1
,
0x02
,
0x85
,
0x02
,
0x75
,
0x08
,
0x95
,
0x30
,
0x09
,
0x01
,
0xb1
,
0x02
,
0xc0
,
0xa1
,
0x02
,
0x85
,
0xee
,
0x75
,
0x08
,
0x95
,
0x30
,
0x09
,
0x01
,
0xb1
,
0x02
,
0xc0
,
0xa1
,
0x02
,
0x85
,
0xef
,
0x75
,
0x08
,
0x95
,
0x30
,
0x09
,
0x01
,
0xb1
,
0x02
,
0xc0
,
0xc0
,
};
struct
sony_sc
{
struct
sony_sc
{
unsigned
long
quirks
;
unsigned
long
quirks
;
};
};
...
@@ -43,9 +65,19 @@ static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
...
@@ -43,9 +65,19 @@ static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
{
{
struct
sony_sc
*
sc
=
hid_get_drvdata
(
hdev
);
struct
sony_sc
*
sc
=
hid_get_drvdata
(
hdev
);
if
((
sc
->
quirks
&
VAIO_RDESC_CONSTANT
)
&&
/*
*
rsize
>=
56
&&
rdesc
[
54
]
==
0x81
&&
rdesc
[
55
]
==
0x07
)
{
* Some Sony RF receivers wrongly declare the mouse pointer as a
hid_info
(
hdev
,
"Fixing up Sony Vaio VGX report descriptor
\n
"
);
* a constant non-data variable.
*/
if
((
sc
->
quirks
&
VAIO_RDESC_CONSTANT
)
&&
*
rsize
>=
56
&&
/* usage page: generic desktop controls */
/* rdesc[0] == 0x05 && rdesc[1] == 0x01 && */
/* usage: mouse */
rdesc
[
2
]
==
0x09
&&
rdesc
[
3
]
==
0x02
&&
/* input (usage page for x,y axes): constant, variable, relative */
rdesc
[
54
]
==
0x81
&&
rdesc
[
55
]
==
0x07
)
{
hid_info
(
hdev
,
"Fixing up Sony RF Receiver report descriptor
\n
"
);
/* input: data, variable, relative */
rdesc
[
55
]
=
0x06
;
rdesc
[
55
]
=
0x06
;
}
}
...
@@ -56,6 +88,12 @@ static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
...
@@ -56,6 +88,12 @@ static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
hid_info
(
hdev
,
"Fixing up Sony Sixaxis report descriptor
\n
"
);
hid_info
(
hdev
,
"Fixing up Sony Sixaxis report descriptor
\n
"
);
memcpy
((
void
*
)
&
rdesc
[
83
],
(
void
*
)
&
sixaxis_rdesc_fixup
,
memcpy
((
void
*
)
&
rdesc
[
83
],
(
void
*
)
&
sixaxis_rdesc_fixup
,
sizeof
(
sixaxis_rdesc_fixup
));
sizeof
(
sixaxis_rdesc_fixup
));
}
else
if
(
sc
->
quirks
&
SIXAXIS_CONTROLLER_USB
&&
*
rsize
>
sizeof
(
sixaxis_rdesc_fixup2
))
{
hid_info
(
hdev
,
"Sony Sixaxis clone detected. Using original report descriptor (size: %d clone; %d new)
\n
"
,
*
rsize
,
(
int
)
sizeof
(
sixaxis_rdesc_fixup2
));
*
rsize
=
sizeof
(
sixaxis_rdesc_fixup2
);
memcpy
(
rdesc
,
&
sixaxis_rdesc_fixup2
,
*
rsize
);
}
}
return
rdesc
;
return
rdesc
;
}
}
...
@@ -217,6 +255,8 @@ static const struct hid_device_id sony_devices[] = {
...
@@ -217,6 +255,8 @@ static const struct hid_device_id sony_devices[] = {
.
driver_data
=
SIXAXIS_CONTROLLER_BT
},
.
driver_data
=
SIXAXIS_CONTROLLER_BT
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE
),
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE
),
.
driver_data
=
VAIO_RDESC_CONSTANT
},
.
driver_data
=
VAIO_RDESC_CONSTANT
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SONY
,
USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE
),
.
driver_data
=
VAIO_RDESC_CONSTANT
},
{
}
{
}
};
};
MODULE_DEVICE_TABLE
(
hid
,
sony_devices
);
MODULE_DEVICE_TABLE
(
hid
,
sony_devices
);
...
...
drivers/hid/hid-steelseries.c
0 → 100644
View file @
0d69a3c7
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment