summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Tissoires <benjamin.tissoires@gmail.com>2012-11-14 16:59:14 +0100
committerJiri Kosina <jkosina@suse.cz>2012-11-15 10:06:56 +0100
commitccdd699411b77c463022ebac311eb4a06ca56db4 (patch)
tree3103c884cc1f4f89969c5889485e032742f40c3e
parent37cf6e6fc34e2fca4e7c565697e7cd5c317bc316 (diff)
downloadlinux-3.10-ccdd699411b77c463022ebac311eb4a06ca56db4.tar.gz
linux-3.10-ccdd699411b77c463022ebac311eb4a06ca56db4.tar.bz2
linux-3.10-ccdd699411b77c463022ebac311eb4a06ca56db4.zip
HID: round return value of hidinput_calc_abs_res
hidinput_calc_abs_res should return the closest int in the division instead of the floor. On a device with a logical_max of 3008 and a physical_max of 255mm, previous implementation gave a resolution of 11 instead of 12. With 11, user-space computes a physical size of 273.5mm and the round_closest results gives 250.6mm. The old implementation introduced an error of 2cm in this example. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com> Acked-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/hid-input.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index d1ec571bdb3..1b0adc3f780 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -287,7 +287,7 @@ __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
}
/* Calculate resolution */
- return logical_extents / physical_extents;
+ return DIV_ROUND_CLOSEST(logical_extents, physical_extents);
}
EXPORT_SYMBOL_GPL(hidinput_calc_abs_res);