Last 8 bit of _CFG started being used in later IdeaPads, thus 30th bit
doesn't always show whether device supports touchpad or touchpad switch.
Remove checking bit 30 of _CFG, so older IdeaPads like S10-3 can switch
touchpad again via touchpad attribute.
This reverts commit b3ed1b7fe3786c8fe795c16ca07cf3bda67b652f.
Signed-off-by: Eray Orçunus <[email protected]>
---
drivers/platform/x86/ideapad-laptop.c | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index e7a1299e3776..b67bac457a7a 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -46,11 +46,10 @@ static const char *const ideapad_wmi_fnesc_events[] = {
#endif
enum {
- CFG_CAP_BT_BIT = 16,
- CFG_CAP_3G_BIT = 17,
- CFG_CAP_WIFI_BIT = 18,
- CFG_CAP_CAM_BIT = 19,
- CFG_CAP_TOUCHPAD_BIT = 30,
+ CFG_CAP_BT_BIT = 16,
+ CFG_CAP_3G_BIT = 17,
+ CFG_CAP_WIFI_BIT = 18,
+ CFG_CAP_CAM_BIT = 19,
};
enum {
@@ -367,8 +366,6 @@ static int debugfs_cfg_show(struct seq_file *s, void *data)
seq_puts(s, " wifi");
if (test_bit(CFG_CAP_CAM_BIT, &priv->cfg))
seq_puts(s, " camera");
- if (test_bit(CFG_CAP_TOUCHPAD_BIT, &priv->cfg))
- seq_puts(s, " touchpad");
seq_puts(s, "\n");
seq_puts(s, "Graphics: ");
@@ -661,8 +658,7 @@ static umode_t ideapad_is_visible(struct kobject *kobj,
else if (attr == &dev_attr_fn_lock.attr)
supported = priv->features.fn_lock;
else if (attr == &dev_attr_touchpad.attr)
- supported = priv->features.touchpad_ctrl_via_ec &&
- test_bit(CFG_CAP_TOUCHPAD_BIT, &priv->cfg);
+ supported = priv->features.touchpad_ctrl_via_ec;
else if (attr == &dev_attr_usb_charging.attr)
supported = priv->features.usb_charging;
--
2.34.1
Hi,
On 10/29/22 14:03, Eray Orçunus wrote:
> Last 8 bit of _CFG started being used in later IdeaPads, thus 30th bit
> doesn't always show whether device supports touchpad or touchpad switch.
> Remove checking bit 30 of _CFG, so older IdeaPads like S10-3 can switch
> touchpad again via touchpad attribute.
>
> This reverts commit b3ed1b7fe3786c8fe795c16ca07cf3bda67b652f.
>
> Signed-off-by: Eray Orçunus <[email protected]>
Thank you for your patch, I've applied this patch to my review-hans
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans
Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.
Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.
Regards,
Hans
> ---
> drivers/platform/x86/ideapad-laptop.c | 14 +++++---------
> 1 file changed, 5 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index e7a1299e3776..b67bac457a7a 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -46,11 +46,10 @@ static const char *const ideapad_wmi_fnesc_events[] = {
> #endif
>
> enum {
> - CFG_CAP_BT_BIT = 16,
> - CFG_CAP_3G_BIT = 17,
> - CFG_CAP_WIFI_BIT = 18,
> - CFG_CAP_CAM_BIT = 19,
> - CFG_CAP_TOUCHPAD_BIT = 30,
> + CFG_CAP_BT_BIT = 16,
> + CFG_CAP_3G_BIT = 17,
> + CFG_CAP_WIFI_BIT = 18,
> + CFG_CAP_CAM_BIT = 19,
> };
>
> enum {
> @@ -367,8 +366,6 @@ static int debugfs_cfg_show(struct seq_file *s, void *data)
> seq_puts(s, " wifi");
> if (test_bit(CFG_CAP_CAM_BIT, &priv->cfg))
> seq_puts(s, " camera");
> - if (test_bit(CFG_CAP_TOUCHPAD_BIT, &priv->cfg))
> - seq_puts(s, " touchpad");
> seq_puts(s, "\n");
>
> seq_puts(s, "Graphics: ");
> @@ -661,8 +658,7 @@ static umode_t ideapad_is_visible(struct kobject *kobj,
> else if (attr == &dev_attr_fn_lock.attr)
> supported = priv->features.fn_lock;
> else if (attr == &dev_attr_touchpad.attr)
> - supported = priv->features.touchpad_ctrl_via_ec &&
> - test_bit(CFG_CAP_TOUCHPAD_BIT, &priv->cfg);
> + supported = priv->features.touchpad_ctrl_via_ec;
> else if (attr == &dev_attr_usb_charging.attr)
> supported = priv->features.usb_charging;
>