HID: fix autocentering of PID devices
authorDiogo Kastrup <dk@bighost.com.br>
Tue, 19 Jun 2007 12:16:15 +0000 (14:16 +0200)
committerJiri Kosina <jkosina@suse.cz>
Mon, 9 Jul 2007 12:13:35 +0000 (14:13 +0200)
When setting the autocentering of PID devices, PID_DIRECTION_ENABLE is not
being explicitely set to 1. This results in autocentering working only on the
vertical axis when this field is preset to 0.

Fix that by setting it explicitely to 1 when preparing the set_effect report
for autocentering spring effect.

Signed-off-by: Diogo Kastrup <dk@bighost.com.br>
Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/usbhid/hid-pidff.c

index f5a90e950e6b54cfcd48381f89d8b38e141b1aea..011326178c0670c5b5e680a47d741661101a45aa 100644 (file)
@@ -738,6 +738,7 @@ static void pidff_autocenter(struct pidff_device *pidff, u16 magnitude)
        pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = 0;
        pidff->set_effect[PID_TRIGGER_REPEAT_INT].value[0] = 0;
        pidff_set(&pidff->set_effect[PID_GAIN], magnitude);
+       pidff->set_effect[PID_DIRECTION_ENABLE].value[0] = 1;
        pidff->set_effect[PID_START_DELAY].value[0] = 0;
 
        usbhid_submit_report(pidff->hid, pidff->reports[PID_SET_EFFECT],