Skip to content

Commit

Permalink
Input: wacom - add POINTER and DIRECT device properties
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jason Gerecke authored and Dmitry Torokhov committed Sep 8, 2011
1 parent 8c67566 commit 3512069
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
2 changes: 2 additions & 0 deletions drivers/hid/hid-wacom.c
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,8 @@ static int wacom_probe(struct hid_device *hdev,
hidinput = list_entry(hdev->inputs.next, struct hid_input, list);
input = hidinput->input;

__set_bit(INPUT_PROP_POINTER, input->propbit);

/* Basics */
input->evbit[0] |= BIT(EV_KEY) | BIT(EV_ABS) | BIT(EV_REL);

Expand Down
25 changes: 24 additions & 1 deletion drivers/input/tablet/wacom_wac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1098,6 +1098,8 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
__set_bit(BTN_TOOL_MOUSE, input_dev->keybit);
__set_bit(BTN_STYLUS, input_dev->keybit);
__set_bit(BTN_STYLUS2, input_dev->keybit);

__set_bit(INPUT_PROP_POINTER, input_dev->propbit);
break;

case WACOM_21UX2:
Expand Down Expand Up @@ -1126,6 +1128,9 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
}

input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0);

__set_bit(INPUT_PROP_DIRECT, input_dev->propbit);

wacom_setup_cintiq(wacom_wac);
break;

Expand All @@ -1150,6 +1155,8 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
/* fall through */

case INTUOS:
__set_bit(INPUT_PROP_POINTER, input_dev->propbit);

wacom_setup_intuos(wacom_wac);
break;

Expand All @@ -1165,6 +1172,8 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,

input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0);
wacom_setup_intuos(wacom_wac);

__set_bit(INPUT_PROP_POINTER, input_dev->propbit);
break;

case TABLETPC2FG:
Expand All @@ -1183,26 +1192,40 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
case TABLETPC:
__clear_bit(ABS_MISC, input_dev->absbit);

__set_bit(INPUT_PROP_DIRECT, input_dev->propbit);

if (features->device_type != BTN_TOOL_PEN)
break; /* no need to process stylus stuff */

/* fall through */

case PL:
case PTU:
case DTU:
__set_bit(BTN_TOOL_PEN, input_dev->keybit);
__set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
__set_bit(BTN_STYLUS, input_dev->keybit);
__set_bit(BTN_STYLUS2, input_dev->keybit);

__set_bit(INPUT_PROP_DIRECT, input_dev->propbit);
break;

case PTU:
__set_bit(BTN_STYLUS2, input_dev->keybit);
/* fall through */

case PENPARTNER:
__set_bit(BTN_TOOL_PEN, input_dev->keybit);
__set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
__set_bit(BTN_STYLUS, input_dev->keybit);

__set_bit(INPUT_PROP_POINTER, input_dev->propbit);
break;

case BAMBOO_PT:
__clear_bit(ABS_MISC, input_dev->absbit);

__set_bit(INPUT_PROP_POINTER, input_dev->propbit);

if (features->device_type == BTN_TOOL_DOUBLETAP) {
__set_bit(BTN_LEFT, input_dev->keybit);
__set_bit(BTN_FORWARD, input_dev->keybit);
Expand Down
2 changes: 2 additions & 0 deletions drivers/input/touchscreen/wacom_w8001.c
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,8 @@ static int w8001_setup(struct w8001 *w8001)
dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
strlcat(w8001->name, "Wacom Serial", sizeof(w8001->name));

__set_bit(INPUT_PROP_DIRECT, dev->propbit);

/* penabled? */
error = w8001_command(w8001, W8001_CMD_QUERY, true);
if (!error) {
Expand Down

0 comments on commit 3512069

Please sign in to comment.