|
@@ -16,16 +16,16 @@
|
|
|
#include <linux/input.h>
|
|
|
#include <linux/hid.h>
|
|
|
|
|
|
-#define map_abs(c) do { usage->code = c; usage->type = EV_ABS; bit = input->absbit; *max = ABS_MAX; } while (0)
|
|
|
-#define map_rel(c) do { usage->code = c; usage->type = EV_REL; bit = input->relbit; *max = REL_MAX; } while (0)
|
|
|
-#define map_key(c) do { usage->code = c; usage->type = EV_KEY; bit = input->keybit; *max = KEY_MAX; } while (0)
|
|
|
-#define map_led(c) do { usage->code = c; usage->type = EV_LED; bit = input->ledbit; *max = LED_MAX; } while (0)
|
|
|
+#define map_abs(c) do { usage->code = c; usage->type = EV_ABS; *bit = input->absbit; *max = ABS_MAX; } while (0)
|
|
|
+#define map_rel(c) do { usage->code = c; usage->type = EV_REL; *bit = input->relbit; *max = REL_MAX; } while (0)
|
|
|
+#define map_key(c) do { usage->code = c; usage->type = EV_KEY; *bit = input->keybit; *max = KEY_MAX; } while (0)
|
|
|
+#define map_led(c) do { usage->code = c; usage->type = EV_LED; *bit = input->ledbit; *max = LED_MAX; } while (0)
|
|
|
|
|
|
-#define map_abs_clear(c) do { map_abs(c); clear_bit(c, bit); } while (0)
|
|
|
-#define map_key_clear(c) do { map_key(c); clear_bit(c, bit); } while (0)
|
|
|
+#define map_abs_clear(c) do { map_abs(c); clear_bit(c, *bit); } while (0)
|
|
|
+#define map_key_clear(c) do { map_key(c); clear_bit(c, *bit); } while (0)
|
|
|
|
|
|
static int quirk_belkin_wkbd(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
|
|
|
return 0;
|
|
@@ -41,7 +41,7 @@ static int quirk_belkin_wkbd(struct hid_usage *usage, struct input_dev *input,
|
|
|
}
|
|
|
|
|
|
static int quirk_cherry_cymotion(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
|
|
|
return 0;
|
|
@@ -57,7 +57,7 @@ static int quirk_cherry_cymotion(struct hid_usage *usage, struct input_dev *inpu
|
|
|
}
|
|
|
|
|
|
static int quirk_logitech_ultrax_remote(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_LOGIVENDOR)
|
|
|
return 0;
|
|
@@ -90,7 +90,7 @@ static int quirk_logitech_ultrax_remote(struct hid_usage *usage, struct input_de
|
|
|
}
|
|
|
|
|
|
static int quirk_chicony_tactical_pad(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_MSVENDOR)
|
|
|
return 0;
|
|
@@ -115,7 +115,7 @@ static int quirk_chicony_tactical_pad(struct hid_usage *usage, struct input_dev
|
|
|
}
|
|
|
|
|
|
static int quirk_microsoft_ergonomy_kb(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_MSVENDOR)
|
|
|
return 0;
|
|
@@ -138,7 +138,7 @@ static int quirk_microsoft_ergonomy_kb(struct hid_usage *usage, struct input_dev
|
|
|
}
|
|
|
|
|
|
static int quirk_microsoft_presenter_8k(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_MSVENDOR)
|
|
|
return 0;
|
|
@@ -156,7 +156,7 @@ static int quirk_microsoft_presenter_8k(struct hid_usage *usage, struct input_de
|
|
|
}
|
|
|
|
|
|
static int quirk_petalynx_remote(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if (((usage->hid & HID_USAGE_PAGE) != HID_UP_LOGIVENDOR) &&
|
|
|
((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER))
|
|
@@ -184,7 +184,7 @@ static int quirk_petalynx_remote(struct hid_usage *usage, struct input_dev *inpu
|
|
|
}
|
|
|
|
|
|
static int quirk_logitech_wireless(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
|
|
|
return 0;
|
|
@@ -236,7 +236,7 @@ static int quirk_logitech_wireless(struct hid_usage *usage, struct input_dev *in
|
|
|
}
|
|
|
|
|
|
static int quirk_cherry_genius_29e(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
|
|
|
return 0;
|
|
@@ -254,7 +254,7 @@ static int quirk_cherry_genius_29e(struct hid_usage *usage, struct input_dev *in
|
|
|
}
|
|
|
|
|
|
static int quirk_btc_8193(struct hid_usage *usage, struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
|
|
|
return 0;
|
|
@@ -307,7 +307,7 @@ static int quirk_btc_8193(struct hid_usage *usage, struct input_dev *input,
|
|
|
static const struct hid_input_blacklist {
|
|
|
__u16 idVendor;
|
|
|
__u16 idProduct;
|
|
|
- int (*quirk)(struct hid_usage *, struct input_dev *, unsigned long *, int *);
|
|
|
+ int (*quirk)(struct hid_usage *, struct input_dev *, unsigned long **, int *);
|
|
|
} hid_input_blacklist[] = {
|
|
|
{ VENDOR_ID_BELKIN, DEVICE_ID_BELKIN_WIRELESS_KEYBOARD, quirk_belkin_wkbd },
|
|
|
|
|
@@ -335,7 +335,7 @@ static const struct hid_input_blacklist {
|
|
|
|
|
|
int hidinput_mapping_quirks(struct hid_usage *usage,
|
|
|
struct input_dev *input,
|
|
|
- unsigned long *bit, int *max)
|
|
|
+ unsigned long **bit, int *max)
|
|
|
{
|
|
|
struct hid_device *device = input_get_drvdata(input);
|
|
|
int i = 0;
|