aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorSimon Wood <simon@mungewell.org>2013-02-19 22:25:11 -0500
committerJiri Kosina <jkosina@suse.cz>2013-02-20 04:19:10 -0500
commitb5836246c127ce1f0afe9790537b94c71efd2d2a (patch)
treed0537d4e8ddc635f47bbc5f78cf3f5534ea3e7e9 /drivers/hid
parent270baef1fafab50410e0e395ec26834de2dcc390 (diff)
HID: LG: Fix detection of Logitech Speed Force Wireless (WiiWheel)
Previously 'LG4FF' was only used for the WiiWheel, however it is now used for all the Logitech Wheels. This patch corrects the detection mechanism for the patching the report descriptor to ensure only the WiiWheel will be patched. Signed-off-by: Simon Wood <simon@mungewell.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-lg.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/hid/hid-lg.c b/drivers/hid/hid-lg.c
index 160c48919081..c06559803fd8 100644
--- a/drivers/hid/hid-lg.c
+++ b/drivers/hid/hid-lg.c
@@ -242,15 +242,6 @@ static __u8 *lg_report_fixup(struct hid_device *hdev, __u8 *rdesc,
242 "fixing up rel/abs in Logitech report descriptor\n"); 242 "fixing up rel/abs in Logitech report descriptor\n");
243 rdesc[33] = rdesc[50] = 0x02; 243 rdesc[33] = rdesc[50] = 0x02;
244 } 244 }
245 if ((drv_data->quirks & LG_FF4) && *rsize >= 101 &&
246 rdesc[41] == 0x95 && rdesc[42] == 0x0B &&
247 rdesc[47] == 0x05 && rdesc[48] == 0x09) {
248 hid_info(hdev, "fixing up Logitech Speed Force Wireless button descriptor\n");
249 rdesc[41] = 0x05;
250 rdesc[42] = 0x09;
251 rdesc[47] = 0x95;
252 rdesc[48] = 0x0B;
253 }
254 245
255 switch (hdev->product) { 246 switch (hdev->product) {
256 247
@@ -292,6 +283,17 @@ static __u8 *lg_report_fixup(struct hid_device *hdev, __u8 *rdesc,
292 *rsize = sizeof(dfp_rdesc_fixed); 283 *rsize = sizeof(dfp_rdesc_fixed);
293 } 284 }
294 break; 285 break;
286
287 case USB_DEVICE_ID_LOGITECH_WII_WHEEL:
288 if (*rsize >= 101 && rdesc[41] == 0x95 && rdesc[42] == 0x0B &&
289 rdesc[47] == 0x05 && rdesc[48] == 0x09) {
290 hid_info(hdev, "fixing up Logitech Speed Force Wireless report descriptor\n");
291 rdesc[41] = 0x05;
292 rdesc[42] = 0x09;
293 rdesc[47] = 0x95;
294 rdesc[48] = 0x0B;
295 }
296 break;
295 } 297 }
296 298
297 return rdesc; 299 return rdesc;