mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
HID: hid-logitech: Compute combined pedals value
Add support for computing a combined accelerator/brake axis for wheels which don't contain combined data in their HID stream. This includes DFGT, G25, G27, G29 and Wii-Wheel. Signed-off-by: Simon Wood <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
This commit is contained in:
parent
c832f86eff
commit
b456634b8d
1 changed files with 17 additions and 0 deletions
|
|
@ -332,6 +332,7 @@ int lg4ff_adjust_input_event(struct hid_device *hid, struct hid_field *field,
|
|||
int lg4ff_raw_event(struct hid_device *hdev, struct hid_report *report,
|
||||
u8 *rd, int size, struct lg_drv_data *drv_data)
|
||||
{
|
||||
int offset;
|
||||
struct lg4ff_device_entry *entry = drv_data->device_props;
|
||||
|
||||
if (!entry)
|
||||
|
|
@ -353,9 +354,25 @@ int lg4ff_raw_event(struct hid_device *hdev, struct hid_report *report,
|
|||
rd[5] = rd[4];
|
||||
rd[6] = 0x7F;
|
||||
return 1;
|
||||
case USB_DEVICE_ID_LOGITECH_G25_WHEEL:
|
||||
case USB_DEVICE_ID_LOGITECH_G27_WHEEL:
|
||||
offset = 5;
|
||||
break;
|
||||
case USB_DEVICE_ID_LOGITECH_DFGT_WHEEL:
|
||||
case USB_DEVICE_ID_LOGITECH_G29_WHEEL:
|
||||
offset = 6;
|
||||
break;
|
||||
case USB_DEVICE_ID_LOGITECH_WII_WHEEL:
|
||||
offset = 3;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Compute a combined axis when wheel does not supply it */
|
||||
rd[offset] = (0xFF + rd[offset] - rd[offset+1]) >> 1;
|
||||
rd[offset+1] = 0x7F;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue