diff mbox

Input: wacom - Add POINTER and DIRECT device properties

Message ID 1314892843-1475-1-git-send-email-killertofu@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Gerecke, Jason Sept. 1, 2011, 4 p.m. UTC
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>
---
 drivers/hid/hid-wacom.c                 |    2 ++
 drivers/input/tablet/wacom_wac.c        |   25 ++++++++++++++++++++++++-
 drivers/input/touchscreen/wacom_w8001.c |    2 ++
 3 files changed, 28 insertions(+), 1 deletions(-)

Comments

Ping Cheng Sept. 1, 2011, 7:31 p.m. UTC | #1
On Thu, Sep 1, 2011 at 9:00 AM, Jason Gerecke <killertofu@gmail.com> wrote:
>
> 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>

Ping

> ---
>  drivers/hid/hid-wacom.c                 |    2 ++
>  drivers/input/tablet/wacom_wac.c        |   25 ++++++++++++++++++++++++-
>  drivers/input/touchscreen/wacom_w8001.c |    2 ++
>  3 files changed, 28 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c
> index 0688832..5b9267d 100644
> --- a/drivers/hid/hid-wacom.c
> +++ b/drivers/hid/hid-wacom.c
> @@ -383,6 +383,8 @@ move_on:
>        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);
>
> diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
> index 87b0e0d..a28d48c 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,
>                __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:
> @@ -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;
>
> @@ -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;
>
> @@ -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:
> @@ -1183,14 +1192,24 @@ 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 */
>
> @@ -1198,11 +1217,15 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
>                __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);
> diff --git a/drivers/input/touchscreen/wacom_w8001.c b/drivers/input/touchscreen/wacom_w8001.c
> index c14412e..9941d39 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)
>        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) {
> --
> 1.7.6
>
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c
index 0688832..5b9267d 100644
--- a/drivers/hid/hid-wacom.c
+++ b/drivers/hid/hid-wacom.c
@@ -383,6 +383,8 @@  move_on:
 	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);
 
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index 87b0e0d..a28d48c 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,
 		__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:
@@ -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;
 
@@ -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;
 
@@ -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:
@@ -1183,14 +1192,24 @@  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 */
 
@@ -1198,11 +1217,15 @@  void wacom_setup_input_capabilities(struct input_dev *input_dev,
 		__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);
diff --git a/drivers/input/touchscreen/wacom_w8001.c b/drivers/input/touchscreen/wacom_w8001.c
index c14412e..9941d39 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)
 	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) {