From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: Tommy Will <tommywill2011@gmail.com>,
Hans de Goede <hdegoede@redhat.com>,
Yunkang Tang <yunkang.tang@cn.alps.com>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] input: alps: Reset mouse before identifying it
Date: Wed, 15 Oct 2014 11:22:56 -0700 [thread overview]
Message-ID: <20141015182256.GE8625@dtor-ws> (raw)
In-Reply-To: <201410152010.39507@pali>
On Wed, Oct 15, 2014 at 08:10:39PM +0200, Pali Rohár wrote:
> On Wednesday 15 October 2014 20:00:11 Dmitry Torokhov wrote:
> > On Wed, Oct 15, 2014 at 07:57:37PM +0200, Pali Rohár wrote:
> > > On Wednesday 15 October 2014 19:43:15 Dmitry Torokhov wrote:
> > > > On Wed, Oct 15, 2014 at 02:53:11PM +0200, Pali Rohár wrote:
> > > > > On Tuesday 14 October 2014 08:08:34 Dmitry Torokhov
> wrote:
> > > > > > On Fri, Oct 03, 2014 at 11:47:59AM +0200, Hans de
> > > > > > Goede
> > >
> > > wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > Thanks for working on this!
> > > > > > >
> > > > > > > On 10/03/2014 11:43 AM, Pali Rohár wrote:
> > > > > > > > On some systems after starting computer function
> > > > > > > > alps_identify() does not detect dual ALPS
> > > > > > > > touchpad+trackstick device correctly and detect
> > > > > > > > only touchpad.
> > > > > > > >
> > > > > > > > Resetting ALPS device before identifiying it
> > > > > > > > fixing this problem and both parts touchpad and
> > > > > > > > trackstick are detected.
> > > > > > > >
> > > > > > > > Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> > > > > > > > Tested-by: Pali Rohár <pali.rohar@gmail.com>
> > > > > > >
> > > > > > > Looks good and seems sensible:
> > > > > > >
> > > > > > > Acked-by: Hans de Goede <hdegoede@redhat.com>
> > > > > >
> > > > > > *sigh* I am not really happy about this, as we making
> > > > > > boot longer and longer for people without ALPS
> > > > > > touchpads. It would be better if we only reset the
> > > > > > mouse when we knew we are dealing with ALPS, and even
> > > > > > better if we only reset it when we suspected that we
> > > > > > missed trackstick. Any chance of doing this?
> > > > > >
> > > > > > Thanks.
> > > > >
> > > > > Dmitry, problem is that function check which detecting
> > > > > trackstick does not working when I start my laptop from
> > > > > power-off state and do not reset PS/2 device. But
> > > > > detecting ALPS touchpad looks like working. So if do
> > > > > not like this idea, what about doing something like
> > > > > this in alps_dectect function?
> > > > >
> > > > > int alps_detect(...)
> > > > > {
> > > > > ...
> > > > > /* detect if device is ALPS */
> > > > > if (alps_identify(...) < 0)
> > > > > return -1;
> > > > > /* now we know that device is ALPS */
> > > > > if (!(flags & ALPS_DUALPOINT)) {
> > > > > /* reset it and identify again, maybe there is
> > > > > trackstick */ psmouse_reset(...);
> > > > > alps_identify(...);
> > > > > }
> > > > > ...
> > > > > }
> > > > >
> > > > > It will does not affect non ALPS devices (because first
> > > > > identify call will fail), but will affect ALPS devices
> > > > > without trackstick (because identify will be called
> > > > > twice and reset too).
> > > >
> > > > I think this is a step in right direction. Do you know
> > > > what exactly fails in alps_identify() on your box if you
> > > > do not call psmouse_reset?
> > > >
> > > > Thanks.
> > >
> > > Yes, I know. It is failing in alps_probe_trackstick_v3(). It
> > > calls alps_command_mode_read_reg(...) and it returns 0 which
> > > means trackstick is not there.
> >
> > OK, so can we try sticking psmouse_reset() there? This will
> > limit the exposure of the new delay.
> >
> > Thanks.
>
> Sorry, but I think this is not safe. Function psmouse_reset will
> reset device (set it to relative mode, etc...) and before and
> after alps_probe_trackstick_v3() are called other functions. So
> it could break something else.
We might need to repeat bits of alps_identify() after resetting the
mouse, you are right. It should still be doable though.
--
Dmitry
--
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
WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: Tommy Will <tommywill2011@gmail.com>,
Hans de Goede <hdegoede@redhat.com>,
Yunkang Tang <yunkang.tang@cn.alps.com>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] input: alps: Reset mouse before identifying it
Date: Wed, 15 Oct 2014 11:22:56 -0700 [thread overview]
Message-ID: <20141015182256.GE8625@dtor-ws> (raw)
In-Reply-To: <201410152010.39507@pali>
On Wed, Oct 15, 2014 at 08:10:39PM +0200, Pali Rohár wrote:
> On Wednesday 15 October 2014 20:00:11 Dmitry Torokhov wrote:
> > On Wed, Oct 15, 2014 at 07:57:37PM +0200, Pali Rohár wrote:
> > > On Wednesday 15 October 2014 19:43:15 Dmitry Torokhov wrote:
> > > > On Wed, Oct 15, 2014 at 02:53:11PM +0200, Pali Rohár wrote:
> > > > > On Tuesday 14 October 2014 08:08:34 Dmitry Torokhov
> wrote:
> > > > > > On Fri, Oct 03, 2014 at 11:47:59AM +0200, Hans de
> > > > > > Goede
> > >
> > > wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > Thanks for working on this!
> > > > > > >
> > > > > > > On 10/03/2014 11:43 AM, Pali Rohár wrote:
> > > > > > > > On some systems after starting computer function
> > > > > > > > alps_identify() does not detect dual ALPS
> > > > > > > > touchpad+trackstick device correctly and detect
> > > > > > > > only touchpad.
> > > > > > > >
> > > > > > > > Resetting ALPS device before identifiying it
> > > > > > > > fixing this problem and both parts touchpad and
> > > > > > > > trackstick are detected.
> > > > > > > >
> > > > > > > > Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> > > > > > > > Tested-by: Pali Rohár <pali.rohar@gmail.com>
> > > > > > >
> > > > > > > Looks good and seems sensible:
> > > > > > >
> > > > > > > Acked-by: Hans de Goede <hdegoede@redhat.com>
> > > > > >
> > > > > > *sigh* I am not really happy about this, as we making
> > > > > > boot longer and longer for people without ALPS
> > > > > > touchpads. It would be better if we only reset the
> > > > > > mouse when we knew we are dealing with ALPS, and even
> > > > > > better if we only reset it when we suspected that we
> > > > > > missed trackstick. Any chance of doing this?
> > > > > >
> > > > > > Thanks.
> > > > >
> > > > > Dmitry, problem is that function check which detecting
> > > > > trackstick does not working when I start my laptop from
> > > > > power-off state and do not reset PS/2 device. But
> > > > > detecting ALPS touchpad looks like working. So if do
> > > > > not like this idea, what about doing something like
> > > > > this in alps_dectect function?
> > > > >
> > > > > int alps_detect(...)
> > > > > {
> > > > > ...
> > > > > /* detect if device is ALPS */
> > > > > if (alps_identify(...) < 0)
> > > > > return -1;
> > > > > /* now we know that device is ALPS */
> > > > > if (!(flags & ALPS_DUALPOINT)) {
> > > > > /* reset it and identify again, maybe there is
> > > > > trackstick */ psmouse_reset(...);
> > > > > alps_identify(...);
> > > > > }
> > > > > ...
> > > > > }
> > > > >
> > > > > It will does not affect non ALPS devices (because first
> > > > > identify call will fail), but will affect ALPS devices
> > > > > without trackstick (because identify will be called
> > > > > twice and reset too).
> > > >
> > > > I think this is a step in right direction. Do you know
> > > > what exactly fails in alps_identify() on your box if you
> > > > do not call psmouse_reset?
> > > >
> > > > Thanks.
> > >
> > > Yes, I know. It is failing in alps_probe_trackstick_v3(). It
> > > calls alps_command_mode_read_reg(...) and it returns 0 which
> > > means trackstick is not there.
> >
> > OK, so can we try sticking psmouse_reset() there? This will
> > limit the exposure of the new delay.
> >
> > Thanks.
>
> Sorry, but I think this is not safe. Function psmouse_reset will
> reset device (set it to relative mode, etc...) and before and
> after alps_probe_trackstick_v3() are called other functions. So
> it could break something else.
We might need to repeat bits of alps_identify() after resetting the
mouse, you are right. It should still be doable though.
--
Dmitry
next prev parent reply other threads:[~2014-10-15 18:23 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-03 9:43 [PATCH 0/3] input: alps: Fixes for ALPS driver Pali Rohár
2014-10-03 9:43 ` Pali Rohár
2014-10-03 9:43 ` [PATCH 1/3] input: alps: Reset mouse before identifying it Pali Rohár
2014-10-03 9:47 ` Hans de Goede
2014-10-03 9:47 ` Hans de Goede
2014-10-14 6:08 ` Dmitry Torokhov
2014-10-14 6:08 ` Dmitry Torokhov
2014-10-15 12:53 ` Pali Rohár
2014-10-15 17:43 ` Dmitry Torokhov
2014-10-15 17:43 ` Dmitry Torokhov
2014-10-15 17:57 ` Pali Rohár
2014-10-15 18:00 ` Dmitry Torokhov
2014-10-15 18:00 ` Dmitry Torokhov
2014-10-15 18:10 ` Pali Rohár
2014-10-15 18:22 ` Dmitry Torokhov [this message]
2014-10-15 18:22 ` Dmitry Torokhov
2014-10-19 11:07 ` Pali Rohár
2014-10-23 15:44 ` Dmitry Torokhov
2014-10-23 15:44 ` Dmitry Torokhov
2014-11-01 23:29 ` Pali Rohár
2014-10-03 9:43 ` [PATCH 2/3] input: alps: For protocol V3, do not process data when last packet's bit7 is set Pali Rohár
2014-10-03 9:51 ` Hans de Goede
2014-10-03 9:51 ` Hans de Goede
2014-10-03 9:58 ` Pali Rohár
2014-10-03 10:01 ` Hans de Goede
2014-10-03 10:01 ` Hans de Goede
2014-10-03 9:43 ` [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet Pali Rohár
2014-10-03 9:43 ` Pali Rohár
2014-10-03 9:55 ` Hans de Goede
2014-10-03 9:55 ` Hans de Goede
2014-10-03 10:05 ` Pali Rohár
2014-10-03 10:18 ` Hans de Goede
2014-10-03 10:18 ` Hans de Goede
2014-10-03 10:23 ` Pali Rohár
2014-10-03 11:03 ` Hans de Goede
2014-10-03 11:03 ` Hans de Goede
2014-10-03 12:04 ` Hans de Goede
2014-10-03 12:04 ` Hans de Goede
2014-11-01 23:25 ` [PATCH v3 0/4] Fixes for ALPS driver Pali Rohár
2014-11-01 23:25 ` Pali Rohár
2014-11-01 23:25 ` [PATCH v3 1/4] input: alps: Do not try to parse data as 3 bytes packet when driver is out of sync Pali Rohár
2014-11-01 23:25 ` Pali Rohár
2014-11-08 20:52 ` Dmitry Torokhov
2014-11-08 20:52 ` Dmitry Torokhov
2014-11-01 23:25 ` [PATCH v3 2/4] input: alps: Allow 2 invalid packets without resetting device Pali Rohár
2014-11-08 21:00 ` Dmitry Torokhov
2014-11-08 21:00 ` Dmitry Torokhov
2014-11-01 23:25 ` [PATCH v3 3/4] input: alps: For protocol V3, do not process data when last packet's bit7 is set Pali Rohár
2014-11-01 23:25 ` Pali Rohár
2014-11-09 7:50 ` Dmitry Torokhov
2014-11-09 7:50 ` Dmitry Torokhov
2014-11-09 11:22 ` Pali Rohár
2014-11-09 20:34 ` Dmitry Torokhov
2014-11-09 20:34 ` Dmitry Torokhov
2014-11-10 9:18 ` Pali Rohár
2014-11-01 23:25 ` [PATCH v3 4/4] input: alps: Fix trackstick detection Pali Rohár
2014-11-01 23:25 ` Pali Rohár
2014-11-09 8:05 ` Dmitry Torokhov
2014-11-09 11:30 ` Pali Rohár
2014-11-14 11:22 ` Pali Rohár
2014-11-14 19:41 ` Pali Rohár
2014-11-02 14:14 ` [PATCH v3 0/4] Fixes for ALPS driver Hans de Goede
2014-11-02 14:14 ` Hans de Goede
2014-11-06 17:46 ` 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=20141015182256.GE8625@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=hdegoede@redhat.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pali.rohar@gmail.com \
--cc=tommywill2011@gmail.com \
--cc=yunkang.tang@cn.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 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.