|
@@ -3,7 +3,7 @@
|
|
|
* Fixes "jumpy" cursor and removes nonexistent keyboard LEDS from
|
|
|
* the HID descriptor.
|
|
|
*
|
|
|
- * Copyright (c) 2011 Stefan Kriwanek <mail@stefankriwanek.de>
|
|
|
+ * Copyright (c) 2011, 2013 Stefan Kriwanek <dev@stefankriwanek.de>
|
|
|
*/
|
|
|
|
|
|
/*
|
|
@@ -46,8 +46,13 @@ static int speedlink_event(struct hid_device *hdev, struct hid_field *field,
|
|
|
struct hid_usage *usage, __s32 value)
|
|
|
{
|
|
|
/* No other conditions due to usage_table. */
|
|
|
- /* Fix "jumpy" cursor (invalid events sent by device). */
|
|
|
- if (value == 256)
|
|
|
+
|
|
|
+ /* This fixes the "jumpy" cursor occuring due to invalid events sent
|
|
|
+ * by the device. Some devices only send them with value==+256, others
|
|
|
+ * don't. However, catching abs(value)>=256 is restrictive enough not
|
|
|
+ * to interfere with devices that were bug-free (has been tested).
|
|
|
+ */
|
|
|
+ if (abs(value) >= 256)
|
|
|
return 1;
|
|
|
/* Drop useless distance 0 events (on button clicks etc.) as well */
|
|
|
if (value == 0)
|