]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
intel_pstate: Remove extra conversions in pid calculation
authorPhilippe Longepe <philippe.longepe@linux.intel.com>
Tue, 8 Mar 2016 09:31:14 +0000 (10:31 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 10 Mar 2016 23:04:42 +0000 (00:04 +0100)
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>
drivers/cpufreq/intel_pstate.c

index 23bb798d0cd240bdd3c535fad98cb20a001580f1..864214de5cdf55f1824444c32839bb0dfabb861f 100644 (file)
@@ -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);
 }
@@ -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);