HID: wacom: generic: Pad supports more than buttons
authorPing Cheng <pinglinux@gmail.com>
Fri, 9 Dec 2016 06:05:44 +0000 (22:05 -0800)
committerJiri Kosina <jkosina@suse.cz>
Fri, 9 Dec 2016 12:26:24 +0000 (13:26 +0100)
Make sure everything reported from pad are registered

Signed-off-by: Ping Cheng <ping.cheng@wacom.com>
Reviewed-By: Jason Gerecke <jason.gerecke@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/wacom_wac.c

index 29d2610..7a748a7 100644 (file)
@@ -1538,14 +1538,17 @@ static void wacom_wac_pad_usage_mapping(struct hid_device *hdev,
        case WACOM_HID_WD_ACCELEROMETER_X:
                __set_bit(INPUT_PROP_ACCELEROMETER, input->propbit);
                wacom_map_usage(input, usage, field, EV_ABS, ABS_X, 0);
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        case WACOM_HID_WD_ACCELEROMETER_Y:
                __set_bit(INPUT_PROP_ACCELEROMETER, input->propbit);
                wacom_map_usage(input, usage, field, EV_ABS, ABS_Y, 0);
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        case WACOM_HID_WD_ACCELEROMETER_Z:
                __set_bit(INPUT_PROP_ACCELEROMETER, input->propbit);
                wacom_map_usage(input, usage, field, EV_ABS, ABS_Z, 0);
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        case WACOM_HID_WD_BUTTONHOME:
        case WACOM_HID_WD_BUTTONUP:
@@ -1557,18 +1560,23 @@ static void wacom_wac_pad_usage_mapping(struct hid_device *hdev,
                                wacom_numbered_button_to_key(features->numbered_buttons),
                                0);
                features->numbered_buttons++;
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        case WACOM_HID_WD_TOUCHONOFF:
                wacom_map_usage(input, usage, field, EV_SW, SW_MUTE_DEVICE, 0);
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        case WACOM_HID_WD_TOUCHSTRIP:
                wacom_map_usage(input, usage, field, EV_ABS, ABS_RX, 0);
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        case WACOM_HID_WD_TOUCHSTRIP2:
                wacom_map_usage(input, usage, field, EV_ABS, ABS_RY, 0);
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        case WACOM_HID_WD_TOUCHRING:
                wacom_map_usage(input, usage, field, EV_ABS, ABS_WHEEL, 0);
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        }
 
@@ -1578,6 +1586,7 @@ static void wacom_wac_pad_usage_mapping(struct hid_device *hdev,
                                wacom_numbered_button_to_key(features->numbered_buttons),
                                0);
                features->numbered_buttons++;
+               features->device_type |= WACOM_DEVICETYPE_PAD;
                break;
        }
 }