[v2] thermal: intel_powerclamp: Return last requested state as cur_state

Message ID 20230204042902.2555347-1-srinivas.pandruvada@linux.intel.com
State New
Headers
Series [v2] thermal: intel_powerclamp: Return last requested state as cur_state |

Commit Message

srinivas pandruvada Feb. 4, 2023, 4:29 a.m. UTC
  When the user is reading cur_state from the thermal cooling device for
Intel powerclamp device:
- It returns the idle ratio from Package C-state counters when
there is active idle injection session.
- -1, when there is no active idle injection session.

This information is not very useful as the package C-state counters vary
a lot from read to read. Instead just return the last requested cur_state.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
v2:
Fixed setting of *state

 drivers/thermal/intel/intel_powerclamp.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)
  

Comments

Rafael J. Wysocki Feb. 7, 2023, 7:54 p.m. UTC | #1
On Sat, Feb 4, 2023 at 5:29 AM Srinivas Pandruvada
<srinivas.pandruvada@linux.intel.com> wrote:
>
> When the user is reading cur_state from the thermal cooling device for
> Intel powerclamp device:
> - It returns the idle ratio from Package C-state counters when
> there is active idle injection session.
> - -1, when there is no active idle injection session.
>
> This information is not very useful as the package C-state counters vary
> a lot from read to read. Instead just return the last requested cur_state.
>
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> ---
> v2:
> Fixed setting of *state
>
>  drivers/thermal/intel/intel_powerclamp.c | 12 +-----------
>  1 file changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c
> index 5f54c88b1977..0282503ecaaf 100644
> --- a/drivers/thermal/intel/intel_powerclamp.c
> +++ b/drivers/thermal/intel/intel_powerclamp.c
> @@ -539,17 +539,7 @@ static int powerclamp_get_cur_state(struct thermal_cooling_device *cdev,
>                                  unsigned long *state)
>  {
>         mutex_lock(&powerclamp_lock);
> -
> -       if (powerclamp_data.clamping) {
> -               if (poll_pkg_cstate_enable)
> -                       *state = pkg_cstate_ratio_cur;
> -               else
> -                       *state = powerclamp_data.target_ratio;
> -       } else {
> -               /* to save power, do not poll idle ratio while not clamping */
> -               *state = -1; /* indicates invalid state */
> -       }
> -
> +       *state = powerclamp_data.target_ratio;
>         mutex_unlock(&powerclamp_lock);
>
>         return 0;
> --

Applied as 6.3 material, thanks!
  

Patch

diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c
index 5f54c88b1977..0282503ecaaf 100644
--- a/drivers/thermal/intel/intel_powerclamp.c
+++ b/drivers/thermal/intel/intel_powerclamp.c
@@ -539,17 +539,7 @@  static int powerclamp_get_cur_state(struct thermal_cooling_device *cdev,
 				 unsigned long *state)
 {
 	mutex_lock(&powerclamp_lock);
-
-	if (powerclamp_data.clamping) {
-		if (poll_pkg_cstate_enable)
-			*state = pkg_cstate_ratio_cur;
-		else
-			*state = powerclamp_data.target_ratio;
-	} else {
-		/* to save power, do not poll idle ratio while not clamping */
-		*state = -1; /* indicates invalid state */
-	}
-
+	*state = powerclamp_data.target_ratio;
 	mutex_unlock(&powerclamp_lock);
 
 	return 0;