2022-10-29 12:07:50

by Eray Orçunus

[permalink] [raw]
Subject: [PATCH v2 7/7] platform/x86: ideapad-laptop: Don't expose touchpad attr on IdeaPads with SYNA2B33

My 520-15IKB (2017) with SYNA2B33 doesn't have working VPCCMD_W_TOUCHPAD command -
it's the touchpad program switches the touchpad instead on Windows. Considering
all IdeaPads with SYNA2B33 touchpad produced in 2017/2018, it's very likely that
none of the IdeaPads with SYNA2B33 support touchpad switching via EC. So let's
add SYNA2B33 to the touchpads not switchable via EC.

Signed-off-by: Eray Orçunus <[email protected]>
---
drivers/platform/x86/ideapad-laptop.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index b34fbc4d741c..937126c62a14 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -1621,8 +1621,12 @@ static void ideapad_check_features(struct ideapad_private *priv)
"Could not find PCI* node in the namespace\n");
}

- /* Most ideapads with ELAN0634 touchpad don't use EC touchpad switch */
- priv->features.touchpad_ctrl_via_ec = !acpi_dev_present("ELAN0634", NULL, -1);
+ /*
+ * Most ideapads with ELAN0634 and SYNA2B33 touchpads don't use
+ * EC touchpad switch
+ */
+ priv->features.touchpad_ctrl_via_ec = !acpi_dev_present("ELAN0634", NULL, -1) &&
+ !acpi_dev_present("SYNA2B33", NULL, -1);

if (!read_ec_data(handle, VPCCMD_R_FAN, &val))
priv->features.fan_mode = true;
--
2.34.1



2022-11-15 21:24:03

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH v2 7/7] platform/x86: ideapad-laptop: Don't expose touchpad attr on IdeaPads with SYNA2B33

Hi,

On 10/29/22 14:03, Eray Orçunus wrote:
> My 520-15IKB (2017) with SYNA2B33 doesn't have working VPCCMD_W_TOUCHPAD command -
> it's the touchpad program switches the touchpad instead on Windows. Considering
> all IdeaPads with SYNA2B33 touchpad produced in 2017/2018, it's very likely that
> none of the IdeaPads with SYNA2B33 support touchpad switching via EC. So let's
> add SYNA2B33 to the touchpads not switchable via EC.
>
> Signed-off-by: Eray Orçunus <[email protected]>

As already discussed in the other thread I'm not sure this is the best way to
go about this, lets continue discussing this in the other thread.

Regards,

Hans


> ---
> drivers/platform/x86/ideapad-laptop.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index b34fbc4d741c..937126c62a14 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -1621,8 +1621,12 @@ static void ideapad_check_features(struct ideapad_private *priv)
> "Could not find PCI* node in the namespace\n");
> }
>
> - /* Most ideapads with ELAN0634 touchpad don't use EC touchpad switch */
> - priv->features.touchpad_ctrl_via_ec = !acpi_dev_present("ELAN0634", NULL, -1);
> + /*
> + * Most ideapads with ELAN0634 and SYNA2B33 touchpads don't use
> + * EC touchpad switch
> + */
> + priv->features.touchpad_ctrl_via_ec = !acpi_dev_present("ELAN0634", NULL, -1) &&
> + !acpi_dev_present("SYNA2B33", NULL, -1);
>
> if (!read_ec_data(handle, VPCCMD_R_FAN, &val))
> priv->features.fan_mode = true;