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

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

 



30.08.2018 23:03, Bastien Nocera wrote:
> On Thu, 2018-08-30 at 22:46 +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 upper left of
>> the screen.
> 
> But 0,0 is what's supposed to be at the top-left. Did you mean bottom-
> left?

Oh, my bad. To be exact, we have started with this solution:

xinput set-prop "pointer:Goodix Capacitive TouchScreen" "Evdev Axis Inversion" 1 0

then found an existing quirk for 180 degrees rotated screen and adapted it
for only x coordinate inverted.

So it should be top-right, correct?
 
> Also a couple of nits.

Thank you. I must be precise.
 
>>
>> 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>
>> ---
>>  drivers/input/touchscreen/goodix.c | 24 ++++++++++++++++++++++++
>>  1 file changed, 24 insertions(+)
>>
>> diff --git a/drivers/input/touchscreen/goodix.c
>> b/drivers/input/touchscreen/goodix.c
>> index f2d9c2c41885..00b6eb09cee3 100644
>> --- a/drivers/input/touchscreen/goodix.c
>> +++ b/drivers/input/touchscreen/goodix.c
>> @@ -145,6 +145,24 @@ static const struct dmi_system_id
>> rotated_screen[] = {
>>  	{}
>>  };
>>  
>> +
> 
> Extra linefeed here.
> 
>> +/*
>> + * 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
>> +	{}
>> +};
>> +
>> +
> 
> And here.
> 
>>  /**
>>   * goodix_i2c_read - read data from a register of the i2c slave
>> device.
>>   *
>> @@ -709,6 +727,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