stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE
@ 2023-03-30 19:46 Hans de Goede
  2023-03-31  9:51 ` Maxim Mikityanskiy
  2023-03-31 17:38 ` Hans de Goede
  0 siblings, 2 replies; 5+ messages in thread
From: Hans de Goede @ 2023-03-30 19:46 UTC (permalink / raw)
  To: Mark Gross, Andy Shevchenko
  Cc: Hans de Goede, Barnabás Pőcze, Kai Heng Feng,
	Maxim Mikityanskiy, GOESSEL Guillaume, Jiaxun Yang, Manyi Li,
	Eray Orçunus, Philipp Jungkamp, Arnav Rawat, Kelly Anderson,
	Meng Dong, Felix Eckhofer, Ike Panhc, platform-driver-x86,
	stable

Commit 5829f8a897e4 ("platform/x86: ideapad-laptop: Send
KEY_TOUCHPAD_TOGGLE on some models") made ideapad-laptop send
KEY_TOUCHPAD_TOGGLE when we receive an ACPI notify with VPC event bit 5 set
and the touchpad-state has not been changed by the EC itself already.

This was done under the assumption that this would be good to do to make
the touchpad-toggle hotkey work on newer models where the EC does not
toggle the touchpad on/off itself (because it is not routed through
the PS/2 controller, but uses I2C).

But it turns out that at least some models, e.g. the Yoga 7-15ITL5 the EC
triggers an ACPI notify with VPC event bit 5 set on resume, which would
now cause a spurious KEY_TOUCHPAD_TOGGLE on resume to which the desktop
environment responds by disabling the touchpad in software, breaking
the touchpad (until manually re-enabled) on resume.

It was never confirmed that sending KEY_TOUCHPAD_TOGGLE actually improves
things on new models and at least some new models like the Yoga 7-15ITL5
don't have a touchpad on/off toggle hotkey at all, while still sending
ACPI notify events with VPC event bit 5 set.

So it seems best to revert the change to send KEY_TOUCHPAD_TOGGLE when
receiving an ACPI notify events with VPC event bit 5 and the touchpad
state as reported by the EC has not changed.

Note this is not a full revert the code to cache the last EC touchpad
state is kept to avoid sending spurious KEY_TOUCHPAD_ON / _OFF events
on resume.

Fixes: 5829f8a897e4 ("platform/x86: ideapad-laptop: Send KEY_TOUCHPAD_TOGGLE on some models")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217234
Cc: stable@vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/platform/x86/ideapad-laptop.c | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index b5ef3452da1f..35c63cce0479 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -1170,7 +1170,6 @@ static const struct key_entry ideapad_keymap[] = {
 	{ KE_KEY,  65, { KEY_PROG4 } },
 	{ KE_KEY,  66, { KEY_TOUCHPAD_OFF } },
 	{ KE_KEY,  67, { KEY_TOUCHPAD_ON } },
-	{ KE_KEY,  68, { KEY_TOUCHPAD_TOGGLE } },
 	{ KE_KEY, 128, { KEY_ESC } },
 
 	/*
@@ -1526,18 +1525,16 @@ static void ideapad_sync_touchpad_state(struct ideapad_private *priv, bool send_
 	if (priv->features.ctrl_ps2_aux_port)
 		i8042_command(&param, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
 
-	if (send_events) {
-		/*
-		 * On older models the EC controls the touchpad and toggles it
-		 * on/off itself, in this case we report KEY_TOUCHPAD_ON/_OFF.
-		 * If the EC did not toggle, report KEY_TOUCHPAD_TOGGLE.
-		 */
-		if (value != priv->r_touchpad_val) {
-			ideapad_input_report(priv, value ? 67 : 66);
-			sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
-		} else {
-			ideapad_input_report(priv, 68);
-		}
+	/*
+	 * On older models the EC controls the touchpad and toggles it on/off
+	 * itself, in this case we report KEY_TOUCHPAD_ON/_OFF. Some models do
+	 * an acpi-notify with VPC bit 5 set on resume, so this function get
+	 * called with send_events=true on every resume. Therefor if the EC did
+	 * not toggle, do nothing to avoid sending spurious KEY_TOUCHPAD_TOGGLE.
+	 */
+	if (send_events && value != priv->r_touchpad_val) {
+		ideapad_input_report(priv, value ? 67 : 66);
+		sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
 	}
 
 	priv->r_touchpad_val = value;
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE
  2023-03-30 19:46 [PATCH] platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE Hans de Goede
@ 2023-03-31  9:51 ` Maxim Mikityanskiy
  2023-04-03 20:51   ` Maxim Mikityanskiy
  2023-03-31 17:38 ` Hans de Goede
  1 sibling, 1 reply; 5+ messages in thread
From: Maxim Mikityanskiy @ 2023-03-31  9:51 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Mark Gross, Andy Shevchenko, Barnabás Pőcze,
	Kai Heng Feng, GOESSEL Guillaume, Jiaxun Yang, Manyi Li,
	Eray Orçunus, Philipp Jungkamp, Arnav Rawat, Kelly Anderson,
	Meng Dong, Felix Eckhofer, Ike Panhc, platform-driver-x86,
	stable

On Thu, 30 Mar 2023 at 21:46:44 +0200, Hans de Goede wrote:
> Commit 5829f8a897e4 ("platform/x86: ideapad-laptop: Send
> KEY_TOUCHPAD_TOGGLE on some models") made ideapad-laptop send
> KEY_TOUCHPAD_TOGGLE when we receive an ACPI notify with VPC event bit 5 set
> and the touchpad-state has not been changed by the EC itself already.
> 
> This was done under the assumption that this would be good to do to make
> the touchpad-toggle hotkey work on newer models where the EC does not
> toggle the touchpad on/off itself (because it is not routed through
> the PS/2 controller, but uses I2C).
> 
> But it turns out that at least some models, e.g. the Yoga 7-15ITL5 the EC
> triggers an ACPI notify with VPC event bit 5 set on resume, which would
> now cause a spurious KEY_TOUCHPAD_TOGGLE on resume to which the desktop
> environment responds by disabling the touchpad in software, breaking
> the touchpad (until manually re-enabled) on resume.

Oh gosh, the touchpad toggle on Ideapads is so much broken, I wonder how
the Windows driver deals with all this variety of different behaviors
(unless it's broken too :D).

I'll test the patch on Z570, but as I see, it shouldn't change anything
for Z570.

> It was never confirmed that sending KEY_TOUCHPAD_TOGGLE actually improves
> things on new models and at least some new models like the Yoga 7-15ITL5
> don't have a touchpad on/off toggle hotkey at all, while still sending
> ACPI notify events with VPC event bit 5 set.
> 
> So it seems best to revert the change to send KEY_TOUCHPAD_TOGGLE when
> receiving an ACPI notify events with VPC event bit 5 and the touchpad
> state as reported by the EC has not changed.
> 
> Note this is not a full revert the code to cache the last EC touchpad
> state is kept to avoid sending spurious KEY_TOUCHPAD_ON / _OFF events
> on resume.
> 
> Fixes: 5829f8a897e4 ("platform/x86: ideapad-laptop: Send KEY_TOUCHPAD_TOGGLE on some models")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217234
> Cc: stable@vger.kernel.org
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/platform/x86/ideapad-laptop.c | 23 ++++++++++-------------
>  1 file changed, 10 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index b5ef3452da1f..35c63cce0479 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -1170,7 +1170,6 @@ static const struct key_entry ideapad_keymap[] = {
>  	{ KE_KEY,  65, { KEY_PROG4 } },
>  	{ KE_KEY,  66, { KEY_TOUCHPAD_OFF } },
>  	{ KE_KEY,  67, { KEY_TOUCHPAD_ON } },
> -	{ KE_KEY,  68, { KEY_TOUCHPAD_TOGGLE } },
>  	{ KE_KEY, 128, { KEY_ESC } },
>  
>  	/*
> @@ -1526,18 +1525,16 @@ static void ideapad_sync_touchpad_state(struct ideapad_private *priv, bool send_
>  	if (priv->features.ctrl_ps2_aux_port)
>  		i8042_command(&param, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
>  
> -	if (send_events) {
> -		/*
> -		 * On older models the EC controls the touchpad and toggles it
> -		 * on/off itself, in this case we report KEY_TOUCHPAD_ON/_OFF.
> -		 * If the EC did not toggle, report KEY_TOUCHPAD_TOGGLE.
> -		 */
> -		if (value != priv->r_touchpad_val) {
> -			ideapad_input_report(priv, value ? 67 : 66);
> -			sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
> -		} else {
> -			ideapad_input_report(priv, 68);
> -		}
> +	/*
> +	 * On older models the EC controls the touchpad and toggles it on/off
> +	 * itself, in this case we report KEY_TOUCHPAD_ON/_OFF. Some models do
> +	 * an acpi-notify with VPC bit 5 set on resume, so this function get
> +	 * called with send_events=true on every resume. Therefor if the EC did
> +	 * not toggle, do nothing to avoid sending spurious KEY_TOUCHPAD_TOGGLE.
> +	 */
> +	if (send_events && value != priv->r_touchpad_val) {
> +		ideapad_input_report(priv, value ? 67 : 66);
> +		sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
>  	}
>  
>  	priv->r_touchpad_val = value;
> -- 
> 2.39.1
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE
  2023-03-30 19:46 [PATCH] platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE Hans de Goede
  2023-03-31  9:51 ` Maxim Mikityanskiy
@ 2023-03-31 17:38 ` Hans de Goede
  1 sibling, 0 replies; 5+ messages in thread
From: Hans de Goede @ 2023-03-31 17:38 UTC (permalink / raw)
  To: Mark Gross, Andy Shevchenko
  Cc: Barnabás Pőcze, Kai Heng Feng, Maxim Mikityanskiy,
	GOESSEL Guillaume, Jiaxun Yang, Manyi Li, Eray Orçunus,
	Philipp Jungkamp, Arnav Rawat, Kelly Anderson, Meng Dong,
	Felix Eckhofer, Ike Panhc, platform-driver-x86, stable

Hi,

On 3/30/23 21:46, Hans de Goede wrote:
> Commit 5829f8a897e4 ("platform/x86: ideapad-laptop: Send
> KEY_TOUCHPAD_TOGGLE on some models") made ideapad-laptop send
> KEY_TOUCHPAD_TOGGLE when we receive an ACPI notify with VPC event bit 5 set
> and the touchpad-state has not been changed by the EC itself already.
> 
> This was done under the assumption that this would be good to do to make
> the touchpad-toggle hotkey work on newer models where the EC does not
> toggle the touchpad on/off itself (because it is not routed through
> the PS/2 controller, but uses I2C).
> 
> But it turns out that at least some models, e.g. the Yoga 7-15ITL5 the EC
> triggers an ACPI notify with VPC event bit 5 set on resume, which would
> now cause a spurious KEY_TOUCHPAD_TOGGLE on resume to which the desktop
> environment responds by disabling the touchpad in software, breaking
> the touchpad (until manually re-enabled) on resume.
> 
> It was never confirmed that sending KEY_TOUCHPAD_TOGGLE actually improves
> things on new models and at least some new models like the Yoga 7-15ITL5
> don't have a touchpad on/off toggle hotkey at all, while still sending
> ACPI notify events with VPC event bit 5 set.
> 
> So it seems best to revert the change to send KEY_TOUCHPAD_TOGGLE when
> receiving an ACPI notify events with VPC event bit 5 and the touchpad
> state as reported by the EC has not changed.
> 
> Note this is not a full revert the code to cache the last EC touchpad
> state is kept to avoid sending spurious KEY_TOUCHPAD_ON / _OFF events
> on resume.
> 
> Fixes: 5829f8a897e4 ("platform/x86: ideapad-laptop: Send KEY_TOUCHPAD_TOGGLE on some models")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217234
> Cc: stable@vger.kernel.org
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

I've applied this patch to my fixes branch now:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes

Note it will show up in my fixes branch once I've pushed my
local branch there, which might take a while.

I will include this patch in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans



> ---
>  drivers/platform/x86/ideapad-laptop.c | 23 ++++++++++-------------
>  1 file changed, 10 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index b5ef3452da1f..35c63cce0479 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -1170,7 +1170,6 @@ static const struct key_entry ideapad_keymap[] = {
>  	{ KE_KEY,  65, { KEY_PROG4 } },
>  	{ KE_KEY,  66, { KEY_TOUCHPAD_OFF } },
>  	{ KE_KEY,  67, { KEY_TOUCHPAD_ON } },
> -	{ KE_KEY,  68, { KEY_TOUCHPAD_TOGGLE } },
>  	{ KE_KEY, 128, { KEY_ESC } },
>  
>  	/*
> @@ -1526,18 +1525,16 @@ static void ideapad_sync_touchpad_state(struct ideapad_private *priv, bool send_
>  	if (priv->features.ctrl_ps2_aux_port)
>  		i8042_command(&param, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
>  
> -	if (send_events) {
> -		/*
> -		 * On older models the EC controls the touchpad and toggles it
> -		 * on/off itself, in this case we report KEY_TOUCHPAD_ON/_OFF.
> -		 * If the EC did not toggle, report KEY_TOUCHPAD_TOGGLE.
> -		 */
> -		if (value != priv->r_touchpad_val) {
> -			ideapad_input_report(priv, value ? 67 : 66);
> -			sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
> -		} else {
> -			ideapad_input_report(priv, 68);
> -		}
> +	/*
> +	 * On older models the EC controls the touchpad and toggles it on/off
> +	 * itself, in this case we report KEY_TOUCHPAD_ON/_OFF. Some models do
> +	 * an acpi-notify with VPC bit 5 set on resume, so this function get
> +	 * called with send_events=true on every resume. Therefor if the EC did
> +	 * not toggle, do nothing to avoid sending spurious KEY_TOUCHPAD_TOGGLE.
> +	 */
> +	if (send_events && value != priv->r_touchpad_val) {
> +		ideapad_input_report(priv, value ? 67 : 66);
> +		sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
>  	}
>  
>  	priv->r_touchpad_val = value;


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE
  2023-03-31  9:51 ` Maxim Mikityanskiy
@ 2023-04-03 20:51   ` Maxim Mikityanskiy
  2023-04-04  7:56     ` Hans de Goede
  0 siblings, 1 reply; 5+ messages in thread
From: Maxim Mikityanskiy @ 2023-04-03 20:51 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Mark Gross, Andy Shevchenko, Barnabás Pőcze,
	Kai Heng Feng, GOESSEL Guillaume, Jiaxun Yang, Manyi Li,
	Eray Orçunus, Philipp Jungkamp, Arnav Rawat, Kelly Anderson,
	Meng Dong, Felix Eckhofer, Ike Panhc, platform-driver-x86,
	stable

On Fri, 31 Mar 2023 at 12:51:30 +0300, Maxim Mikityanskiy wrote:
> On Thu, 30 Mar 2023 at 21:46:44 +0200, Hans de Goede wrote:
> > Commit 5829f8a897e4 ("platform/x86: ideapad-laptop: Send
> > KEY_TOUCHPAD_TOGGLE on some models") made ideapad-laptop send
> > KEY_TOUCHPAD_TOGGLE when we receive an ACPI notify with VPC event bit 5 set
> > and the touchpad-state has not been changed by the EC itself already.
> > 
> > This was done under the assumption that this would be good to do to make
> > the touchpad-toggle hotkey work on newer models where the EC does not
> > toggle the touchpad on/off itself (because it is not routed through
> > the PS/2 controller, but uses I2C).
> > 
> > But it turns out that at least some models, e.g. the Yoga 7-15ITL5 the EC
> > triggers an ACPI notify with VPC event bit 5 set on resume, which would
> > now cause a spurious KEY_TOUCHPAD_TOGGLE on resume to which the desktop
> > environment responds by disabling the touchpad in software, breaking
> > the touchpad (until manually re-enabled) on resume.
> 
> Oh gosh, the touchpad toggle on Ideapads is so much broken, I wonder how
> the Windows driver deals with all this variety of different behaviors
> (unless it's broken too :D).
> 
> I'll test the patch on Z570, but as I see, it shouldn't change anything
> for Z570.

Tested the kernel from your branch on Z570, the touchpad button still
works fine.

> > It was never confirmed that sending KEY_TOUCHPAD_TOGGLE actually improves
> > things on new models and at least some new models like the Yoga 7-15ITL5
> > don't have a touchpad on/off toggle hotkey at all, while still sending
> > ACPI notify events with VPC event bit 5 set.
> > 
> > So it seems best to revert the change to send KEY_TOUCHPAD_TOGGLE when
> > receiving an ACPI notify events with VPC event bit 5 and the touchpad
> > state as reported by the EC has not changed.
> > 
> > Note this is not a full revert the code to cache the last EC touchpad
> > state is kept to avoid sending spurious KEY_TOUCHPAD_ON / _OFF events
> > on resume.
> > 
> > Fixes: 5829f8a897e4 ("platform/x86: ideapad-laptop: Send KEY_TOUCHPAD_TOGGLE on some models")
> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=217234
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > ---
> >  drivers/platform/x86/ideapad-laptop.c | 23 ++++++++++-------------
> >  1 file changed, 10 insertions(+), 13 deletions(-)
> > 
> > diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> > index b5ef3452da1f..35c63cce0479 100644
> > --- a/drivers/platform/x86/ideapad-laptop.c
> > +++ b/drivers/platform/x86/ideapad-laptop.c
> > @@ -1170,7 +1170,6 @@ static const struct key_entry ideapad_keymap[] = {
> >  	{ KE_KEY,  65, { KEY_PROG4 } },
> >  	{ KE_KEY,  66, { KEY_TOUCHPAD_OFF } },
> >  	{ KE_KEY,  67, { KEY_TOUCHPAD_ON } },
> > -	{ KE_KEY,  68, { KEY_TOUCHPAD_TOGGLE } },
> >  	{ KE_KEY, 128, { KEY_ESC } },
> >  
> >  	/*
> > @@ -1526,18 +1525,16 @@ static void ideapad_sync_touchpad_state(struct ideapad_private *priv, bool send_
> >  	if (priv->features.ctrl_ps2_aux_port)
> >  		i8042_command(&param, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
> >  
> > -	if (send_events) {
> > -		/*
> > -		 * On older models the EC controls the touchpad and toggles it
> > -		 * on/off itself, in this case we report KEY_TOUCHPAD_ON/_OFF.
> > -		 * If the EC did not toggle, report KEY_TOUCHPAD_TOGGLE.
> > -		 */
> > -		if (value != priv->r_touchpad_val) {
> > -			ideapad_input_report(priv, value ? 67 : 66);
> > -			sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
> > -		} else {
> > -			ideapad_input_report(priv, 68);
> > -		}
> > +	/*
> > +	 * On older models the EC controls the touchpad and toggles it on/off
> > +	 * itself, in this case we report KEY_TOUCHPAD_ON/_OFF. Some models do
> > +	 * an acpi-notify with VPC bit 5 set on resume, so this function get
> > +	 * called with send_events=true on every resume. Therefor if the EC did
> > +	 * not toggle, do nothing to avoid sending spurious KEY_TOUCHPAD_TOGGLE.
> > +	 */
> > +	if (send_events && value != priv->r_touchpad_val) {
> > +		ideapad_input_report(priv, value ? 67 : 66);
> > +		sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
> >  	}
> >  
> >  	priv->r_touchpad_val = value;
> > -- 
> > 2.39.1
> > 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE
  2023-04-03 20:51   ` Maxim Mikityanskiy
@ 2023-04-04  7:56     ` Hans de Goede
  0 siblings, 0 replies; 5+ messages in thread
From: Hans de Goede @ 2023-04-04  7:56 UTC (permalink / raw)
  To: Maxim Mikityanskiy
  Cc: Mark Gross, Andy Shevchenko, Barnabás Pőcze,
	Kai Heng Feng, GOESSEL Guillaume, Jiaxun Yang, Manyi Li,
	Eray Orçunus, Philipp Jungkamp, Arnav Rawat, Kelly Anderson,
	Meng Dong, Felix Eckhofer, Ike Panhc, platform-driver-x86,
	stable

Hi,

On 4/3/23 22:51, Maxim Mikityanskiy wrote:
> On Fri, 31 Mar 2023 at 12:51:30 +0300, Maxim Mikityanskiy wrote:
>> On Thu, 30 Mar 2023 at 21:46:44 +0200, Hans de Goede wrote:
>>> Commit 5829f8a897e4 ("platform/x86: ideapad-laptop: Send
>>> KEY_TOUCHPAD_TOGGLE on some models") made ideapad-laptop send
>>> KEY_TOUCHPAD_TOGGLE when we receive an ACPI notify with VPC event bit 5 set
>>> and the touchpad-state has not been changed by the EC itself already.
>>>
>>> This was done under the assumption that this would be good to do to make
>>> the touchpad-toggle hotkey work on newer models where the EC does not
>>> toggle the touchpad on/off itself (because it is not routed through
>>> the PS/2 controller, but uses I2C).
>>>
>>> But it turns out that at least some models, e.g. the Yoga 7-15ITL5 the EC
>>> triggers an ACPI notify with VPC event bit 5 set on resume, which would
>>> now cause a spurious KEY_TOUCHPAD_TOGGLE on resume to which the desktop
>>> environment responds by disabling the touchpad in software, breaking
>>> the touchpad (until manually re-enabled) on resume.
>>
>> Oh gosh, the touchpad toggle on Ideapads is so much broken, I wonder how
>> the Windows driver deals with all this variety of different behaviors
>> (unless it's broken too :D).
>>
>> I'll test the patch on Z570, but as I see, it shouldn't change anything
>> for Z570.
> 
> Tested the kernel from your branch on Z570, the touchpad button still
> works fine.

Thank you for testing.

Regards,

Hans



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-04-04  7:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-30 19:46 [PATCH] platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE Hans de Goede
2023-03-31  9:51 ` Maxim Mikityanskiy
2023-04-03 20:51   ` Maxim Mikityanskiy
2023-04-04  7:56     ` Hans de Goede
2023-03-31 17:38 ` Hans de Goede

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).