|
@@ -208,7 +208,7 @@ static int hidinput_setkeycode(struct input_dev *dev,
|
|
|
* Only exponent 1 length units are processed. Centimeters and inches are
|
|
|
* converted to millimeters. Degrees are converted to radians.
|
|
|
*/
|
|
|
-static __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
|
|
|
+__s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
|
|
|
{
|
|
|
__s32 unit_exponent = field->unit_exponent;
|
|
|
__s32 logical_extents = field->logical_maximum -
|
|
@@ -229,6 +229,12 @@ static __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
|
|
|
case ABS_X:
|
|
|
case ABS_Y:
|
|
|
case ABS_Z:
|
|
|
+ case ABS_MT_POSITION_X:
|
|
|
+ case ABS_MT_POSITION_Y:
|
|
|
+ case ABS_MT_TOOL_X:
|
|
|
+ case ABS_MT_TOOL_Y:
|
|
|
+ case ABS_MT_TOUCH_MAJOR:
|
|
|
+ case ABS_MT_TOUCH_MINOR:
|
|
|
if (field->unit == 0x11) { /* If centimeters */
|
|
|
/* Convert to millimeters */
|
|
|
unit_exponent += 1;
|
|
@@ -283,6 +289,7 @@ static __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
|
|
|
/* Calculate resolution */
|
|
|
return logical_extents / physical_extents;
|
|
|
}
|
|
|
+EXPORT_SYMBOL_GPL(hidinput_calc_abs_res);
|
|
|
|
|
|
#ifdef CONFIG_HID_BATTERY_STRENGTH
|
|
|
static enum power_supply_property hidinput_battery_props[] = {
|