Message ID | 20170605202752.8061-1-drake@endlessm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Po 5. Jún 2017 22:27 Daniel Drake wrote: > New Acer laptops (Aspire A315-31 and several others) have an EC which > expects the PS/2 reset command to happen during boot. > > On Linux, that means that currently the touchpad is unresponsive until > suspend/resume, when psmouse_reconnect() resets the device. > > We observe that Windows sends a PS/2 reset command during boot. > Make Linux do the same here, making the touchpad usable on these > new products. > > Signed-off-by: Daniel Drake <drake@endlessm.com> > --- > drivers/input/mouse/psmouse-base.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/input/mouse/psmouse-base.c > b/drivers/input/mouse/psmouse-base.c index f73b47b8c578..8f3c903db7b9 > 100644 --- a/drivers/input/mouse/psmouse-base.c > +++ b/drivers/input/mouse/psmouse-base.c > @@ -1591,6 +1591,12 @@ static int psmouse_connect(struct serio *serio, > struct serio_driver *drv) > psmouse->resync_time = parent ? 0 : psmouse_resync_time; > psmouse->smartscroll = psmouse_smartscroll; > > + /* Reset the device, even though we would ordinarily expect it to > + * already be in the reset state. This matches Windows behaviour, > + * which some ECs require. > + */ > + psmouse_reset(psmouse); > + > psmouse_switch_protocol(psmouse, NULL); > > if (!psmouse->protocol->smbus_companion) { This patch will slow down enumeration and initalization of *all* PS/2 mouses. I guess if there are some problematic machines, it could be hooked...
On Thu, Jun 8, 2017 at 1:32 PM, Pali Rohár <pali.rohar@gmail.com> wrote:
> This patch will slow down enumeration and initalization of *all* PS/2 mouses.
I know it's not ideal. but do you think anyone will be able to notice
the difference in initialization time?
Daniel
--
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
On Thursday 08 June 2017 22:18:36 Daniel Drake wrote: > On Thu, Jun 8, 2017 at 1:32 PM, Pali Rohár <pali.rohar@gmail.com> > wrote: > > This patch will slow down enumeration and initalization of *all* > > PS/2 mouses. > > I know it's not ideal. but do you think anyone will be able to notice > the difference in initialization time? In past I was working on fixing detection of ALPS trackstick and Dmitry refused to add another unconditional reset during probe. That problem was fixed by calling reset routine only for ALPS devices and after detection that it is ALPS... So I think Dmitry would complain about this unconditional reset for all PS/2 devices again.
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index f73b47b8c578..8f3c903db7b9 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c @@ -1591,6 +1591,12 @@ static int psmouse_connect(struct serio *serio, struct serio_driver *drv) psmouse->resync_time = parent ? 0 : psmouse_resync_time; psmouse->smartscroll = psmouse_smartscroll; + /* Reset the device, even though we would ordinarily expect it to + * already be in the reset state. This matches Windows behaviour, + * which some ECs require. + */ + psmouse_reset(psmouse); + psmouse_switch_protocol(psmouse, NULL); if (!psmouse->protocol->smbus_companion) {
New Acer laptops (Aspire A315-31 and several others) have an EC which expects the PS/2 reset command to happen during boot. On Linux, that means that currently the touchpad is unresponsive until suspend/resume, when psmouse_reconnect() resets the device. We observe that Windows sends a PS/2 reset command during boot. Make Linux do the same here, making the touchpad usable on these new products. Signed-off-by: Daniel Drake <drake@endlessm.com> --- drivers/input/mouse/psmouse-base.c | 6 ++++++ 1 file changed, 6 insertions(+)