Skip to content

Commit

Permalink
HID:hid-lg4ff: Switch autocentering off when strength is set to zero.
Browse files Browse the repository at this point in the history
When the autocenter is set to zero, this patch issues a command to
totally disable the autocenter - this results in less resistance
in the wheel.

Reported-by: Elias Vanderstuyft <elias.vds@gmail.com>
Signed-off-by: Simon Wood <simon@mungewell.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
  • Loading branch information
Simon Wood authored and Jiri Kosina committed Nov 8, 2013
1 parent f8c2315 commit d2c02da
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions drivers/hid/hid-lg4ff.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,20 @@ static void hid_lg4ff_set_autocenter_default(struct input_dev *dev, u16 magnitud
__s32 *value = report->field[0]->value;
__u32 expand_a, expand_b;

/* De-activate Auto-Center */
if (magnitude == 0) {
value[0] = 0xf5;
value[1] = 0x00;
value[2] = 0x00;
value[3] = 0x00;
value[4] = 0x00;
value[5] = 0x00;
value[6] = 0x00;

hid_hw_request(hid, report, HID_REQ_SET_REPORT);
return;
}

if (magnitude <= 0xaaaa) {
expand_a = 0x0c * magnitude;
expand_b = 0x80 * magnitude;
Expand All @@ -237,6 +251,17 @@ static void hid_lg4ff_set_autocenter_default(struct input_dev *dev, u16 magnitud
value[6] = 0x00;

hid_hw_request(hid, report, HID_REQ_SET_REPORT);

/* Activate Auto-Center */
value[0] = 0x14;
value[1] = 0x00;
value[2] = 0x00;
value[3] = 0x00;
value[4] = 0x00;
value[5] = 0x00;
value[6] = 0x00;

hid_hw_request(hid, report, HID_REQ_SET_REPORT);
}

/* Sends autocentering command compatible with Formula Force EX */
Expand Down

0 comments on commit d2c02da

Please sign in to comment.