All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Henrik Rydberg" <rydberg@euromail.se>
To: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Jiri Kosina <jkosina@suse.cz>, Stephane Chatty <chatty@enac.fr>,
	linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 25/25] HID: multitouch: make MT_CLS_ALWAYS_TRUE the new default class
Date: Mon, 28 Jan 2013 16:13:57 +0100	[thread overview]
Message-ID: <20130128151357.GA3476@polaris.bitmath.org> (raw)
In-Reply-To: <1359120190-18281-26-git-send-email-benjamin.tissoires@gmail.com>

Hi Benjamin,

> By running a test on all the traces of the devices I have,
> I noticed that the class MT_CLS_ALWAYS_TRUE could handle all
> the devices I've seen so far without any other quirks.
> I guess this is the behavior Win 7 requires in its driver.
> 
> We can change the default class then and keep the existing classes
> for backward compatibility and performances for some of them.

Nice observation. A simpler route is to add new devices according the
new scheme, and leave the current code intact. Don't fix what ain't
broken.

> 
> Two operations have been done:
>  - replaced MT_CLS_DEFAULT by MT_CLS_NSMU
>  - then replaced MT_CLS_ALWAYS_TRUE by MT_CLS_DEFAULT
> 
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
> ---
>  drivers/hid/hid-multitouch.c | 53 ++++++++++++++++++++++----------------------
>  1 file changed, 27 insertions(+), 26 deletions(-)
> 
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index e3f0bf7..25b1d2c 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -117,7 +117,7 @@ struct mt_device {
>  #define MT_CLS_DUAL_INRANGE_CONTACTID		0x0006
>  #define MT_CLS_DUAL_INRANGE_CONTACTNUMBER	0x0007
>  #define MT_CLS_INRANGE_CONTACTNUMBER		0x0009
> -#define MT_CLS_ALWAYS_TRUE			0x000a
> +#define MT_CLS_NSMU				0x000a
>  #define MT_CLS_CONTACT_ID			0x0011
>  #define MT_CLS_MINUS_ONE			0x0012
>  #define MT_CLS_DUAL_CONTACT_ID			0x0013
> @@ -155,6 +155,9 @@ static int cypress_compute_slot(struct mt_device *td)
>  
>  static struct mt_class mt_classes[] = {
>  	{ .name = MT_CLS_DEFAULT,
> +		.quirks = MT_QUIRK_ALWAYS_VALID |
> +			MT_QUIRK_CONTACT_CNT_ACCURATE },
> +	{ .name = MT_CLS_NSMU,
>  		.quirks = MT_QUIRK_NOT_SEEN_MEANS_UP },
>  	{ .name = MT_CLS_SERIAL,
>  		.quirks = MT_QUIRK_ALWAYS_VALID},
> @@ -177,9 +180,7 @@ static struct mt_class mt_classes[] = {
>  	{ .name = MT_CLS_INRANGE_CONTACTNUMBER,
>  		.quirks = MT_QUIRK_VALID_IS_INRANGE |
>  			MT_QUIRK_SLOT_IS_CONTACTNUMBER },
> -	{ .name = MT_CLS_ALWAYS_TRUE,
> -		.quirks = MT_QUIRK_ALWAYS_VALID |
> -			MT_QUIRK_CONTACT_CNT_ACCURATE },
> +
>  	{ .name = MT_CLS_CONTACT_ID,
>  		.quirks = MT_QUIRK_ALWAYS_VALID |
>  			MT_QUIRK_CONTACT_CNT_ACCURATE |
> @@ -963,7 +964,7 @@ static const struct hid_device_id mt_devices[] = {
>  			USB_DEVICE_ID_ATMEL_MXT_DIGITIZER) },
>  
>  	/* Baanto multitouch devices */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_BAANTO,
>  			USB_DEVICE_ID_BAANTO_MT_190W2) },
>  	/* Cando panels */
> @@ -981,12 +982,12 @@ static const struct hid_device_id mt_devices[] = {
>  			USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6) },
>  
>  	/* Chunghwa Telecom touch panels */
> -	{  .driver_data = MT_CLS_DEFAULT,
> +	{  .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_CHUNGHWAT,
>  			USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH) },
>  
>  	/* CVTouch panels */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_CVTOUCH,
>  			USB_DEVICE_ID_CVTOUCH_SCREEN) },
>  
> @@ -1075,12 +1076,12 @@ static const struct hid_device_id mt_devices[] = {
>  			USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PWT_TENFINGERS) },
>  
>  	/* Gametel game controller */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_BT_DEVICE(USB_VENDOR_ID_FRUCTEL,
>  			USB_DEVICE_ID_GAMETEL_MT_MODE) },
>  
>  	/* GoodTouch panels */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_GOODTOUCH,
>  			USB_DEVICE_ID_GOODTOUCH_000f) },
>  
> @@ -1098,7 +1099,7 @@ static const struct hid_device_id mt_devices[] = {
>  			USB_DEVICE_ID_IDEACOM_IDC6651) },
>  
>  	/* Ilitek dual touch panel */
> -	{  .driver_data = MT_CLS_DEFAULT,
> +	{  .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
>  			USB_DEVICE_ID_ILITEK_MULTITOUCH) },
>  
> @@ -1145,7 +1146,7 @@ static const struct hid_device_id mt_devices[] = {
>  			USB_DEVICE_ID_PANABOARD_UBT880) },
>  
>  	/* Novatek Panel */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_NOVATEK,
>  			USB_DEVICE_ID_NOVATEK_PCT) },
>  
> @@ -1185,13 +1186,13 @@ static const struct hid_device_id mt_devices[] = {
>  			USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008) },
>  
>  	/* Stantum panels */
> -	{ .driver_data = MT_CLS_ALWAYS_TRUE,
> +	{ .driver_data = MT_CLS_DEFAULT,
>  		MT_USB_DEVICE(USB_VENDOR_ID_STANTUM,
>  			USB_DEVICE_ID_MTP)},
>  	{ .driver_data = MT_CLS_CONFIDENCE,
>  		MT_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM,
>  			USB_DEVICE_ID_MTP_STM)},
> -	{ .driver_data = MT_CLS_ALWAYS_TRUE,
> +	{ .driver_data = MT_CLS_DEFAULT,
>  		MT_USB_DEVICE(USB_VENDOR_ID_STANTUM_SITRONIX,
>  			USB_DEVICE_ID_MTP_SITRONIX)},
>  
> @@ -1201,48 +1202,48 @@ static const struct hid_device_id mt_devices[] = {
>  			USB_DEVICE_ID_TOPSEED2_PERIPAD_701) },
>  
>  	/* Touch International panels */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_TOUCH_INTL,
>  			USB_DEVICE_ID_TOUCH_INTL_MULTI_TOUCH) },
>  
>  	/* Unitec panels */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_UNITEC,
>  			USB_DEVICE_ID_UNITEC_USB_TOUCH_0709) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_UNITEC,
>  			USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19) },
>  	/* XAT */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XAT,
>  			USB_DEVICE_ID_XAT_CSR) },
>  
>  	/* Xiroku */
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_SPX) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_MPX) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_CSR) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_SPX1) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_MPX1) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_CSR1) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_SPX2) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_MPX2) },
> -	{ .driver_data = MT_CLS_DEFAULT,
> +	{ .driver_data = MT_CLS_NSMU,
>  		MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
>  			USB_DEVICE_ID_XIROKU_CSR2) },
>  
> -- 
> 1.8.1
> 

Thanks,
Henrik

  reply	other threads:[~2013-01-28 15:08 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-25 13:22 [PATCH 00/25] Support of Nexio 42" and new default class for hid-multitouch Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 01/25] HID: break out hid_extract_field Benjamin Tissoires
2013-01-28 15:04   ` Henrik Rydberg
2013-01-25 13:22 ` [PATCH 02/25] HID: multitouch: add support for Nexio 42" panel Benjamin Tissoires
2013-01-28 15:01   ` Henrik Rydberg
2013-01-28 16:08     ` Benjamin Tissoires
2013-01-28 16:56     ` Stéphane Chatty
2013-01-28 16:56       ` Stéphane Chatty
2013-01-28 17:50       ` Benjamin Tissoires
2013-01-28 17:50         ` Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 03/25] HID: multitouch: fix Win8 protocol for Sharp like devices Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 04/25] HID: multitouch: ensure that serial devices make no use of contact count Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 05/25] HID: multitouch: fix protocol for Sitronix 1403:5001 Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 06/25] HID: multitouch: optimize FlatFrog panels Benjamin Tissoires
2013-01-28 15:10   ` Henrik Rydberg
2013-01-28 16:01     ` Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 07/25] HID: multitouch: optimize 3M panels Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 08/25] HID: multitouch: optimize Cypress panels Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 09/25] HID: multitouch: optimize eGalax panels Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 10/25] HID: multitouch: optimize Stantum panels Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 11/25] HID: multitouch: optimize Quanta panels Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 12/25] HID: multitouch: optimize Lumio panels Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 13/25] HID: multitouch: optimize MosArt panels Benjamin Tissoires
2013-01-25 13:22 ` [PATCH 14/25] HID: multitouch: optimize Elo panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 15/25] HID: multitouch: optimize Hanvon panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 16/25] HID: multitouch: optimize IRTouch panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 17/25] HID: multitouch: fix protocol for Cando 2087:0a02 Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 18/25] HID: multitouch: optimize Cando panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 19/25] HID: multitouch: optimize ActionStar panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 20/25] HID: multitouch: optimize Atmel panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 21/25] HID: multitouch: optimize Ideacom panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 22/25] HID: multitouch: optimize LG panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 23/25] HID: multitouch: optimize Nexio panels Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 24/25] HID: multitouch: remove useless DUAL_NSMU_CONTACTID class Benjamin Tissoires
2013-01-25 13:23 ` [PATCH 25/25] HID: multitouch: make MT_CLS_ALWAYS_TRUE the new default class Benjamin Tissoires
2013-01-28 15:13   ` Henrik Rydberg [this message]
2013-01-28 15:54     ` Benjamin Tissoires
2013-01-28 15:23 ` [PATCH 00/25] Support of Nexio 42" and new default class for hid-multitouch Henrik Rydberg
2013-01-28 16:15   ` Benjamin Tissoires

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130128151357.GA3476@polaris.bitmath.org \
    --to=rydberg@euromail.se \
    --cc=benjamin.tissoires@gmail.com \
    --cc=chatty@enac.fr \
    --cc=dmitry.torokhov@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.