All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4] input: wacom - Pass touch resolution to clients through input_absinfo
@ 2011-01-25 19:38 Ping Cheng
  2011-01-25 19:55 ` Henrik Rydberg
  0 siblings, 1 reply; 2+ messages in thread
From: Ping Cheng @ 2011-01-25 19:38 UTC (permalink / raw)
  To: linux-input; +Cc: dmitry.torokhov, rydberg, Ping Cheng, Ping Cheng

Fixed the workaround used for kernels older than 2.6.35.

This version added a funtion, wacom_calculate_touch_res, to calculate
touch resolutions. The word "touch" is needed since the routine does
not apply to pen tablets.

Signed-off-by: Ping Cheng <pingc@wacom.com>
---
 drivers/input/tablet/wacom_wac.c |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index f44c822..367fa82 100644
--- a/drivers/input/tablet/wacom_wac.c
+++ b/drivers/input/tablet/wacom_wac.c
@@ -1101,6 +1101,13 @@ void wacom_setup_device_quirks(struct wacom_features *features)
 	}
 }
 
+static unsigned int wacom_calculate_touch_res(unsigned int logical_max,
+					      unsigned int physical_max)
+{
+       /* Touch physical dimensions are in 100th of mm */
+       return (logical_max * 100) / physical_max;
+}
+
 void wacom_setup_input_capabilities(struct input_dev *input_dev,
 				    struct wacom_wac *wacom_wac)
 {
@@ -1228,8 +1235,12 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
 	case TABLETPC:
 		if (features->device_type == BTN_TOOL_DOUBLETAP ||
 		    features->device_type == BTN_TOOL_TRIPLETAP) {
-			input_set_abs_params(input_dev, ABS_RX, 0, features->x_phy, 0, 0);
-			input_set_abs_params(input_dev, ABS_RY, 0, features->y_phy, 0, 0);
+			input_abs_set_res(input_dev, ABS_X,
+				wacom_calculate_touch_res(features->x_max,
+							features->x_phy));
+			input_abs_set_res(input_dev, ABS_Y,
+				wacom_calculate_touch_res(features->y_max,
+							features->y_phy));
 			__set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
 		}
 
@@ -1272,6 +1283,12 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
 			input_set_abs_params(input_dev, ABS_MT_PRESSURE,
 					     0, features->pressure_max,
 					     features->pressure_fuzz, 0);
+			input_abs_set_res(input_dev, ABS_X,
+				wacom_calculate_touch_res(features->x_max,
+							features->x_phy));
+			input_abs_set_res(input_dev, ABS_Y,
+				wacom_calculate_touch_res(features->y_max,
+							features->y_phy));
 		} else if (features->device_type == BTN_TOOL_PEN) {
 			__set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
 			__set_bit(BTN_TOOL_PEN, input_dev->keybit);
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v4] input: wacom - Pass touch resolution to clients through input_absinfo
  2011-01-25 19:38 [PATCH v4] input: wacom - Pass touch resolution to clients through input_absinfo Ping Cheng
@ 2011-01-25 19:55 ` Henrik Rydberg
  0 siblings, 0 replies; 2+ messages in thread
From: Henrik Rydberg @ 2011-01-25 19:55 UTC (permalink / raw)
  To: Ping Cheng; +Cc: linux-input, dmitry.torokhov, Ping Cheng

On Tue, Jan 25, 2011 at 11:38:29AM -0800, Ping Cheng wrote:
> Fixed the workaround used for kernels older than 2.6.35.
> 
> This version added a funtion, wacom_calculate_touch_res, to calculate
> touch resolutions. The word "touch" is needed since the routine does
> not apply to pen tablets.
> 
> Signed-off-by: Ping Cheng <pingc@wacom.com>
> ---

The SOB area should still contain the original text, explaining the
reason for the patch... other than that, it all looks fine to me.

Thanks,
Henrik

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-01-25 19:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-25 19:38 [PATCH v4] input: wacom - Pass touch resolution to clients through input_absinfo Ping Cheng
2011-01-25 19:55 ` Henrik Rydberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.