From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Kamal Mostafa <kamal@canonical.com>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
Henrik Rydberg <rydberg@euromail.se>,
Dudley Du <dudl@cypress.com>,
Kyle Fazzari <git@status.e4ward.com>
Subject: Re: [PATCH] Input: fix Cypress PS/2 Trackpad in Dell XPS12
Date: Thu, 21 Feb 2013 11:56:30 -0800 [thread overview]
Message-ID: <20130221195630.GA20344@core.coreip.homeip.net> (raw)
In-Reply-To: <1361472955-16759-1-git-send-email-kamal@canonical.com>
On Thu, Feb 21, 2013 at 10:55:55AM -0800, Kamal Mostafa wrote:
> Avoid firmware glitch in Cypress PS/2 Trackpad firmware version 11
> (as observed in Dell XPS12) which prevents driver from recognizing
> the trackpad.
>
> BugLink: http://launchpad.net/bugs/1103594
>
> Signed-off-by: Kamal Mostafa <kamal@canonical.com>
> Cc: Dudley Du <dudl@cypress.com>
> ---
> drivers/input/mouse/cypress_ps2.c | 19 +++++++++++++------
> 1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/input/mouse/cypress_ps2.c b/drivers/input/mouse/cypress_ps2.c
> index 1673dc6..f51765f 100644
> --- a/drivers/input/mouse/cypress_ps2.c
> +++ b/drivers/input/mouse/cypress_ps2.c
> @@ -236,6 +236,13 @@ static int cypress_read_fw_version(struct psmouse *psmouse)
> cytp->fw_version = param[2] & FW_VERSION_MASX;
> cytp->tp_metrics_supported = (param[2] & TP_METRICS_MASK) ? 1 : 0;
>
> + /*
> + * Trackpad fw_version 11 (in Dell XPS12) yields a bogus response to
> + * CYTP_CMD_READ_TP_METRICS so do not try to use it. LP: #1103594.
> + */
> + if (cytp->fw_version >= 11)
> + cytp->tp_metrics_supported = 0;
> +
Isn't this the only chunk that is actually needed to fix the issue?
Thanks.
> psmouse_dbg(psmouse, "cytp->fw_version = %d\n", cytp->fw_version);
> psmouse_dbg(psmouse, "cytp->tp_metrics_supported = %d\n",
> cytp->tp_metrics_supported);
> @@ -258,6 +265,9 @@ static int cypress_read_tp_metrics(struct psmouse *psmouse)
> cytp->tp_res_x = cytp->tp_max_abs_x / cytp->tp_width;
> cytp->tp_res_y = cytp->tp_max_abs_y / cytp->tp_high;
>
> + if (!cytp->tp_metrics_supported)
> + return 0;
> +
> memset(param, 0, sizeof(param));
> if (cypress_send_ext_cmd(psmouse, CYTP_CMD_READ_TP_METRICS, param) == 0) {
> /* Update trackpad parameters. */
> @@ -315,18 +325,15 @@ static int cypress_read_tp_metrics(struct psmouse *psmouse)
>
> static int cypress_query_hardware(struct psmouse *psmouse)
> {
> - struct cytp_data *cytp = psmouse->private;
> int ret;
>
> ret = cypress_read_fw_version(psmouse);
> if (ret)
> return ret;
>
> - if (cytp->tp_metrics_supported) {
> - ret = cypress_read_tp_metrics(psmouse);
> - if (ret)
> - return ret;
> - }
> + ret = cypress_read_tp_metrics(psmouse);
> + if (ret)
> + return ret;
>
> return 0;
> }
> --
> 1.7.10.4
>
--
Dmitry
next prev parent reply other threads:[~2013-02-21 19:56 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-21 18:55 [PATCH] Input: fix Cypress PS/2 Trackpad in Dell XPS12 Kamal Mostafa
2013-02-21 19:56 ` Dmitry Torokhov [this message]
2013-02-21 20:02 ` Kamal Mostafa
2013-02-21 21:09 ` Dmitry Torokhov
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=20130221195630.GA20344@core.coreip.homeip.net \
--to=dmitry.torokhov@gmail.com \
--cc=dudl@cypress.com \
--cc=git@status.e4ward.com \
--cc=kamal@canonical.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rydberg@euromail.se \
/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.