aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Gerecke <killertofu@gmail.com>2011-09-08 12:38:14 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2011-09-08 12:42:28 -0400
commit3512069eefd3c3424b12f21a68fd473c3fd57220 (patch)
tree4198d5839ca7007abe5f13a2c07d6cdcc41b68cc
parent8c6756603976e9d21bba9913cd80c38ec529a1fb (diff)
Input: wacom - add POINTER and DIRECT device properties
Adds INPUT_PROP_POINTER or INPUT_PROP_DIRECT as necessary to the hardware supported by the Wacom driver. The DIRECT property is assigned to devices with an embedded screen (i.e. touchscreens and display tablets). The POINTER property is assigned to those without embedded screens. Signed-off-by: Jason Gerecke <killertofu@gmail.com> Reviewed-by: Ping Cheng <pingc@wacom.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r--drivers/hid/hid-wacom.c2
-rw-r--r--drivers/input/tablet/wacom_wac.c25
-rw-r--r--drivers/input/touchscreen/wacom_w8001.c2
3 files changed, 28 insertions, 1 deletions
diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c
index 06888323828c..5b9267dd3d66 100644
--- a/drivers/hid/hid-wacom.c
+++ b/drivers/hid/hid-wacom.c
@@ -383,6 +383,8 @@ move_on:
383 hidinput = list_entry(hdev->inputs.next, struct hid_input, list); 383 hidinput = list_entry(hdev->inputs.next, struct hid_input, list);
384 input = hidinput->input; 384 input = hidinput->input;
385 385
386 __set_bit(INPUT_PROP_POINTER, input->propbit);
387
386 /* Basics */ 388 /* Basics */
387 input->evbit[0] |= BIT(EV_KEY) | BIT(EV_ABS) | BIT(EV_REL); 389 input->evbit[0] |= BIT(EV_KEY) | BIT(EV_ABS) | BIT(EV_REL);
388 390
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index 2d88316d0e54..c31e4e9f2690 100644
--- a/drivers/input/tablet/wacom_wac.c
+++ b/drivers/input/tablet/wacom_wac.c
@@ -1098,6 +1098,8 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
1098 __set_bit(BTN_TOOL_MOUSE, input_dev->keybit); 1098 __set_bit(BTN_TOOL_MOUSE, input_dev->keybit);
1099 __set_bit(BTN_STYLUS, input_dev->keybit); 1099 __set_bit(BTN_STYLUS, input_dev->keybit);
1100 __set_bit(BTN_STYLUS2, input_dev->keybit); 1100 __set_bit(BTN_STYLUS2, input_dev->keybit);
1101
1102 __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
1101 break; 1103 break;
1102 1104
1103 case WACOM_21UX2: 1105 case WACOM_21UX2:
@@ -1126,6 +1128,9 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
1126 } 1128 }
1127 1129
1128 input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); 1130 input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0);
1131
1132 __set_bit(INPUT_PROP_DIRECT, input_dev->propbit);
1133
1129 wacom_setup_cintiq(wacom_wac); 1134 wacom_setup_cintiq(wacom_wac);
1130 break; 1135 break;
1131 1136
@@ -1150,6 +1155,8 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
1150 /* fall through */ 1155 /* fall through */
1151 1156
1152 case INTUOS: 1157 case INTUOS:
1158 __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
1159
1153 wacom_setup_intuos(wacom_wac); 1160 wacom_setup_intuos(wacom_wac);
1154 break; 1161 break;
1155 1162
@@ -1165,6 +1172,8 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
1165 1172
1166 input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); 1173 input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0);
1167 wacom_setup_intuos(wacom_wac); 1174 wacom_setup_intuos(wacom_wac);
1175
1176 __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
1168 break; 1177 break;
1169 1178
1170 case TABLETPC2FG: 1179 case TABLETPC2FG:
@@ -1183,14 +1192,24 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
1183 case TABLETPC: 1192 case TABLETPC:
1184 __clear_bit(ABS_MISC, input_dev->absbit); 1193 __clear_bit(ABS_MISC, input_dev->absbit);
1185 1194
1195 __set_bit(INPUT_PROP_DIRECT, input_dev->propbit);
1196
1186 if (features->device_type != BTN_TOOL_PEN) 1197 if (features->device_type != BTN_TOOL_PEN)
1187 break; /* no need to process stylus stuff */ 1198 break; /* no need to process stylus stuff */
1188 1199
1189 /* fall through */ 1200 /* fall through */
1190 1201
1191 case PL: 1202 case PL:
1192 case PTU:
1193 case DTU: 1203 case DTU:
1204 __set_bit(BTN_TOOL_PEN, input_dev->keybit);
1205 __set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
1206 __set_bit(BTN_STYLUS, input_dev->keybit);
1207 __set_bit(BTN_STYLUS2, input_dev->keybit);
1208
1209 __set_bit(INPUT_PROP_DIRECT, input_dev->propbit);
1210 break;
1211
1212 case PTU:
1194 __set_bit(BTN_STYLUS2, input_dev->keybit); 1213 __set_bit(BTN_STYLUS2, input_dev->keybit);
1195 /* fall through */ 1214 /* fall through */
1196 1215
@@ -1198,11 +1217,15 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
1198 __set_bit(BTN_TOOL_PEN, input_dev->keybit); 1217 __set_bit(BTN_TOOL_PEN, input_dev->keybit);
1199 __set_bit(BTN_TOOL_RUBBER, input_dev->keybit); 1218 __set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
1200 __set_bit(BTN_STYLUS, input_dev->keybit); 1219 __set_bit(BTN_STYLUS, input_dev->keybit);
1220
1221 __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
1201 break; 1222 break;
1202 1223
1203 case BAMBOO_PT: 1224 case BAMBOO_PT:
1204 __clear_bit(ABS_MISC, input_dev->absbit); 1225 __clear_bit(ABS_MISC, input_dev->absbit);
1205 1226
1227 __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
1228
1206 if (features->device_type == BTN_TOOL_DOUBLETAP) { 1229 if (features->device_type == BTN_TOOL_DOUBLETAP) {
1207 __set_bit(BTN_LEFT, input_dev->keybit); 1230 __set_bit(BTN_LEFT, input_dev->keybit);
1208 __set_bit(BTN_FORWARD, input_dev->keybit); 1231 __set_bit(BTN_FORWARD, input_dev->keybit);
diff --git a/drivers/input/touchscreen/wacom_w8001.c b/drivers/input/touchscreen/wacom_w8001.c
index c14412ef4648..9941d39df43d 100644
--- a/drivers/input/touchscreen/wacom_w8001.c
+++ b/drivers/input/touchscreen/wacom_w8001.c
@@ -383,6 +383,8 @@ static int w8001_setup(struct w8001 *w8001)
383 dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); 383 dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
384 strlcat(w8001->name, "Wacom Serial", sizeof(w8001->name)); 384 strlcat(w8001->name, "Wacom Serial", sizeof(w8001->name));
385 385
386 __set_bit(INPUT_PROP_DIRECT, dev->propbit);
387
386 /* penabled? */ 388 /* penabled? */
387 error = w8001_command(w8001, W8001_CMD_QUERY, true); 389 error = w8001_command(w8001, W8001_CMD_QUERY, true);
388 if (!error) { 390 if (!error) {