lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <44ee0740-b47b-0980-e5c7-27cb94a772d9@linux.intel.com>
Date: Fri, 28 Mar 2025 17:05:56 +0200 (EET)
From: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>
To: Kurt Borja <kuurtb@...il.com>
cc: Armin Wolf <W_Armin@....de>, Hans de Goede <hdegoede@...hat.com>, 
    platform-driver-x86@...r.kernel.org, Dell.Client.Kernel@...l.com, 
    LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v6 06/12] platform/x86: alienware-wmi-wmax: Add support
 for the "custom" thermal profile

On Thu, 13 Mar 2025, Kurt Borja wrote:

> All models with the "AWCC" WMAX device support a "custom" thermal
> profile. In some models this profile signals user-space that the user
> wants to manually control the fans, which are always unlocked. In other
> models it actually unlocks manual fan control.
> 
> Reviewed-by: Armin Wolf <W_Armin@....de>
> Signed-off-by: Kurt Borja <kuurtb@...il.com>

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>

-- 
 i.

> ---
>  drivers/platform/x86/dell/alienware-wmi-wmax.c | 23 +++++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/platform/x86/dell/alienware-wmi-wmax.c b/drivers/platform/x86/dell/alienware-wmi-wmax.c
> index 0530f25b956f73f47c0354f40dac2910448c894e..3b37e4456482bc284b8e867c1c5b6255fc6c8ef2 100644
> --- a/drivers/platform/x86/dell/alienware-wmi-wmax.c
> +++ b/drivers/platform/x86/dell/alienware-wmi-wmax.c
> @@ -29,8 +29,6 @@
>  #define AWCC_METHOD_THERMAL_CONTROL		0x15
>  #define AWCC_METHOD_GAME_SHIFT_STATUS		0x25
>  
> -#define AWCC_THERMAL_MODE_GMODE			0xAB
> -
>  #define AWCC_FAILURE_CODE			0xFFFFFFFF
>  #define AWCC_FAILURE_CODE_2			0xFFFFFFFE
>  #define AWCC_THERMAL_TABLE_MASK			GENMASK(7, 4)
> @@ -177,6 +175,11 @@ enum AWCC_THERMAL_TABLES {
>  	AWCC_THERMAL_TABLE_USTT			= 0xA,
>  };
>  
> +enum AWCC_SPECIAL_THERMAL_CODES {
> +	AWCC_SPECIAL_PROFILE_CUSTOM		= 0x00,
> +	AWCC_SPECIAL_PROFILE_GMODE		= 0xAB,
> +};
> +
>  enum awcc_thermal_profile {
>  	AWCC_PROFILE_USTT_BALANCED,
>  	AWCC_PROFILE_USTT_BALANCED_PERFORMANCE,
> @@ -589,9 +592,15 @@ static int awcc_platform_profile_get(struct device *dev,
>  	if (ret)
>  		return ret;
>  
> -	if (out_data == AWCC_THERMAL_MODE_GMODE) {
> +	switch (out_data) {
> +	case AWCC_SPECIAL_PROFILE_CUSTOM:
> +		*profile = PLATFORM_PROFILE_CUSTOM;
> +		return 0;
> +	case AWCC_SPECIAL_PROFILE_GMODE:
>  		*profile = PLATFORM_PROFILE_PERFORMANCE;
>  		return 0;
> +	default:
> +		break;
>  	}
>  
>  	if (!is_awcc_thermal_profile_id(out_data))
> @@ -679,11 +688,17 @@ static int awcc_platform_profile_probe(void *drvdata, unsigned long *choices)
>  
>  	if (awcc->gmode) {
>  		priv->supported_profiles[PLATFORM_PROFILE_PERFORMANCE] =
> -			AWCC_THERMAL_MODE_GMODE;
> +			AWCC_SPECIAL_PROFILE_GMODE;
>  
>  		__set_bit(PLATFORM_PROFILE_PERFORMANCE, choices);
>  	}
>  
> +	/* Every model supports the "custom" profile */
> +	priv->supported_profiles[PLATFORM_PROFILE_CUSTOM] =
> +		AWCC_SPECIAL_PROFILE_CUSTOM;
> +
> +	__set_bit(PLATFORM_PROFILE_CUSTOM, choices);
> +
>  	return 0;
>  }
>  
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ