Message ID | 20191104213907.18413-1-leonmaxx@gmail.com (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | asus_wmi: Support of ASUS TUF laptops on Ryzen CPUs | expand |
On Mon, Nov 4, 2019 at 11:39 PM Leonid Maksymchuk <leonmaxx@gmail.com> wrote: > > Set default fan boost mode to normal for multiple reasons: > > 1) existing code assumes that laptop started in normal mode and that is > not always correct. > 2) FX705DY/FX505DY starts in silent mode and under heavy CPU load it > overheats and drops CPU frequency to 399MHz [1]. Setting fan mode to > normal avoids overheating. > > [1] Link: https://bugzilla.kernel.org/show_bug.cgi?id=203733 > > Signed-off-by: Leonid Maksymchuk <leonmaxx@gmail.com> > +static int fan_boost_mode_set_default(struct asus_wmi *asus) > +{ > + int result = 0; > + > + if (asus->fan_boost_mode_available) { > + asus->fan_boost_mode = ASUS_FAN_BOOST_MODE_NORMAL; > + result = fan_boost_mode_write(asus); > + } > + > + return result; > +} This can be refactored if (!foo) return 0; ... return bar(asus);
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c index f4e5840..70c5fbb 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -1674,6 +1674,18 @@ static int fan_boost_mode_write(struct asus_wmi *asus) return 0; } +static int fan_boost_mode_set_default(struct asus_wmi *asus) +{ + int result = 0; + + if (asus->fan_boost_mode_available) { + asus->fan_boost_mode = ASUS_FAN_BOOST_MODE_NORMAL; + result = fan_boost_mode_write(asus); + } + + return result; +} + static int fan_boost_mode_switch_next(struct asus_wmi *asus) { u8 mask = asus->fan_boost_mode_mask; @@ -2450,6 +2462,7 @@ static int asus_wmi_add(struct platform_device *pdev) err = fan_boost_mode_check_present(asus); if (err) goto fail_fan_boost_mode; + fan_boost_mode_set_default(asus); err = asus_wmi_sysfs_init(asus->platform_device); if (err)
Set default fan boost mode to normal for multiple reasons: 1) existing code assumes that laptop started in normal mode and that is not always correct. 2) FX705DY/FX505DY starts in silent mode and under heavy CPU load it overheats and drops CPU frequency to 399MHz [1]. Setting fan mode to normal avoids overheating. [1] Link: https://bugzilla.kernel.org/show_bug.cgi?id=203733 Signed-off-by: Leonid Maksymchuk <leonmaxx@gmail.com> --- drivers/platform/x86/asus-wmi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)