linux/drivers/hid
Michal Malý 2b24a96001 HID: hid-lg4ff: Adjust X axis input value accordingly to selected range.
Range limiting command for the Driving Force Pro wheel is only a FF_SPRING
effect so that the wheel creates resistance when the user tries to turn it past
the limit. It is however possible to overpower the FFB motors quite easily which
leads to the X axis value exceeding the expected limit. This confuses
games which dynamically adjust calibration using the highest/lowest min and max
values reported by the wheel. Joydev device driver also doesn't take in account
any changes in an axis range after the joystick device is created.

This patch recalculates received ABS_X axis value so it is always in
<0; 16383> range where 0 is the left limit and 16383 the right limit.
Logitech driver for Windows does the same thing.  As for any concerns about
possible loss of precision, I compared a large set of raw/adjusted values
generated by "mult_frac" to values returned by the Windows driver and I got
a 100% match.

Other Logitech wheels will probably need a similar fix, but I currently lack
the information needed to write one.

Signed-off-by: Michal Malý <madcatxster@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2012-09-25 15:41:02 +02:00
..
usbhid HID: add NOGET quirk for Eaton Ellipse MAX UPS 2012-08-27 07:53:54 -07:00
hid-a4tech.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-apple.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-07-13 10:33:18 -07:00
hid-aureal.c HID: Aureal Remote Control Device Driver 2012-04-13 18:15:57 +02:00
hid-axff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-belkin.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-cherry.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-chicony.c HID: add ASUS AIO keyboard model AK1D 2012-07-23 12:10:21 +02:00
hid-core.c HID: tpkbd: work even if the new Lenovo Keyboard driver is not configured 2012-09-07 17:11:12 +02:00
hid-cypress.c HID: add support for Cypress barcode scanner 04B4:ED81 2012-07-22 11:32:24 +02:00
hid-debug.c Merge branches 'hyperv', 'multitouch', 'roccat', 'upstream', 'upstream-fixes', 'wacom' and 'wiimote' into for-linus 2012-01-05 15:51:02 +01:00
hid-dr.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-elecom.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-emsff.c Merge branches 'hyperv', 'multitouch', 'roccat', 'upstream', 'upstream-fixes', 'wacom' and 'wiimote' into for-linus 2012-01-05 15:51:02 +01:00
hid-ezkey.c HID: adding __init/__exit macros to module init/exit functions 2009-07-23 01:28:01 +02:00
hid-gaff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-generic.c HID: Create a common generic driver 2012-05-01 12:54:55 +02:00
hid-gyration.c HID: Add teletext/color keys - gyration remote - EU version (GYAR3101CKDE) 2011-02-15 10:29:57 +01:00
hid-holtek-kbd.c HID: Add driver for Holtek based keyboards with broken HID 2012-07-12 12:34:43 +02:00
hid-holtekff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-hyperv.c HID: hyperv: Set the hid drvdata correctly 2012-05-17 10:01:07 +02:00
hid-ids.h Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-07-31 18:47:44 -07:00
hid-input.c Merge branches 'hidraw', 'magicmouse', 'multitouch', 'roccat', 'suspend-fixes' and 'upstream' into for-linus 2012-07-24 13:39:00 +02:00
hid-kensington.c HID: adding __init/__exit macros to module init/exit functions 2009-07-23 01:28:01 +02:00
hid-keytouch.c HID: add support for Keytouch IEC 60945 2011-02-17 15:12:45 +01:00
hid-kye.c HID: kye: Add support for 3 tablets 2012-02-28 13:37:12 +01:00
hid-lcpower.c HID: hid-lcpower: fix key mapping 2011-02-13 15:04:51 +01:00
hid-lenovo-tpkbd.c HID: lenovo-tpkbd: Fix memory leak in tpkbd_remove_tp() 2012-09-22 10:58:36 +02:00
hid-lg.c HID: hid-lg4ff: Adjust X axis input value accordingly to selected range. 2012-09-25 15:41:02 +02:00
hid-lg.h HID: hid-lg4ff: Adjust X axis input value accordingly to selected range. 2012-09-25 15:41:02 +02:00
hid-lg2ff.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-lg3ff.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-lg4ff.c HID: hid-lg4ff: Adjust X axis input value accordingly to selected range. 2012-09-25 15:41:02 +02:00
hid-lgff.c HID: lg4ff - Move handling of Logitech wheels to lg4ff driver 2011-08-04 16:45:55 +02:00
hid-logitech-dj.c HID: Fix logitech-dj: missing Unifying device issue 2012-09-22 10:58:48 +02:00
hid-logitech-dj.h HID: Fix logitech-dj: missing Unifying device issue 2012-09-22 10:58:48 +02:00
hid-magicmouse.c HID: magicmouse: Implement Multi-touch Protocol B (MT-B) 2012-07-04 20:58:48 +02:00
hid-microsoft.c HID: fix horizontal wheel for ms comfort mouse 4500 2011-07-12 10:31:56 +02:00
hid-monterey.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-multitouch.c HID: hid-multitouch: add support for Zytronic panels 2012-07-19 13:56:16 +02:00
hid-ntrig.c HID: hid-ntrig: init settle and mode check 2011-03-14 13:10:13 +01:00
hid-ortek.c HID: add support for Skycable 0x3f07 wireless presenter 2011-03-21 16:12:23 +01:00
hid-petalynx.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-picolcd.c Merge branches 'hidraw', 'magicmouse', 'multitouch', 'roccat', 'suspend-fixes' and 'upstream' into for-linus 2012-07-24 13:39:00 +02:00
hid-pl.c misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
hid-primax.c HID: support primax keyboards violating USB HID spec 2011-10-17 17:04:41 +02:00
hid-prodikeys.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
hid-roccat-arvo.c HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-arvo.h HID: roccat: correction and cleanup of HID feature reports 2011-06-13 12:52:57 +02:00
hid-roccat-common.c HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-common.h HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-isku.c HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-isku.h HID: roccat: move functionality to roccat-common 2012-06-28 10:34:01 +02:00
hid-roccat-kone.c HID: roccat: fix wrong hid_err usage on struct usb_device 2012-06-28 10:34:01 +02:00
hid-roccat-kone.h HID: roccat: correction and cleanup of HID feature reports 2011-06-13 12:52:57 +02:00
hid-roccat-koneplus.c HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-koneplus.h HID: roccat: move functionality to roccat-common 2012-06-28 10:34:01 +02:00
hid-roccat-kovaplus.c HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-kovaplus.h HID: roccat: move functionality to roccat-common 2012-06-28 10:34:01 +02:00
hid-roccat-pyra.c HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-pyra.h HID: roccat: move functionality to roccat-common 2012-06-28 10:34:01 +02:00
hid-roccat-savu.c HID: roccat: added sensor sysfs attribute for Savu 2012-07-20 09:50:42 +02:00
hid-roccat-savu.h HID: roccat: added sensor sysfs attribute for Savu 2012-07-20 09:50:42 +02:00
hid-roccat.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
hid-saitek.c HID: add new driver for non-compliant Saitek devices 2012-02-22 11:30:17 +01:00
hid-samsung.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-sjoy.c HID: sjoy: Add device ID for Super Joy Box 3 2012-02-21 14:16:36 +01:00
hid-sony.c HID: hid-sony: fix endiannes of Sixaxis accel/gyro values 2011-06-13 13:21:30 +02:00
hid-speedlink.c HID: Add driver to fix Speedlink VAD Cezanne support 2011-06-08 09:45:37 +02:00
hid-sunplus.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-tivo.c HID: tivo: fix support for bluetooth version of tivo Slide 2012-03-30 15:28:59 +02:00
hid-tmff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-topseed.c HID: Add support for Perixx PERIBOARD-707 (Plus) 2010-11-25 15:59:02 +01:00
hid-twinhan.c misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
hid-uclogic.c HID: uclogic: Add support for UC-Logic TWHL850 2012-05-15 09:50:19 +02:00
hid-wacom.c HID: wacom: Unify speed setting 2012-05-16 21:42:16 +02:00
hid-waltop.c HID: waltop: Extend barrel button fix 2012-05-21 13:21:18 +02:00
hid-wiimote-core.c HID: wiimote: Fix IR data parser 2012-05-09 11:40:51 +02:00
hid-wiimote-debug.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
hid-wiimote-ext.c HID: wiimote-ext: comment spelling fix 2012-06-05 11:31:26 +02:00
hid-wiimote.h HID: wiimote: Allow direct DRM debug access 2011-11-22 23:11:10 +01:00
hid-zpff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-zydacron.c HID: zydacron: kfree() NULL pointer cleanup 2011-08-04 23:51:29 +02:00
hidraw.c HID: hidraw: fix list->buffer memleak 2012-07-20 10:02:23 +02:00
Kconfig Merge branch 'uhid' into for-linus 2012-07-24 13:40:06 +02:00
Makefile Merge branch 'uhid' into for-linus 2012-07-24 13:40:06 +02:00
uhid.c HID: uhid: Fix sending events with invalid data 2012-07-20 09:53:45 +02:00