Skip to content

Commit

Permalink
intel_pstate: Remove extra conversions in pid calculation
Browse files Browse the repository at this point in the history
pid->setpoint and pid->deadband can be initialized in fixed point, so we
can avoid the int_tofp in pid_calc.

Signed-off-by: Philippe Longepe <philippe.longepe@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Philippe Longepe authored and Rafael J. Wysocki committed Mar 10, 2016
1 parent a5acbfb commit b54a0df
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/cpufreq/intel_pstate.c
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,8 @@ static struct perf_limits *limits = &powersave_limits;

static inline void pid_reset(struct _pid *pid, int setpoint, int busy,
int deadband, int integral) {
pid->setpoint = setpoint;
pid->deadband = deadband;
pid->setpoint = int_tofp(setpoint);
pid->deadband = int_tofp(deadband);
pid->integral = int_tofp(integral);
pid->last_err = int_tofp(setpoint) - int_tofp(busy);
}
Expand All @@ -225,9 +225,9 @@ static signed int pid_calc(struct _pid *pid, int32_t busy)
int32_t pterm, dterm, fp_error;
int32_t integral_limit;

fp_error = int_tofp(pid->setpoint) - busy;
fp_error = pid->setpoint - busy;

if (abs(fp_error) <= int_tofp(pid->deadband))
if (abs(fp_error) <= pid->deadband)
return 0;

pterm = mul_fp(pid->p_gain, fp_error);
Expand Down

0 comments on commit b54a0df

Please sign in to comment.