Hi, thanks for the patch. Please align all your patch-subjects belonging to the driver to: "Input: wacom_i2c - ..." On 21-01-20 22:56, Alistair Francis wrote: > This is based on the out of tree rM2 driver. > > Signed-off-by: Alistair Francis <alistair@xxxxxxxxxxxxx> > --- > drivers/input/touchscreen/wacom_i2c.c | 25 +++++++++++++++++++++++-- > 1 file changed, 23 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/touchscreen/wacom_i2c.c b/drivers/input/touchscreen/wacom_i2c.c > index ec6e0aff8deb..5f0b80d52ad5 100644 > --- a/drivers/input/touchscreen/wacom_i2c.c > +++ b/drivers/input/touchscreen/wacom_i2c.c > @@ -22,12 +22,16 @@ > #define WACOM_CMD_QUERY3 0x02 > #define WACOM_CMD_THROW0 0x05 > #define WACOM_CMD_THROW1 0x00 > -#define WACOM_QUERY_SIZE 19 > +#define WACOM_QUERY_SIZE 22 > > struct wacom_features { > int x_max; > int y_max; > int pressure_max; > + int distance_max; > + int distance_physical_max; > + int tilt_x_max; > + int tilt_y_max; > char fw_version; > }; > > @@ -79,6 +83,10 @@ static int wacom_query_device(struct i2c_client *client, > features->y_max = get_unaligned_le16(&data[5]); > features->pressure_max = get_unaligned_le16(&data[11]); > features->fw_version = get_unaligned_le16(&data[13]); > + features->distance_max = data[15]; > + features->distance_physical_max = data[16]; > + features->tilt_x_max = get_unaligned_le16(&data[17]); > + features->tilt_y_max = get_unaligned_le16(&data[19]); > > dev_dbg(&client->dev, > "x_max:%d, y_max:%d, pressure:%d, fw:%d\n", > @@ -95,6 +103,7 @@ static irqreturn_t wacom_i2c_irq(int irq, void *dev_id) > u8 *data = wac_i2c->data; > unsigned int x, y, pressure; > unsigned char tsw, f1, f2, ers; > + short tilt_x, tilt_y, distance; > int error; > > error = i2c_master_recv(wac_i2c->client, > @@ -109,6 +118,11 @@ static irqreturn_t wacom_i2c_irq(int irq, void *dev_id) > x = le16_to_cpup((__le16 *)&data[4]); > y = le16_to_cpup((__le16 *)&data[6]); > pressure = le16_to_cpup((__le16 *)&data[8]); > + distance = data[10]; > + > + /* Signed */ > + tilt_x = le16_to_cpup((__le16 *)&data[11]); > + tilt_y = le16_to_cpup((__le16 *)&data[13]); > > if (!wac_i2c->prox) > wac_i2c->tool = (data[3] & 0x0c) ? > @@ -123,6 +137,9 @@ static irqreturn_t wacom_i2c_irq(int irq, void *dev_id) > input_report_abs(input, ABS_X, x); > input_report_abs(input, ABS_Y, y); > input_report_abs(input, ABS_PRESSURE, pressure); > + input_report_abs(input, ABS_DISTANCE, distance); > + input_report_abs(input, ABS_TILT_X, tilt_x); > + input_report_abs(input, ABS_TILT_Y, tilt_y); > input_sync(input); > > out: > @@ -195,7 +212,11 @@ static int wacom_i2c_probe(struct i2c_client *client, > input_set_abs_params(input, ABS_Y, 0, features.y_max, 0, 0); > input_set_abs_params(input, ABS_PRESSURE, > 0, features.pressure_max, 0, 0); > - > + input_set_abs_params(input, ABS_DISTANCE, 0, features.distance_max, 0, 0); > + input_set_abs_params(input, ABS_TILT_X, -features.tilt_x_max, > + features.tilt_x_max, 0, 0); > + input_set_abs_params(input, ABS_TILT_Y, -features.tilt_y_max, > + features.tilt_y_max, 0, 0); > input_set_drvdata(input, wac_i2c); > > error = request_threaded_irq(client->irq, NULL, wacom_i2c_irq, > -- > 2.29.2 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |