aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hwmon/lis3lv02d.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/hwmon/lis3lv02d.c b/drivers/hwmon/lis3lv02d.c
index 3109eb8648ce..a4929b72506e 100644
--- a/drivers/hwmon/lis3lv02d.c
+++ b/drivers/hwmon/lis3lv02d.c
@@ -71,8 +71,10 @@
71#define LIS3_SENSITIVITY_12B ((LIS3_ACCURACY * 1000) / 1024) 71#define LIS3_SENSITIVITY_12B ((LIS3_ACCURACY * 1000) / 1024)
72#define LIS3_SENSITIVITY_8B (18 * LIS3_ACCURACY) 72#define LIS3_SENSITIVITY_8B (18 * LIS3_ACCURACY)
73 73
74#define LIS3_DEFAULT_FUZZ 3 74#define LIS3_DEFAULT_FUZZ_12B 3
75#define LIS3_DEFAULT_FLAT 3 75#define LIS3_DEFAULT_FLAT_12B 3
76#define LIS3_DEFAULT_FUZZ_8B 1
77#define LIS3_DEFAULT_FLAT_8B 1
76 78
77struct lis3lv02d lis3_dev = { 79struct lis3lv02d lis3_dev = {
78 .misc_wait = __WAIT_QUEUE_HEAD_INITIALIZER(lis3_dev.misc_wait), 80 .misc_wait = __WAIT_QUEUE_HEAD_INITIALIZER(lis3_dev.misc_wait),
@@ -564,8 +566,16 @@ int lis3lv02d_joystick_enable(void)
564 566
565 set_bit(EV_ABS, input_dev->evbit); 567 set_bit(EV_ABS, input_dev->evbit);
566 max_val = (lis3_dev.mdps_max_val * lis3_dev.scale) / LIS3_ACCURACY; 568 max_val = (lis3_dev.mdps_max_val * lis3_dev.scale) / LIS3_ACCURACY;
567 fuzz = (LIS3_DEFAULT_FUZZ * lis3_dev.scale) / LIS3_ACCURACY; 569 if (lis3_dev.whoami == WAI_12B) {
568 flat = (LIS3_DEFAULT_FLAT * lis3_dev.scale) / LIS3_ACCURACY; 570 fuzz = LIS3_DEFAULT_FUZZ_12B;
571 flat = LIS3_DEFAULT_FLAT_12B;
572 } else {
573 fuzz = LIS3_DEFAULT_FUZZ_8B;
574 flat = LIS3_DEFAULT_FLAT_8B;
575 }
576 fuzz = (fuzz * lis3_dev.scale) / LIS3_ACCURACY;
577 flat = (flat * lis3_dev.scale) / LIS3_ACCURACY;
578
569 input_set_abs_params(input_dev, ABS_X, -max_val, max_val, fuzz, flat); 579 input_set_abs_params(input_dev, ABS_X, -max_val, max_val, fuzz, flat);
570 input_set_abs_params(input_dev, ABS_Y, -max_val, max_val, fuzz, flat); 580 input_set_abs_params(input_dev, ABS_Y, -max_val, max_val, fuzz, flat);
571 input_set_abs_params(input_dev, ABS_Z, -max_val, max_val, fuzz, flat); 581 input_set_abs_params(input_dev, ABS_Z, -max_val, max_val, fuzz, flat);