Skip to content

Commit

Permalink
HID: wacom: Defer calculation of resolution until resolution_code is …
Browse files Browse the repository at this point in the history
…known

The Wacom driver maps the HID_DG_TWIST usage to ABS_Z (rather than ABS_RZ)
for historic reasons. When the code to support twist was introduced in
commit 50066a042da5 ("HID: wacom: generic: Add support for height, tilt,
and twist usages"), we were careful to write it in such a way that it had
HID calculate the resolution of the twist axis assuming ABS_RZ instead
(so that we would get correct angular behavior). This was broken with
the introduction of commit 08a46b4190d3 ("HID: wacom: Set a default
resolution for older tablets"), which moved the resolution calculation
to occur *before* the adjustment from ABS_Z to ABS_RZ occurred.

This commit moves the calculation of resolution after the point that
we are finished setting things up for its proper use.

Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Fixes: 08a46b4190d3 ("HID: wacom: Set a default resolution for older tablets")
Cc: stable@vger.kernel.org
Signed-off-by: Jiri Kosina <jkosina@suse.com>
[jason.gerecke@wacom.com: Imported into input-wacom (1b8f9c1fb464)]
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
  • Loading branch information
jigpu committed Sep 4, 2024
1 parent a865de8 commit 9856fd8
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion 4.18/wacom_wac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1891,12 +1891,14 @@ static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage,
int fmax = field->logical_maximum;
unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid);
int resolution_code = code;
int resolution = hidinput_calc_abs_res(field, resolution_code);
int resolution;

if (equivalent_usage == HID_DG_TWIST) {
resolution_code = ABS_RZ;
}

resolution = hidinput_calc_abs_res(field, resolution_code);

if (equivalent_usage == HID_GD_X) {
fmin += features->offset_left;
fmax -= features->offset_right;
Expand Down

0 comments on commit 9856fd8

Please sign in to comment.