From: Yurii Pavlovskyi <firstname.lastname@example.org> To: Corentin Chary <email@example.com>, Darren Hart <firstname.lastname@example.org>, Andy Shevchenko <email@example.com>, Daniel Drake <firstname.lastname@example.org> Cc: email@example.com, firstname.lastname@example.org, email@example.com Subject: [PATCH 00/11] asus-wmi: Support of ASUS TUF Gaming series laptops Date: Wed, 10 Apr 2019 22:11:33 +0200 [thread overview] Message-ID: <firstname.lastname@example.org> (raw) Hi, I'm new to kernel development, so first I would like to apologize in advance for any mistakes. The support for this laptop series is currently non-existent, as the asus-nb-wmi driver (which is essentially configuration for asus-wmi) fails to load and multiple ACPI errors are logged in dmesg. This patch series adds pretty comprehenisve support for these relatively new laptops, adds some code organization, and fixes couple of bugs in the asus-wmi module. I have FX565GM (FX505GM) model, but I would guess that the same will likely apply to the complete FX505 / FX705 series. I've also tested this on an older K54C model to ensure that it doesn't break support. Unfortunately I don't have capacity to test this on more devices. The patches 1 and 2 are pure bug fixes, but I can not measure relevance for stable. OVERALL DESIGN DECISIONS Besides this patch, I've written experimental separate driver  for this series to make it usable on my system as a DKMS module for 4.18 kernel for the time being. One might wonder if it is more reasonable to make a new independent module. The things to consider are that: asus-nb-wmi is currently loaded by the WMI GUID alias, whereas the original ASUS driver does check for the ASUS7000 device in ACPI. One should then choose appropriate base driver instead of asus-wmi when asus-nb-wmi is loaded, about third of the code gets duplicated in this case and the whole ends up ugly. Another question, does it make sense to embed RGB keyboard backlight support in kernel code? There was discussion  about exposing WMI to the userspace. The same would apply for the fan boost mode support. As I understand as of yet it is still preferrable to support hardware features in kernel. NOTE ON HWMON One open issue with the result is that hwmon device gets loaded anyway, but it does not do anything noticeable. The heavily reduced code for the MFUN is present in DSDT, but it either really does nothing or possibly call something unnoticeable via DMA. I've managed to detect that thermal sensor is not present, but the MFUN for read fan speed does return 0 and not an error. Taking this as condition for disabling hwmon might intermittently break some existing devices if the RPM is really 0 (no idea if that is really possible). One might ponder on the better way to detect the presence of manual fan control. NOTE ON QUIRKS I would speculate that the queue might be really present in many more devices, it just didn't get noticed. Anyway after this is merged one might consider if it is reasonable to enable it always and fallback if flush fails. The patch does enable the new quirks only for very new models. Regarding the DSTS force quirk, as I understand the underlying issue is a workaround for EEEPC devices and use of DSTS is more conventional. It might be reasonable to find a way to detect specific DSTS device ID that is present on EEEPC instead, apply same ACPI device detection approach or just duplicate the relevant method calls. I don't have access to such device or it's DSDT and can't evaluate any of these options myself. NOTE ON KEYBOARD BACKLIGHT When the keyboard backlight is set via 0x50021 DEVID the brightness drops slightly compared to brightness after boot. I did not found any way to revert this. The method does set some bit in EC RAM, but this address is not used anywhere else. Unfortunately I wiped original OS after two hours after unpacking.If someone can verify whether it is identical to behavior of the vendor driver it would be appreciated. NOTE ON UPOWER DAEMON If you're testing with GNOME, notice that UPower does hang pretty badly if the module is removed at runtime at least on my device. Stop it with 'systemctl stop upower' before removing the module and then restart it again.  https://github.com/hackbnw/faustus  https://lwn.net/Articles/725725/ Yurii Pavlovskyi (11): platform/x86: asus-wmi: Fix hwmon device cleanup platform/x86: asus-wmi: Fix preserving keyboard backlight intensity on load platform/x86: asus-wmi: Increase input buffer size of WMI methods platform/x86: asus-wmi: Add quirk to force DSTS WMI method detection platform/x86: asus-wmi: Support queued WMI event codes platform/x86: asus-nb-wmi: Add microphone mute key code platform/x86: asus-wmi: Organize code into sections platform/x86: asus-wmi: Enhance detection of thermal data platform/x86: asus-wmi: Control RGB keyboard backlight platform/x86: asus-wmi: Switch fan boost mode platform/x86: asus-wmi: Do not disable keyboard backlight on unload .../ABI/testing/sysfs-platform-asus-wmi | 71 ++ drivers/platform/x86/asus-nb-wmi.c | 9 +- drivers/platform/x86/asus-wmi.c | 755 +++++++++++++++--- drivers/platform/x86/asus-wmi.h | 7 + include/linux/platform_data/x86/asus-wmi.h | 3 + 5 files changed, 742 insertions(+), 103 deletions(-) -- 2.17.1
next reply other threads:[~2019-04-10 20:11 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-04-10 20:11 Yurii Pavlovskyi [this message] 2019-04-10 20:20 ` [PATCH 01/11] platform/x86: asus-wmi: Fix hwmon device cleanup Yurii Pavlovskyi 2019-04-11 8:21 ` Daniel Drake 2019-04-12 17:49 ` Yurii Pavlovskyi 2019-04-10 20:26 ` [PATCH 02/11] platform/x86: asus-wmi: Fix preserving keyboard, backlight intensity on load Yurii Pavlovskyi 2019-04-10 20:27 ` [PATCH 03/11] platform/x86: asus-wmi: Increase input buffer size of WMI methods Yurii Pavlovskyi 2019-04-10 20:28 ` [PATCH 04/11] platform/x86: asus-wmi: Add quirk to force DSTS WMI method detection Yurii Pavlovskyi 2019-04-11 5:42 ` [PATCH v2 " Yurii Pavlovskyi 2019-04-11 10:55 ` [PATCH " Daniel Drake 2019-04-12 20:04 ` Yurii Pavlovskyi 2019-04-10 20:29 ` [PATCH 05/11] platform/x86: asus-wmi: Support queued WMI event codes Yurii Pavlovskyi 2019-04-11 5:44 ` [PATCH v2 " Yurii Pavlovskyi 2019-04-12 7:48 ` Daniel Drake 2019-04-12 20:32 ` Yurii Pavlovskyi 2019-04-10 20:30 ` [PATCH 06/11] platform/x86: asus-nb-wmi: Add microphone mute key code Yurii Pavlovskyi 2019-04-11 5:44 ` [PATCH v2 " Yurii Pavlovskyi 2019-04-10 20:31 ` [PATCH 07/11] platform/x86: asus-wmi: Organize code into sections Yurii Pavlovskyi 2019-04-11 5:45 ` [PATCH v2 " Yurii Pavlovskyi 2019-04-10 20:32 ` [PATCH 08/11] platform/x86: asus-wmi: Enhance detection of thermal data Yurii Pavlovskyi 2019-04-11 5:45 ` [PATCH v2 " Yurii Pavlovskyi 2019-04-10 20:33 ` [PATCH 09/11] platform/x86: asus-wmi: Control RGB keyboard backlight Yurii Pavlovskyi 2019-04-11 5:46 ` [PATCH v2 " Yurii Pavlovskyi 2019-04-10 20:34 ` [PATCH 10/11] platform/x86: asus-wmi: Switch fan boost mode Yurii Pavlovskyi 2019-04-11 5:47 ` [PATCH v2 " Yurii Pavlovskyi 2019-04-12 8:03 ` Daniel Drake 2019-04-12 20:50 ` Yurii Pavlovskyi 2019-04-10 20:36 ` [PATCH 11/11] platform/x86: asus-wmi: Do not disable keyboard backlight on unload Yurii Pavlovskyi 2019-04-11 5:48 ` [PATCH v2 " Yurii Pavlovskyi 2019-04-11 5:38 ` [PATCH 00/11] asus-wmi: Support of ASUS TUF Gaming series laptops Yurii Pavlovskyi
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 \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH 00/11] asus-wmi: Support of ASUS TUF Gaming series laptops' \ /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
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).