mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
HID: wacom: Set a default resolution for older tablets
Some older tablets may not report physical maximum for X/Y coordinates. Set a default to prevent undefined resolution. Signed-off-by: Ping Cheng <ping.cheng@wacom.com> Link: https://lore.kernel.org/r/20230409164229.29777-1-ping.cheng@wacom.com Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
This commit is contained in:
parent
17d793f3ed
commit
08a46b4190
@ -1921,6 +1921,7 @@ static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage,
|
|||||||
int fmax = field->logical_maximum;
|
int fmax = field->logical_maximum;
|
||||||
unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid);
|
unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid);
|
||||||
int resolution_code = code;
|
int resolution_code = code;
|
||||||
|
int resolution = hidinput_calc_abs_res(field, resolution_code);
|
||||||
|
|
||||||
if (equivalent_usage == HID_DG_TWIST) {
|
if (equivalent_usage == HID_DG_TWIST) {
|
||||||
resolution_code = ABS_RZ;
|
resolution_code = ABS_RZ;
|
||||||
@ -1941,8 +1942,15 @@ static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage,
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case EV_ABS:
|
case EV_ABS:
|
||||||
input_set_abs_params(input, code, fmin, fmax, fuzz, 0);
|
input_set_abs_params(input, code, fmin, fmax, fuzz, 0);
|
||||||
input_abs_set_res(input, code,
|
|
||||||
hidinput_calc_abs_res(field, resolution_code));
|
/* older tablet may miss physical usage */
|
||||||
|
if ((code == ABS_X || code == ABS_Y) && !resolution) {
|
||||||
|
resolution = WACOM_INTUOS_RES;
|
||||||
|
hid_warn(input,
|
||||||
|
"Wacom usage (%d) missing resolution \n",
|
||||||
|
code);
|
||||||
|
}
|
||||||
|
input_abs_set_res(input, code, resolution);
|
||||||
break;
|
break;
|
||||||
case EV_KEY:
|
case EV_KEY:
|
||||||
case EV_MSC:
|
case EV_MSC:
|
||||||
|
Loading…
Reference in New Issue
Block a user