[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <b08c3c2c-d663-46fa-b795-df83371c9ebf@app.fastmail.com>
Date: Fri, 27 Sep 2024 10:12:31 +1200
From: "Luke Jones" <luke@...nes.dev>
To: "Mario Limonciello" <superm1@...nel.org>, linux-kernel@...r.kernel.org
Cc: linux-input@...r.kernel.org, "Benjamin Tissoires" <bentiss@...nel.org>,
"Jiri Kosina" <jikos@...nel.org>, platform-driver-x86@...r.kernel.org,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
"Hans de Goede" <hdegoede@...hat.com>, corentin.chary@...il.com
Subject: Re: [PATCH v4 4/9] platform/x86: asus-armoury: add panel_hd_mode attribute
On Fri, 27 Sep 2024, at 3:17 AM, Mario Limonciello wrote:
> On 9/26/2024 04:29, Luke D. Jones wrote:
> > Add panel_hd_mode to toggle the panel mode between single and high
> > definition modes.
> >
> > Signed-off-by: Luke D. Jones <luke@...nes.dev>
>
> This patch looks good to me.
>
> Reviewed-by: Mario Limonciello <mario.limonciello@....com>
Thank you.
> ---
>
> But that being said; mostly to satisfy my curiosity could you share more
> about what this actually does?
>
> Does it change the EDID exposed in the BIOS in ACPI _DDC? At least for
> AMD platforms that would mean it only works with this patch (which is on
> it's way):
>
> https://lore.kernel.org/amd-gfx/20240918213845.158293-11-mario.limonciello@amd.com/
I don't have access to the hardware so what it does is learned entirely thirdhand. What I do know is that it must be rebooted after and it seems to switch some internal thingy.
"UHD 120Hz and FHD 240Hz modes" is what I gather from reviewing some of Sergei's code in his ghelper project (windows armoury crate replacement).
>
> > ---
> > drivers/platform/x86/asus-armoury.c | 6 +++++-
> > include/linux/platform_data/x86/asus-wmi.h | 1 +
> > 2 files changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c
> > index 39e422b16b8e..15eab4d45b81 100644
> > --- a/drivers/platform/x86/asus-armoury.c
> > +++ b/drivers/platform/x86/asus-armoury.c
> > @@ -106,7 +106,8 @@ static struct kobj_attribute pending_reboot = __ATTR_RO(pending_reboot);
> >
> > static bool asus_bios_requires_reboot(struct kobj_attribute *attr)
> > {
> > - return !strcmp(attr->attr.name, "gpu_mux_mode");
> > + return !strcmp(attr->attr.name, "gpu_mux_mode") ||
> > + !strcmp(attr->attr.name, "panel_hd_mode");
> > }
> >
> > /**
> > @@ -429,6 +430,8 @@ ATTR_GROUP_BOOL_RW(mcu_powersave, "mcu_powersave", ASUS_WMI_DEVID_MCU_POWERSAVE,
> > "Set MCU powersaving mode");
> > ATTR_GROUP_BOOL_RW(panel_od, "panel_overdrive", ASUS_WMI_DEVID_PANEL_OD,
> > "Set the panel refresh overdrive");
> > +ATTR_GROUP_BOOL_RW(panel_hd_mode, "panel_hd_mode", ASUS_WMI_DEVID_PANEL_HD,
> > + "Set the panel HD mode to UHD<0> or FHD<1>");
> > ATTR_GROUP_BOOL_RO(egpu_connected, "egpu_connected", ASUS_WMI_DEVID_EGPU_CONNECTED,
> > "Show the eGPU connection status");
> >
> > @@ -442,6 +445,7 @@ static const struct asus_attr_group armoury_attr_groups[] = {
> > { &boot_sound_attr_group, ASUS_WMI_DEVID_BOOT_SOUND },
> > { &mcu_powersave_attr_group, ASUS_WMI_DEVID_MCU_POWERSAVE },
> > { &panel_od_attr_group, ASUS_WMI_DEVID_PANEL_OD },
> > + { &panel_hd_mode_attr_group, ASUS_WMI_DEVID_PANEL_HD },
> > };
> >
> > static int asus_fw_attr_add(void)
> > diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
> > index 6ea4dedfb85e..7caf2c7ed8c9 100644
> > --- a/include/linux/platform_data/x86/asus-wmi.h
> > +++ b/include/linux/platform_data/x86/asus-wmi.h
> > @@ -73,6 +73,7 @@
> > #define ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY_VIVO 0x00110019
> >
> > /* Misc */
> > +#define ASUS_WMI_DEVID_PANEL_HD 0x0005001C
> > #define ASUS_WMI_DEVID_PANEL_OD 0x00050019
> > #define ASUS_WMI_DEVID_CAMERA 0x00060013
> > #define ASUS_WMI_DEVID_LID_FLIP 0x00060062
>
>
Powered by blists - more mailing lists