Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8855f30c authored by Tatsunosuke Tobita's avatar Tatsunosuke Tobita Committed by Dmitry Torokhov
Browse files

Input: wacom_i2c - implement hovering capability



Although BTN_TOOL_PEN and BTN_TOOL_RUBBER functioned properly, the driver
didn't have hover functionality, so it's been added.

Also, "WACOM_RETRY_CNT" was not used, so it was removed.

Signed-off-by: default avatarTatsunosuke Tobita <tobita.tatsunosuke@wacom.co.jp>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 9eb52139
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
/*
 * Wacom Penabled Driver for I2C
 *
 * Copyright (c) 2011 Tatsunosuke Tobita, Wacom.
 * Copyright (c) 2011 - 2013 Tatsunosuke Tobita, Wacom.
 * <tobita.tatsunosuke@wacom.co.jp>
 *
 * This program is free software; you can redistribute it
@@ -27,7 +27,6 @@
#define WACOM_CMD_THROW0	0x05
#define WACOM_CMD_THROW1	0x00
#define WACOM_QUERY_SIZE	19
#define WACOM_RETRY_CNT		100

struct wacom_features {
	int x_max;
@@ -40,6 +39,8 @@ struct wacom_i2c {
	struct i2c_client *client;
	struct input_dev *input;
	u8 data[WACOM_QUERY_SIZE];
	bool prox;
	int tool;
};

static int wacom_query_device(struct i2c_client *client,
@@ -112,9 +113,14 @@ static irqreturn_t wacom_i2c_irq(int irq, void *dev_id)
	y = le16_to_cpup((__le16 *)&data[6]);
	pressure = le16_to_cpup((__le16 *)&data[8]);

	if (!wac_i2c->prox)
		wac_i2c->tool = (data[3] & 0x0c) ?
			BTN_TOOL_RUBBER : BTN_TOOL_PEN;

	wac_i2c->prox = data[3] & 0x20;

	input_report_key(input, BTN_TOUCH, tsw || ers);
	input_report_key(input, BTN_TOOL_PEN, tsw);
	input_report_key(input, BTN_TOOL_RUBBER, ers);
	input_report_key(input, wac_i2c->tool, wac_i2c->prox);
	input_report_key(input, BTN_STYLUS, f1);
	input_report_key(input, BTN_STYLUS2, f2);
	input_report_abs(input, ABS_X, x);