Skip to content

Commit 49005b9

Browse files
jigpuJiri Kosina
authored andcommitted
HID: wacom: Refactor button-to-key translation into function
This just centralizes the logic used in both wacom_setup_numbered_buttons and wacom_report_numbered_buttons so that they don't drift out of sync. Signed-off-by: Jason Gerecke <[email protected]> Reviewed-by: Benjamin Tissoires <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 1b18b75 commit 49005b9

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

drivers/hid/wacom_wac.c

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2769,17 +2769,29 @@ int wacom_setup_touch_input_capabilities(struct input_dev *input_dev,
27692769
return 0;
27702770
}
27712771

2772+
static int wacom_numbered_button_to_key(int n)
2773+
{
2774+
if (n < 10)
2775+
return BTN_0 + n;
2776+
else if (n < 16)
2777+
return BTN_A + (n-10);
2778+
else if (n < 18)
2779+
return BTN_BASE + (n-16);
2780+
else
2781+
return 0;
2782+
}
2783+
27722784
static void wacom_setup_numbered_buttons(struct input_dev *input_dev,
27732785
int button_count)
27742786
{
27752787
int i;
27762788

2777-
for (i = 0; i < button_count && i < 10; i++)
2778-
__set_bit(BTN_0 + i, input_dev->keybit);
2779-
for (i = 10; i < button_count && i < 16; i++)
2780-
__set_bit(BTN_A + (i-10), input_dev->keybit);
2781-
for (i = 16; i < button_count && i < 18; i++)
2782-
__set_bit(BTN_BASE + (i-16), input_dev->keybit);
2789+
for (i = 0; i < button_count; i++) {
2790+
int key = wacom_numbered_button_to_key(i);
2791+
2792+
if (key)
2793+
__set_bit(key, input_dev->keybit);
2794+
}
27832795
}
27842796

27852797
static void wacom_24hd_update_leds(struct wacom *wacom, int mask, int group)
@@ -2881,12 +2893,12 @@ static void wacom_report_numbered_buttons(struct input_dev *input_dev,
28812893
for (i = 0; i < wacom->led.count; i++)
28822894
wacom_update_led(wacom, button_count, mask, i);
28832895

2884-
for (i = 0; i < button_count && i < 10; i++)
2885-
input_report_key(input_dev, BTN_0 + i, mask & (1 << i));
2886-
for (i = 10; i < button_count && i < 16; i++)
2887-
input_report_key(input_dev, BTN_A + (i-10), mask & (1 << i));
2888-
for (i = 16; i < button_count && i < 18; i++)
2889-
input_report_key(input_dev, BTN_BASE + (i-16), mask & (1 << i));
2896+
for (i = 0; i < button_count; i++) {
2897+
int key = wacom_numbered_button_to_key(i);
2898+
2899+
if (key)
2900+
input_report_key(input_dev, key, mask & (1 << i));
2901+
}
28902902
}
28912903

28922904
int wacom_setup_pad_input_capabilities(struct input_dev *input_dev,

0 commit comments

Comments
 (0)