diff options
author | Stefan Achatz <erazor_de@users.sourceforge.net> | 2010-05-19 13:53:22 +0200 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2010-05-19 13:53:22 +0200 |
commit | 73b3577d5dc80bf5f079ddd5c0449459a1997765 (patch) | |
tree | c8d5c87fcbeeddc91a2165b25b582d2f5a6aa0a1 /drivers/hid/hid-roccat-kone.c | |
parent | 00237bc5204c43f67b2e68546012d7bd27efc1b6 (diff) |
HID: roccat: fix special button support
Added new data and changed workaround for abnormal button behaviour
according to new gained knowledge about Roccat Kone device.
Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-roccat-kone.c')
-rw-r--r-- | drivers/hid/hid-roccat-kone.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/hid/hid-roccat-kone.c b/drivers/hid/hid-roccat-kone.c index a41df9ab287..5d9ced0defa 100644 --- a/drivers/hid/hid-roccat-kone.c +++ b/drivers/hid/hid-roccat-kone.c @@ -928,14 +928,15 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report, return 0; /* - * Firmware 1.38 introduced new behaviour for tilt buttons. - * Pressed tilt button is reported in each movement event. + * Firmware 1.38 introduced new behaviour for tilt and special buttons. + * Pressed button is reported in each movement event. * Workaround sends only one event per press. */ - if (kone->last_tilt_state == event->tilt) - event->tilt = 0; + if (memcmp(&kone->last_mouse_event.tilt, &event->tilt, 5)) + memcpy(&kone->last_mouse_event, event, + sizeof(struct kone_mouse_event)); else - kone->last_tilt_state = event->tilt; + memset(&event->tilt, 0, 5); /* * handle special events and keep actual profile and dpi values |