Re: [PATCH] hid: ntrig touch events

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

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03/10/10 10:04, Jiri Kosina wrote:
> On Wed, 10 Mar 2010, rafi@xxxxxxxxxxxxxx wrote:
> 
>> This reinstates the lost unpressing of BTN_TOUCH.  To prevent undesireably
>> touch toggles this also deals with tip switch events.
>>
>> Added a trap to prevent going out of bounds for hidinputs with empty reports.
>>
>> Clear bits of unused buttons which result in misidentification.
>>
>> Signed-off-by: Rafi Rubin <rafi@xxxxxxxxxxxxxx>
>> ---
>>  drivers/hid/hid-ntrig.c |   11 +++++++++++
>>  1 files changed, 11 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/hid/hid-ntrig.c b/drivers/hid/hid-ntrig.c
>> index 3234c72..edcc0c4 100644
>> --- a/drivers/hid/hid-ntrig.c
>> +++ b/drivers/hid/hid-ntrig.c
>> @@ -140,6 +140,9 @@ static int ntrig_event (struct hid_device *hid, struct hid_field *field,
>>  			nd->reading_mt = 1;
>>  			nd->first_contact_confidence = 0;
>>  			break;
>> +		case HID_DG_TIPSWITCH:
>> +			/* Prevent emission of touch until validated */
>> +			return 1;
>>  		case HID_DG_CONFIDENCE:
>>  			nd->confidence = value;
>>  			break;
>> @@ -259,6 +262,7 @@ static int ntrig_event (struct hid_device *hid, struct hid_field *field,
>>  						BTN_TOOL_TRIPLETAP, 0);
>>  				input_report_key(input,
>>  						BTN_TOOL_QUADTAP, 0);
>> +				input_report_key(input, BTN_TOUCH, 0);
>>  			}
>>  			break;
>>  
>> @@ -308,13 +312,20 @@ static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)
>>  
>>  
>>  	list_for_each_entry(hidinput, &hdev->inputs, list) {
>> +		if (hidinput->report->maxfield < 1)
>> +			continue;
>> +
>>  		input = hidinput->input;
>>  		switch (hidinput->report->field[0]->application) {
>>  		case HID_DG_PEN:
>>  			input->name = "N-Trig Pen";
>>  			break;
>>  		case HID_DG_TOUCHSCREEN:
>> +			/* These keys are redundant for fingers, clear them
>> +			 * to prevent incorrect identification */
>>  			__clear_bit(BTN_TOOL_PEN, input->keybit);
>> +			__clear_bit(BTN_TOOL_FINGER, input->keybit);
>> +			__clear_bit(BTN_0, input->keybit);
>>  			/*
>>  			 * A little something special to enable
>>  			 * two and three finger taps.
> 
> Thanks for the fix. I have altered changelog a little bit, and applied.

Is this patch likely to get promoted soon (days, weeks)?

Rafi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkuiitMACgkQwuRiAT9o608cYgCgv9Rj4eDXJYVuW8tGZUfQ+U8W
y0EAnjZj21Cdlj6dvHvdceOXQunnhqiX
=dibf
-----END PGP SIGNATURE-----
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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