Messages in this thread | | | Subject | Re: [PATCH v2] platform/x86: hp-wmi: add support for thermal policy | From | Hans de Goede <> | Date | Wed, 7 Oct 2020 16:02:07 +0200 |
| |
Hi,
On 10/5/20 10:57 AM, Andy Shevchenko wrote: > On Mon, Oct 5, 2020 at 12:14 AM Elia Devito <eliadevito@gmail.com> wrote: >> >> HP Spectre notebooks (and probably other model as well) >> support up to 4 thermal policy: >> - HP Recommended >> - Performance >> - Cool >> - Quiet >> >> at least on HP Spectre x360 Convertible 15-df0xxx the firmware sets the >> thermal policy to default but hardcode the odvp0 variable to 1, this causes >> thermald to choose the wrong DPTF profile witch result in low performance >> when notebook is on AC, calling thermal policy write command allow firmware >> to correctly set the odvp0 variable. >> >> Signed-off-by: Elia Devito <eliadevito@gmail.com> >> --- >> drivers/platform/x86/hp-wmi.c | 23 +++++++++++++++++++++++ >> 1 file changed, 23 insertions(+) >> >> diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c >> index 1762f335bac9..6e448a79caee 100644 >> --- a/drivers/platform/x86/hp-wmi.c >> +++ b/drivers/platform/x86/hp-wmi.c >> @@ -81,6 +81,7 @@ enum hp_wmi_commandtype { >> HPWMI_FEATURE2_QUERY = 0x0d, >> HPWMI_WIRELESS2_QUERY = 0x1b, >> HPWMI_POSTCODEERROR_QUERY = 0x2a, > >> + HPWMI_THERMAL_POLICY_QUERY = 0x4c > > Usually we leave a comma that next change won't add any unnecessary churn. > I don't think this comment requires a v2 right now (may be satisfied > when applied), but if any other comments come and need to be > addressed, then this should be included as well.
I've fixed this up while applying this to my review-hans branch, so there is no need to send out a new version.
Elia, Thank you for your patch, I've applied this patch to me review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans
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
> >> }; >> >> enum hp_wmi_command { >> @@ -861,6 +862,26 @@ static int __init hp_wmi_rfkill2_setup(struct platform_device *device) >> return err; >> } >> >> +static int thermal_policy_setup(struct platform_device *device) >> +{ >> + int err, tp; >> + >> + tp = hp_wmi_read_int(HPWMI_THERMAL_POLICY_QUERY); >> + if (tp < 0) >> + return tp; >> + >> + /* >> + * call thermal policy write command to ensure that the firmware correctly >> + * sets the OEM variables for the DPTF >> + */ >> + err = hp_wmi_perform_query(HPWMI_THERMAL_POLICY_QUERY, HPWMI_WRITE, &tp, >> + sizeof(tp), 0); >> + if (err) >> + return err; >> + >> + return 0; >> +} >> + >> static int __init hp_wmi_bios_setup(struct platform_device *device) >> { >> /* clear detected rfkill devices */ >> @@ -872,6 +893,8 @@ static int __init hp_wmi_bios_setup(struct platform_device *device) >> if (hp_wmi_rfkill_setup(device)) >> hp_wmi_rfkill2_setup(device); >> >> + thermal_policy_setup(device); >> + >> return 0; >> } >> >> -- >> 2.26.2 >> > >
| |