Re: [PATCH v2] Input: goodix: fix touch coordinates on Cube I15-TC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2018-08-31 at 15:44 +1000, Sergei A. Trusov wrote:
> The touchscreen on the Cube I15-TC don't match the default display,
> with 0,0 touches being reported when touching at the top-right of
> the screen.
> 
> Add a quirk to invert the x coordinate.
> 
> Reported-and-tested-by: Arkadiy <arkan49@xxxxxxxxx>
> Cc: Hans de Goede <hdegoede@xxxxxxxxxx>
> Signed-off-by: Sergei A. Trusov <sergei.a.trusov@xxxxx>

Some patch queue draining/grave digging. Sorry for taking so long to
get back to you.


If that still applies, please add my:

Reviewed-by: Bastien Nocera <hadess@xxxxxxxxxx>

> ---
> 
> Changes in v2:
>  - Commit message fix
>  - Removed extra linefeeds
> 
>  drivers/input/touchscreen/goodix.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/drivers/input/touchscreen/goodix.c
> b/drivers/input/touchscreen/goodix.c
> index f2d9c2c41885..27adf216f230 100644
> --- a/drivers/input/touchscreen/goodix.c
> +++ b/drivers/input/touchscreen/goodix.c
> @@ -145,6 +145,22 @@ static const struct dmi_system_id
> rotated_screen[] = {
>  	{}
>  };
>  
> +/*
> + * Those tablets have their x coordinate inverted
> + */
> +static const struct dmi_system_id inverted_x_screen[] = {
> +#if defined(CONFIG_DMI) && defined(CONFIG_X86)
> +	{
> +		.ident = "Cube I15-TC",
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "Cube"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "I15-TC")
> +		},
> +	},
> +#endif
> +	{}
> +};
> +
>  /**
>   * goodix_i2c_read - read data from a register of the i2c slave
> device.
>   *
> @@ -709,6 +725,12 @@ static int goodix_configure_dev(struct
> goodix_ts_data *ts)
>  			"Applying '180 degrees rotated screen'
> quirk\n");
>  	}
>  
> +	if (dmi_check_system(inverted_x_screen)) {
> +		ts->prop.invert_x = true;
> +		dev_dbg(&ts->client->dev,
> +			"Applying 'inverted x screen' quirk\n");
> +	}
> +
>  	error = input_mt_init_slots(ts->input_dev, ts->max_touch_num,
>  				    INPUT_MT_DIRECT |
> INPUT_MT_DROP_UNUSED);
>  	if (error) {




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux