Re: [PATCH v3 0/3] Support for ASUS egpu, dpgu disable, panel overdrive

From: Luke Jones
Date: Mon Aug 09 2021 - 17:49:49 EST




On Mon, Aug 9 2021 at 11:18:38 +0200, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
Hi Luke,

On 8/7/21 4:36 AM, Luke D. Jones wrote:
This patch series adds support for some functions that are found on newer
ASUS gaming laptops:

- Panel overdrive: Some laptops can drive the LCD matrix slightly faster
to eliminate or reduce ghosting artifacts

- dGPU disable: ASUS added a function in ACPI to disable or enable the dGPU
which removes it from the PCI bus. Presumably this was to help prevent
Windows apps from using the dGPU when the user didn't want them to but
because of how it works it also means that when rebooted to Linux the dGPU
no-longer exits. This patch enables a user to echo 0/1 to a WMI path to
re-enable it (or disable, but the drivers *must* be unloaded first).

- eGPU enable: The ASUS x-flow lpatop has an iGPU, a dGPU, and an optional
eGPU. This patch enables the user to echo 0/1 to a WMI path to enable or
disable the eGPU. In ACPI this also appears to remove the dGPU from the
PCI bus.

All of the above patches have been tested over the course of a few months.
There is a small possibility of user error perhaps, where the user tries to
enable or disable the dGPU/eGPU while drivers are loaded which would cause
a system hang, but it is expected that almost all users would be using the
`asusctl` daemon and dbus methods to manage the above which then eliminates
these issues.

Thank you for the new version, all 3 patches look good to me, but I miss
a changelog in this cover-letter.

Specifically I'm wondering what happened to the following,
which you wrote about in the v1 patch-set thread:

"""
Proper enable of the dGPU again as far as my testing goes works such that:
1. call the ACPI method
2. rescan PCI bus to ensure the device is powered
3. call the ACPI method again to save the setting

But it appears that recent work in-kernel for many things AMD related has broken this for us...
"""

Apologies, I've been a bit too busy to remember some things.

The changes are mostly to satisfy review. The dGPU patch has removed the
dual call to the ACPI method, it was not working as expected. I will revisit
this when 5.14 kernel is released.

I'll be sure to remember the changelog next time I submit a patch, sorry.

Regards,
Luke.


?

Regards,

Hans




Luke D. Jones (3):
asus-wmi: Add panel overdrive functionality
asus-wmi: Add dgpu disable method
asus-wmi: Add egpu enable method

drivers/platform/x86/asus-wmi.c | 289 +++++++++++++++++++++
include/linux/platform_data/x86/asus-wmi.h | 7 +
2 files changed, 296 insertions(+)

--
2.31.1