lkml.org 
[lkml]   [2022]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] asus-wmi: Increase FAN_CURVE_BUF_LEN to 32
On Sun, Aug 28, 2022 at 07:46:38PM +1200, Luke D. Jones wrote:
> Fix for TUF laptops returning with an -ENOSPC on calling
> asus_wmi_evaluate_method_buf() when fetching default curves. The TUF method
> requires at least 32 bytes space.
>
> This also moves and changes the pr_debug() in fan_curve_check_present() to
> pr_warn() in fan_curve_get_factory_default() so that there is at least some
> indication in logs of why it fails.
>
> Signed-off-by: Luke D. Jones <luke@ljones.dev>
> ---
> drivers/platform/x86/asus-wmi.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index 3d9fd58573f9..11203213e00d 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -108,7 +108,7 @@ module_param(fnlock_default, bool, 0444);
> #define WMI_EVENT_MASK 0xFFFF
>
> #define FAN_CURVE_POINTS 8
> -#define FAN_CURVE_BUF_LEN (FAN_CURVE_POINTS * 2)
> +#define FAN_CURVE_BUF_LEN 32
> #define FAN_CURVE_DEV_CPU 0x00
> #define FAN_CURVE_DEV_GPU 0x01
> /* Mask to determine if setting temperature or percentage */
> @@ -2383,8 +2383,10 @@ static int fan_curve_get_factory_default(struct asus_wmi *asus, u32 fan_dev)
> curves = &asus->custom_fan_curves[fan_idx];
> err = asus_wmi_evaluate_method_buf(asus->dsts_id, fan_dev, mode, buf,
> FAN_CURVE_BUF_LEN);
> - if (err)
> + if (err) {
> + pr_warn("%s (0x%08x) failed: %d\n", __func__, fan_dev, err);
> return err;
> + }
>
> fan_curve_copy_from_buf(curves, buf);
> curves->device_id = fan_dev;
> @@ -2402,9 +2404,6 @@ static int fan_curve_check_present(struct asus_wmi *asus, bool *available,
>
> err = fan_curve_get_factory_default(asus, fan_dev);
> if (err) {
> - pr_debug("fan_curve_get_factory_default(0x%08x) failed: %d\n",
> - fan_dev, err);
> - /* Don't cause probe to fail on devices without fan-curves */

The pr_warn() should be here. If you want to have a message from the call
in fan_curve_enable_store(), add dev_err() there.

Guenter

> return 0;
> }
>

\
 
 \ /
  Last update: 2022-08-29 15:37    [W:0.055 / U:3.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site