platform/x86: ISST: Allow reading core-power state on HWP disabled systems

Message ID 20240229002659.1416623-1-srinivas.pandruvada@linux.intel.com
State New
Headers
Series platform/x86: ISST: Allow reading core-power state on HWP disabled systems |

Commit Message

srinivas pandruvada Feb. 29, 2024, 12:26 a.m. UTC
  When HWP (Hardware P-states) is disabled, dynamic SST features are
disabled. But user should still be able to read the current core-power
state, with legacy P-states. This will allow users to read current
configuration with static SST enabled from BIOS.

To address this, do not call disable_dynamic_sst_features() when the
request is for reading the state.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
 drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Ilpo Järvinen Feb. 29, 2024, 12:32 p.m. UTC | #1
On Wed, 28 Feb 2024, Srinivas Pandruvada wrote:

> When HWP (Hardware P-states) is disabled, dynamic SST features are
> disabled. But user should still be able to read the current core-power
> state, with legacy P-states. This will allow users to read current
> configuration with static SST enabled from BIOS.
> 
> To address this, do not call disable_dynamic_sst_features() when the
> request is for reading the state.
> 
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>

Is this a fix? (It's lacking the tag if it is).
  
srinivas pandruvada Feb. 29, 2024, 3:11 p.m. UTC | #2
On Thu, 2024-02-29 at 14:32 +0200, Ilpo Järvinen wrote:
> On Wed, 28 Feb 2024, Srinivas Pandruvada wrote:
> 
> > When HWP (Hardware P-states) is disabled, dynamic SST features are
> > disabled. But user should still be able to read the current core-
> > power
> > state, with legacy P-states. This will allow users to read current
> > configuration with static SST enabled from BIOS.
> > 
> > To address this, do not call disable_dynamic_sst_features() when
> > the
> > request is for reading the state.
> > 
> > Signed-off-by: Srinivas Pandruvada
> > <srinivas.pandruvada@linux.intel.com>
> 
> Is this a fix? (It's lacking the tag if it is).
This is not a fix. This is a feature request from a customer.
Some customer wants to use in certain way.

Thanks,
Srinivas

>
  
Kuppuswamy Sathyanarayanan Feb. 29, 2024, 9:18 p.m. UTC | #3
On 2/28/24 4:26 PM, Srinivas Pandruvada wrote:
> When HWP (Hardware P-states) is disabled, dynamic SST features are
> disabled. But user should still be able to read the current core-power
> state, with legacy P-states. This will allow users to read current
> configuration with static SST enabled from BIOS.
>
> To address this, do not call disable_dynamic_sst_features() when the
> request is for reading the state.
>
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> ---

Looks good to me.

Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>

>  drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> index 2662fbbddf0c..1d918000d72b 100644
> --- a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> +++ b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> @@ -462,10 +462,10 @@ static long isst_if_core_power_state(void __user *argp)
>  	struct tpmi_per_power_domain_info *power_domain_info;
>  	struct isst_core_power core_power;
>  
> -	if (disable_dynamic_sst_features())
> +	if (copy_from_user(&core_power, argp, sizeof(core_power)))
>  		return -EFAULT;
>  
> -	if (copy_from_user(&core_power, argp, sizeof(core_power)))
> +	if (core_power.get_set && disable_dynamic_sst_features())
>  		return -EFAULT;
>  
>  	power_domain_info = get_instance(core_power.socket_id, core_power.power_domain_id);
  
Ilpo Järvinen March 4, 2024, 1:17 p.m. UTC | #4
On Wed, 28 Feb 2024 16:26:59 -0800, Srinivas Pandruvada wrote:

> When HWP (Hardware P-states) is disabled, dynamic SST features are
> disabled. But user should still be able to read the current core-power
> state, with legacy P-states. This will allow users to read current
> configuration with static SST enabled from BIOS.
> 
> To address this, do not call disable_dynamic_sst_features() when the
> request is for reading the state.
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo branch. Note it will show up in the public
platform-drivers-x86/review-ilpo branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/1] platform/x86: ISST: Allow reading core-power state on HWP disabled systems
      commit: 959e640cf7b2d456052b346fa50574242ca56aaa

--
 i.
  

Patch

diff --git a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
index 2662fbbddf0c..1d918000d72b 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
@@ -462,10 +462,10 @@  static long isst_if_core_power_state(void __user *argp)
 	struct tpmi_per_power_domain_info *power_domain_info;
 	struct isst_core_power core_power;
 
-	if (disable_dynamic_sst_features())
+	if (copy_from_user(&core_power, argp, sizeof(core_power)))
 		return -EFAULT;
 
-	if (copy_from_user(&core_power, argp, sizeof(core_power)))
+	if (core_power.get_set && disable_dynamic_sst_features())
 		return -EFAULT;
 
 	power_domain_info = get_instance(core_power.socket_id, core_power.power_domain_id);