linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gerecke <killertofu@gmail.com>
To: Ping Cheng <pinglinux@gmail.com>,
	benjamin.tissoires@gmail.com, jkosina@suse.cz
Cc: linux-input@vger.kernel.org, Ping Cheng <pingc@wacom.com>
Subject: Re: [PATCH 1/3] HID: wacom: remove hardcoded WACOM_QUIRK_MULTI_INPUT
Date: Wed, 01 Apr 2015 11:59:27 -0700	[thread overview]
Message-ID: <551C400F.8010907@gmail.com> (raw)
In-Reply-To: <1426888620-8643-1-git-send-email-pingc@wacom.com>

On 3/20/2015 2:57 PM, Ping Cheng wrote:
> The quirk was added for devices that support both pen and touch.
> It decides if a device supports multiple inputs by hardcoded
> feature type. However, for some devices, we do not know if they
> support both before accessing their HID descriptors.
>
> This patch relies on dynamically assigned device_type to make
> the decision. Also, we make it certain that wacom_wac->shared
> is always created. That is, the driver will not be loaded if
> it fails to create wacom_wac->shared.
>
> Signed-off-by: Ping Cheng <pingc@wacom.com>

Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>

---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one /
(That is to say, eight) to the two, /
But you can’t take seven from three, /
So you look at the sixty-fours....

> ---
>   drivers/hid/wacom_sys.c | 24 +++++++++++-------------
>   drivers/hid/wacom_wac.c | 18 ++++--------------
>   drivers/hid/wacom_wac.h |  9 ++++-----
>   3 files changed, 19 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
> index f0568a7..a99e66f 100644
> --- a/drivers/hid/wacom_sys.c
> +++ b/drivers/hid/wacom_sys.c
> @@ -1462,19 +1462,17 @@ static int wacom_probe(struct hid_device *hdev,
>   	snprintf(wacom_wac->pad_name, sizeof(wacom_wac->pad_name),
>   		"%s Pad", features->name);
>
> -	if (features->quirks & WACOM_QUIRK_MULTI_INPUT) {
> -		/* Append the device type to the name */
> -		if (features->device_type != BTN_TOOL_FINGER)
> -			strlcat(wacom_wac->name, " Pen", WACOM_NAME_MAX);
> -		else if (features->touch_max)
> -			strlcat(wacom_wac->name, " Finger", WACOM_NAME_MAX);
> -		else
> -			strlcat(wacom_wac->name, " Pad", WACOM_NAME_MAX);
> -
> -		error = wacom_add_shared_data(hdev);
> -		if (error)
> -			goto fail_shared_data;
> -	}
> +	/* Append the device type to the name */
> +	if (features->device_type != BTN_TOOL_FINGER)
> +		strlcat(wacom_wac->name, " Pen", WACOM_NAME_MAX);
> +	else if (features->touch_max)
> +		strlcat(wacom_wac->name, " Finger", WACOM_NAME_MAX);
> +	else
> +		strlcat(wacom_wac->name, " Pad", WACOM_NAME_MAX);
> +
> +	error = wacom_add_shared_data(hdev);
> +	if (error)
> +		goto fail_shared_data;
>
>   	if (!(features->quirks & WACOM_QUIRK_MONITOR) &&
>   	     (features->quirks & WACOM_QUIRK_BATTERY)) {
> diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
> index bbe32d6..3b01dc9 100644
> --- a/drivers/hid/wacom_wac.c
> +++ b/drivers/hid/wacom_wac.c
> @@ -551,12 +551,9 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
>   	   (features->type == CINTIQ && !(data[1] & 0x40)))
>   		return 1;
>
> -	if (wacom->shared) {
> -		wacom->shared->stylus_in_proximity = true;
> -
> -		if (wacom->shared->touch_down)
> -			return 1;
> -	}
> +	wacom->shared->stylus_in_proximity = true;
> +	if (wacom->shared->touch_down)
> +		return 1;
>
>   	/* in Range while exiting */
>   	if (((data[1] & 0xfe) == 0x20) && wacom->reporting_data) {
> @@ -568,8 +565,7 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
>
>   	/* Exit report */
>   	if ((data[1] & 0xfe) == 0x80) {
> -		if (features->quirks & WACOM_QUIRK_MULTI_INPUT)
> -			wacom->shared->stylus_in_proximity = false;
> +		wacom->shared->stylus_in_proximity = false;
>   		wacom->reporting_data = false;
>
>   		/* don't report exit if we don't know the ID */
> @@ -2054,12 +2050,6 @@ void wacom_setup_device_quirks(struct wacom_features *features)
>   		features->y_max = 1023;
>   	}
>
> -	/* these device have multiple inputs */
> -	if (features->type >= WIRELESS ||
> -	    (features->type >= INTUOS5S && features->type <= INTUOSHT) ||
> -	    (features->oVid && features->oPid))
> -		features->quirks |= WACOM_QUIRK_MULTI_INPUT;
> -
>   	/* quirk for bamboo touch with 2 low res touches */
>   	if (features->type == BAMBOO_PT &&
>   	    features->pktlen == WACOM_PKGLEN_BBTOUCH) {
> diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h
> index 021ee1c..309f219 100644
> --- a/drivers/hid/wacom_wac.h
> +++ b/drivers/hid/wacom_wac.h
> @@ -69,11 +69,10 @@
>   #define WACOM_REPORT_USB		192
>
>   /* device quirks */
> -#define WACOM_QUIRK_MULTI_INPUT		0x0001
> -#define WACOM_QUIRK_BBTOUCH_LOWRES	0x0002
> -#define WACOM_QUIRK_NO_INPUT		0x0004
> -#define WACOM_QUIRK_MONITOR		0x0008
> -#define WACOM_QUIRK_BATTERY		0x0010
> +#define WACOM_QUIRK_BBTOUCH_LOWRES	0x0001
> +#define WACOM_QUIRK_NO_INPUT		0x0002
> +#define WACOM_QUIRK_MONITOR		0x0004
> +#define WACOM_QUIRK_BATTERY		0x0008
>
>   #define WACOM_PEN_FIELD(f)	(((f)->logical == HID_DG_STYLUS) || \
>   				 ((f)->physical == HID_DG_STYLUS) || \
>
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

      reply	other threads:[~2015-04-01 18:59 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-20 21:57 [PATCH 1/3] HID: wacom: remove hardcoded WACOM_QUIRK_MULTI_INPUT Ping Cheng
2015-04-01 18:59 ` Jason Gerecke [this message]

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=551C400F.8010907@gmail.com \
    --to=killertofu@gmail.com \
    --cc=benjamin.tissoires@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    --cc=pingc@wacom.com \
    --cc=pinglinux@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).