From: "Pali Rohár" <pali.rohar@gmail.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Masaki Ota <masaki.ota@jp.alps.com>,
linux-input@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: Regression since commit 92bac83
Date: Wed, 21 Oct 2015 10:19:36 +0200 [thread overview]
Message-ID: <20151021081936.GB15219@pali> (raw)
In-Reply-To: <562627D9.6020109@redhat.com>
On Tuesday 20 October 2015 13:39:05 Hans de Goede wrote:
> From 5d21a8004260c3e6287bde81c2a9e8f80144e77c Mon Sep 17 00:00:00 2001
> From: Hans de Goede <hdegoede@redhat.com>
> Date: Tue, 20 Oct 2015 11:12:07 +0200
> Subject: [PATCH] alps: Only the Dell Latitude D420/430/620/630 have separate
> stick button bits
>
> commit 92bac83dd79e ("Input: alps - non interleaved V2 dualpoint has
> separate stick button bits") assumes that all alps v2 non-interleaved
> dual point setups have the separate stick button bits.
>
> Later we limited this to Dell laptops only because of reports that this
> broke things on non Dell laptops. Now it turns out that this breaks things
> on the Dell Latitude D600 too. So it seems that only the Dell Latitude
> D420/430/620/630, which all share the same touchpad / stick combo,
> have these separate bits.
>
> This patch limits the checking of the separate bits to only these models
> fixing regressions with other models.
>
> Reported-and-tested-by: Larry Finger <Larry.Finger@lwfinger.net>
> Cc: stable@vger.kernel.org
> Tested-by: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> drivers/input/mouse/alps.c | 48 ++++++++++++++++++++++++++++++++++++++++------
> 1 file changed, 42 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 4d24686..41e6cb5 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -100,7 +100,7 @@ static const struct alps_nibble_commands alps_v6_nibble_commands[] = {
> #define ALPS_FOUR_BUTTONS 0x40 /* 4 direction button present */
> #define ALPS_PS2_INTERLEAVED 0x80 /* 3-byte PS/2 packet interleaved with
> 6-byte ALPS packet */
> -#define ALPS_DELL 0x100 /* device is a Dell laptop */
> +#define ALPS_STICK_BITS 0x100 /* separate stick button bits */
> #define ALPS_BUTTONPAD 0x200 /* device is a clickpad */
>
> static const struct alps_model_info alps_model_data[] = {
> @@ -159,6 +159,43 @@ static const struct alps_protocol_info alps_v8_protocol_data = {
> ALPS_PROTO_V8, 0x18, 0x18, 0
> };
>
> +/*
> + * Some v2 models report the stick buttons in separate bits
> + */
> +static const struct dmi_system_id alps_dmi_has_separate_stick_buttons[] = {
> +#if defined(CONFIG_DMI) && defined(CONFIG_X86)
> + {
> + /* Extrapolated from other entries */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D420"),
> + },
> + },
> + {
> + /* Reported-by: Hans de Bruin <jmdebruin@xmsnet.nl> */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D430"),
> + },
> + },
> + {
> + /* Reported-by: Hans de Goede <hdegoede@redhat.com> */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D620"),
> + },
> + },
> + {
> + /* Extrapolated from other entries */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D630"),
> + },
> + },
> +#endif
> + { }
> +};
> +
Hi! Are you sure that above machines do not have variants without
ALPS_DUALPOINT or without ALPS_PASS? Because if yes, then we could see
another break.
> static void alps_set_abs_params_st(struct alps_data *priv,
> struct input_dev *dev1);
> static void alps_set_abs_params_semi_mt(struct alps_data *priv,
> @@ -253,9 +290,8 @@ static void alps_process_packet_v1_v2(struct psmouse *psmouse)
> return;
> }
>
> - /* Dell non interleaved V2 dualpoint has separate stick button bits */
> - if (priv->proto_version == ALPS_PROTO_V2 &&
> - priv->flags == (ALPS_DELL | ALPS_PASS | ALPS_DUALPOINT)) {
> + /* Some models have separate stick button bits */
> + if (priv->flags & ALPS_STICK_BITS) {
Previous code checked at this place if device has also flags ALPS_PASS
and ALPS_DUALPOINT. Now ALPS_STICK_BITS is defined only if ALPS_PROTO_V2
and DMI has specific Dell machine.
> left |= packet[0] & 1;
> right |= packet[0] & 2;
> middle |= packet[0] & 4;
> @@ -2552,8 +2588,6 @@ static int alps_set_protocol(struct psmouse *psmouse,
> priv->byte0 = protocol->byte0;
> priv->mask0 = protocol->mask0;
> priv->flags = protocol->flags;
> - if (dmi_name_in_vendors("Dell"))
> - priv->flags |= ALPS_DELL;
>
> priv->x_max = 2000;
> priv->y_max = 1400;
> @@ -2568,6 +2602,8 @@ static int alps_set_protocol(struct psmouse *psmouse,
> priv->set_abs_params = alps_set_abs_params_st;
> priv->x_max = 1023;
> priv->y_max = 767;
> + if (dmi_check_system(alps_dmi_has_separate_stick_buttons))
> + priv->flags |= ALPS_STICK_BITS;
> break;
>
> case ALPS_PROTO_V3:
--
Pali Rohár
pali.rohar@gmail.com
--
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
next prev parent reply other threads:[~2015-10-21 8:19 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-18 23:59 Regression since commit 92bac83 Larry Finger
2015-10-19 8:08 ` Hans de Goede
2015-10-19 15:55 ` Larry Finger
2015-10-19 16:51 ` Dmitry Torokhov
2015-10-19 17:21 ` Hans de Goede
2015-10-20 7:22 ` Pali Rohár
2015-10-20 11:39 ` Hans de Goede
2015-10-20 17:33 ` Larry Finger
2015-10-21 8:19 ` Pali Rohár [this message]
2015-10-21 8:30 ` Hans de Goede
2015-10-21 8:37 ` Pali Rohár
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=20151021081936.GB15219@pali \
--to=pali.rohar@gmail.com \
--cc=Larry.Finger@lwfinger.net \
--cc=dmitry.torokhov@gmail.com \
--cc=hdegoede@redhat.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masaki.ota@jp.alps.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).