* [PATCH v3 1/2] cpufreq: intel_pstate: Replace BYT by ATOM
@ 2015-10-26 9:30 Philippe Longepe
2015-10-26 23:42 ` Rafael J. Wysocki
0 siblings, 1 reply; 3+ messages in thread
From: Philippe Longepe @ 2015-10-26 9:30 UTC (permalink / raw)
To: linux-pm; +Cc: srinivas.pandruvada, Philippe Longepe, Philippe Longepe
From: Philippe Longepe <philippe.longepe@intel.com>
The goal is to support several Atoms architectures.
Signed-off-by: Philippe Longepe <philippe.longepe@linux.intel.com>
---
drivers/cpufreq/intel_pstate.c | 56 +++++++++++++++++++++---------------------
1 file changed, 28 insertions(+), 28 deletions(-)
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index aa33b92..8618b02 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -34,10 +34,10 @@
#include <asm/cpu_device_id.h>
#include <asm/cpufeature.h>
-#define BYT_RATIOS 0x66a
-#define BYT_VIDS 0x66b
-#define BYT_TURBO_RATIOS 0x66c
-#define BYT_TURBO_VIDS 0x66d
+#define ATOM_RATIOS 0x66a
+#define ATOM_VIDS 0x66b
+#define ATOM_TURBO_RATIOS 0x66c
+#define ATOM_TURBO_VIDS 0x66d
#define FRAC_BITS 8
#define int_tofp(X) ((int64_t)(X) << FRAC_BITS)
@@ -502,31 +502,31 @@ static void intel_pstate_hwp_enable(struct cpudata *cpudata)
wrmsrl_on_cpu(cpudata->cpu, MSR_PM_ENABLE, 0x1);
}
-static int byt_get_min_pstate(void)
+static int atom_get_min_pstate(void)
{
u64 value;
- rdmsrl(BYT_RATIOS, value);
+ rdmsrl(ATOM_RATIOS, value);
return (value >> 8) & 0x7F;
}
-static int byt_get_max_pstate(void)
+static int atom_get_max_pstate(void)
{
u64 value;
- rdmsrl(BYT_RATIOS, value);
+ rdmsrl(ATOM_RATIOS, value);
return (value >> 16) & 0x7F;
}
-static int byt_get_turbo_pstate(void)
+static int atom_get_turbo_pstate(void)
{
u64 value;
- rdmsrl(BYT_TURBO_RATIOS, value);
+ rdmsrl(ATOM_TURBO_RATIOS, value);
return value & 0x7F;
}
-static void byt_set_pstate(struct cpudata *cpudata, int pstate)
+static void atom_set_pstate(struct cpudata *cpudata, int pstate)
{
u64 val;
int32_t vid_fp;
@@ -551,10 +551,10 @@ static void byt_set_pstate(struct cpudata *cpudata, int pstate)
wrmsrl_on_cpu(cpudata->cpu, MSR_IA32_PERF_CTL, val);
}
-#define BYT_BCLK_FREQS 5
-static int byt_freq_table[BYT_BCLK_FREQS] = { 833, 1000, 1333, 1167, 800};
+#define ATOM_BCLK_FREQS 5
+static int atom_freq_table[ATOM_BCLK_FREQS] = { 833, 1000, 1333, 1167, 800};
-static int byt_get_scaling(void)
+static int atom_get_scaling(void)
{
u64 value;
int i;
@@ -562,16 +562,16 @@ static int byt_get_scaling(void)
rdmsrl(MSR_FSB_FREQ, value);
i = value & 0x3;
- BUG_ON(i > BYT_BCLK_FREQS);
+ BUG_ON(i > ATOM_BCLK_FREQS);
- return byt_freq_table[i] * 100;
+ return atom_freq_table[i] * 100;
}
-static void byt_get_vid(struct cpudata *cpudata)
+static void atom_get_vid(struct cpudata *cpudata)
{
u64 value;
- rdmsrl(BYT_VIDS, value);
+ rdmsrl(ATOM_VIDS, value);
cpudata->vid.min = int_tofp((value >> 8) & 0x7f);
cpudata->vid.max = int_tofp((value >> 16) & 0x7f);
cpudata->vid.ratio = div_fp(
@@ -579,7 +579,7 @@ static void byt_get_vid(struct cpudata *cpudata)
int_tofp(cpudata->pstate.max_pstate -
cpudata->pstate.min_pstate));
- rdmsrl(BYT_TURBO_VIDS, value);
+ rdmsrl(ATOM_TURBO_VIDS, value);
cpudata->vid.turbo = value & 0x7f;
}
@@ -659,7 +659,7 @@ static struct cpu_defaults core_params = {
},
};
-static struct cpu_defaults byt_params = {
+static struct cpu_defaults atom_params = {
.pid_policy = {
.sample_rate_ms = 10,
.deadband = 0,
@@ -669,12 +669,12 @@ static struct cpu_defaults byt_params = {
.i_gain_pct = 4,
},
.funcs = {
- .get_max = byt_get_max_pstate,
- .get_min = byt_get_min_pstate,
- .get_turbo = byt_get_turbo_pstate,
- .set = byt_set_pstate,
- .get_scaling = byt_get_scaling,
- .get_vid = byt_get_vid,
+ .get_max = atom_get_max_pstate,
+ .get_min = atom_get_min_pstate,
+ .get_turbo = atom_get_turbo_pstate,
+ .set = atom_set_pstate,
+ .get_scaling = atom_get_scaling,
+ .get_vid = atom_get_vid,
},
};
@@ -912,7 +912,7 @@ static void intel_pstate_timer_func(unsigned long __data)
static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
ICPU(0x2a, core_params),
ICPU(0x2d, core_params),
- ICPU(0x37, byt_params),
+ ICPU(0x37, atom_params),
ICPU(0x3a, core_params),
ICPU(0x3c, core_params),
ICPU(0x3d, core_params),
@@ -921,7 +921,7 @@ static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
ICPU(0x45, core_params),
ICPU(0x46, core_params),
ICPU(0x47, core_params),
- ICPU(0x4c, byt_params),
+ ICPU(0x4c, atom_params),
ICPU(0x4e, core_params),
ICPU(0x4f, core_params),
ICPU(0x5e, core_params),
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3 1/2] cpufreq: intel_pstate: Replace BYT by ATOM
2015-10-26 9:30 [PATCH v3 1/2] cpufreq: intel_pstate: Replace BYT by ATOM Philippe Longepe
@ 2015-10-26 23:42 ` Rafael J. Wysocki
2015-10-27 8:01 ` plongepe
0 siblings, 1 reply; 3+ messages in thread
From: Rafael J. Wysocki @ 2015-10-26 23:42 UTC (permalink / raw)
To: Philippe Longepe
Cc: linux-pm@vger.kernel.org, Srinivas Pandruvada, Philippe Longepe
On Mon, Oct 26, 2015 at 10:30 AM, Philippe Longepe
<philippe.longepe@linux.intel.com> wrote:
> From: Philippe Longepe <philippe.longepe@intel.com>
>
> The goal is to support several Atoms architectures.
I guess the point is that all processors from the Atom line (or at
least the majority of them) will use the same rations etc as Baytrail,
right?
> Signed-off-by: Philippe Longepe <philippe.longepe@linux.intel.com>
> ---
> drivers/cpufreq/intel_pstate.c | 56 +++++++++++++++++++++---------------------
> 1 file changed, 28 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index aa33b92..8618b02 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -34,10 +34,10 @@
> #include <asm/cpu_device_id.h>
> #include <asm/cpufeature.h>
>
> -#define BYT_RATIOS 0x66a
> -#define BYT_VIDS 0x66b
> -#define BYT_TURBO_RATIOS 0x66c
> -#define BYT_TURBO_VIDS 0x66d
> +#define ATOM_RATIOS 0x66a
> +#define ATOM_VIDS 0x66b
> +#define ATOM_TURBO_RATIOS 0x66c
> +#define ATOM_TURBO_VIDS 0x66d
>
> #define FRAC_BITS 8
> #define int_tofp(X) ((int64_t)(X) << FRAC_BITS)
> @@ -502,31 +502,31 @@ static void intel_pstate_hwp_enable(struct cpudata *cpudata)
> wrmsrl_on_cpu(cpudata->cpu, MSR_PM_ENABLE, 0x1);
> }
>
> -static int byt_get_min_pstate(void)
> +static int atom_get_min_pstate(void)
> {
> u64 value;
>
> - rdmsrl(BYT_RATIOS, value);
> + rdmsrl(ATOM_RATIOS, value);
> return (value >> 8) & 0x7F;
> }
>
> -static int byt_get_max_pstate(void)
> +static int atom_get_max_pstate(void)
> {
> u64 value;
>
> - rdmsrl(BYT_RATIOS, value);
> + rdmsrl(ATOM_RATIOS, value);
> return (value >> 16) & 0x7F;
> }
>
> -static int byt_get_turbo_pstate(void)
> +static int atom_get_turbo_pstate(void)
> {
> u64 value;
>
> - rdmsrl(BYT_TURBO_RATIOS, value);
> + rdmsrl(ATOM_TURBO_RATIOS, value);
> return value & 0x7F;
> }
>
> -static void byt_set_pstate(struct cpudata *cpudata, int pstate)
> +static void atom_set_pstate(struct cpudata *cpudata, int pstate)
> {
> u64 val;
> int32_t vid_fp;
> @@ -551,10 +551,10 @@ static void byt_set_pstate(struct cpudata *cpudata, int pstate)
> wrmsrl_on_cpu(cpudata->cpu, MSR_IA32_PERF_CTL, val);
> }
>
> -#define BYT_BCLK_FREQS 5
> -static int byt_freq_table[BYT_BCLK_FREQS] = { 833, 1000, 1333, 1167, 800};
> +#define ATOM_BCLK_FREQS 5
> +static int atom_freq_table[ATOM_BCLK_FREQS] = { 833, 1000, 1333, 1167, 800};
>
> -static int byt_get_scaling(void)
> +static int atom_get_scaling(void)
> {
> u64 value;
> int i;
> @@ -562,16 +562,16 @@ static int byt_get_scaling(void)
> rdmsrl(MSR_FSB_FREQ, value);
> i = value & 0x3;
>
> - BUG_ON(i > BYT_BCLK_FREQS);
> + BUG_ON(i > ATOM_BCLK_FREQS);
>
> - return byt_freq_table[i] * 100;
> + return atom_freq_table[i] * 100;
> }
>
> -static void byt_get_vid(struct cpudata *cpudata)
> +static void atom_get_vid(struct cpudata *cpudata)
> {
> u64 value;
>
> - rdmsrl(BYT_VIDS, value);
> + rdmsrl(ATOM_VIDS, value);
> cpudata->vid.min = int_tofp((value >> 8) & 0x7f);
> cpudata->vid.max = int_tofp((value >> 16) & 0x7f);
> cpudata->vid.ratio = div_fp(
> @@ -579,7 +579,7 @@ static void byt_get_vid(struct cpudata *cpudata)
> int_tofp(cpudata->pstate.max_pstate -
> cpudata->pstate.min_pstate));
>
> - rdmsrl(BYT_TURBO_VIDS, value);
> + rdmsrl(ATOM_TURBO_VIDS, value);
> cpudata->vid.turbo = value & 0x7f;
> }
>
> @@ -659,7 +659,7 @@ static struct cpu_defaults core_params = {
> },
> };
>
> -static struct cpu_defaults byt_params = {
> +static struct cpu_defaults atom_params = {
> .pid_policy = {
> .sample_rate_ms = 10,
> .deadband = 0,
> @@ -669,12 +669,12 @@ static struct cpu_defaults byt_params = {
> .i_gain_pct = 4,
> },
> .funcs = {
> - .get_max = byt_get_max_pstate,
> - .get_min = byt_get_min_pstate,
> - .get_turbo = byt_get_turbo_pstate,
> - .set = byt_set_pstate,
> - .get_scaling = byt_get_scaling,
> - .get_vid = byt_get_vid,
> + .get_max = atom_get_max_pstate,
> + .get_min = atom_get_min_pstate,
> + .get_turbo = atom_get_turbo_pstate,
> + .set = atom_set_pstate,
> + .get_scaling = atom_get_scaling,
> + .get_vid = atom_get_vid,
> },
> };
>
> @@ -912,7 +912,7 @@ static void intel_pstate_timer_func(unsigned long __data)
> static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
> ICPU(0x2a, core_params),
> ICPU(0x2d, core_params),
> - ICPU(0x37, byt_params),
> + ICPU(0x37, atom_params),
> ICPU(0x3a, core_params),
> ICPU(0x3c, core_params),
> ICPU(0x3d, core_params),
> @@ -921,7 +921,7 @@ static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
> ICPU(0x45, core_params),
> ICPU(0x46, core_params),
> ICPU(0x47, core_params),
> - ICPU(0x4c, byt_params),
> + ICPU(0x4c, atom_params),
> ICPU(0x4e, core_params),
> ICPU(0x4f, core_params),
> ICPU(0x5e, core_params),
> --
> 1.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v3 1/2] cpufreq: intel_pstate: Replace BYT by ATOM
2015-10-26 23:42 ` Rafael J. Wysocki
@ 2015-10-27 8:01 ` plongepe
0 siblings, 0 replies; 3+ messages in thread
From: plongepe @ 2015-10-27 8:01 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: linux-pm@vger.kernel.org, Srinivas Pandruvada, Philippe Longepe
On 27/10/2015 00:42, Rafael J. Wysocki wrote:
> On Mon, Oct 26, 2015 at 10:30 AM, Philippe Longepe
> <philippe.longepe@linux.intel.com> wrote:
>> From: Philippe Longepe <philippe.longepe@intel.com>
>>
>> The goal is to support several Atoms architectures.
> I guess the point is that all processors from the Atom line (or at
> least the majority of them) will use the same rations etc as Baytrail,
> right?
Yes, the goal is to support all the recent Atom line based on silvermont
(Baytrail), Airmont (CherryTrail) but also newest architectures based on
Goldmont.
>
>> Signed-off-by: Philippe Longepe <philippe.longepe@linux.intel.com>
>> ---
>> drivers/cpufreq/intel_pstate.c | 56 +++++++++++++++++++++---------------------
>> 1 file changed, 28 insertions(+), 28 deletions(-)
>>
>> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
>> index aa33b92..8618b02 100644
>> --- a/drivers/cpufreq/intel_pstate.c
>> +++ b/drivers/cpufreq/intel_pstate.c
>> @@ -34,10 +34,10 @@
>> #include <asm/cpu_device_id.h>
>> #include <asm/cpufeature.h>
>>
>> -#define BYT_RATIOS 0x66a
>> -#define BYT_VIDS 0x66b
>> -#define BYT_TURBO_RATIOS 0x66c
>> -#define BYT_TURBO_VIDS 0x66d
>> +#define ATOM_RATIOS 0x66a
>> +#define ATOM_VIDS 0x66b
>> +#define ATOM_TURBO_RATIOS 0x66c
>> +#define ATOM_TURBO_VIDS 0x66d
>>
>> #define FRAC_BITS 8
>> #define int_tofp(X) ((int64_t)(X) << FRAC_BITS)
>> @@ -502,31 +502,31 @@ static void intel_pstate_hwp_enable(struct cpudata *cpudata)
>> wrmsrl_on_cpu(cpudata->cpu, MSR_PM_ENABLE, 0x1);
>> }
>>
>> -static int byt_get_min_pstate(void)
>> +static int atom_get_min_pstate(void)
>> {
>> u64 value;
>>
>> - rdmsrl(BYT_RATIOS, value);
>> + rdmsrl(ATOM_RATIOS, value);
>> return (value >> 8) & 0x7F;
>> }
>>
>> -static int byt_get_max_pstate(void)
>> +static int atom_get_max_pstate(void)
>> {
>> u64 value;
>>
>> - rdmsrl(BYT_RATIOS, value);
>> + rdmsrl(ATOM_RATIOS, value);
>> return (value >> 16) & 0x7F;
>> }
>>
>> -static int byt_get_turbo_pstate(void)
>> +static int atom_get_turbo_pstate(void)
>> {
>> u64 value;
>>
>> - rdmsrl(BYT_TURBO_RATIOS, value);
>> + rdmsrl(ATOM_TURBO_RATIOS, value);
>> return value & 0x7F;
>> }
>>
>> -static void byt_set_pstate(struct cpudata *cpudata, int pstate)
>> +static void atom_set_pstate(struct cpudata *cpudata, int pstate)
>> {
>> u64 val;
>> int32_t vid_fp;
>> @@ -551,10 +551,10 @@ static void byt_set_pstate(struct cpudata *cpudata, int pstate)
>> wrmsrl_on_cpu(cpudata->cpu, MSR_IA32_PERF_CTL, val);
>> }
>>
>> -#define BYT_BCLK_FREQS 5
>> -static int byt_freq_table[BYT_BCLK_FREQS] = { 833, 1000, 1333, 1167, 800};
>> +#define ATOM_BCLK_FREQS 5
>> +static int atom_freq_table[ATOM_BCLK_FREQS] = { 833, 1000, 1333, 1167, 800};
>>
>> -static int byt_get_scaling(void)
>> +static int atom_get_scaling(void)
>> {
>> u64 value;
>> int i;
>> @@ -562,16 +562,16 @@ static int byt_get_scaling(void)
>> rdmsrl(MSR_FSB_FREQ, value);
>> i = value & 0x3;
>>
>> - BUG_ON(i > BYT_BCLK_FREQS);
>> + BUG_ON(i > ATOM_BCLK_FREQS);
>>
>> - return byt_freq_table[i] * 100;
>> + return atom_freq_table[i] * 100;
>> }
>>
>> -static void byt_get_vid(struct cpudata *cpudata)
>> +static void atom_get_vid(struct cpudata *cpudata)
>> {
>> u64 value;
>>
>> - rdmsrl(BYT_VIDS, value);
>> + rdmsrl(ATOM_VIDS, value);
>> cpudata->vid.min = int_tofp((value >> 8) & 0x7f);
>> cpudata->vid.max = int_tofp((value >> 16) & 0x7f);
>> cpudata->vid.ratio = div_fp(
>> @@ -579,7 +579,7 @@ static void byt_get_vid(struct cpudata *cpudata)
>> int_tofp(cpudata->pstate.max_pstate -
>> cpudata->pstate.min_pstate));
>>
>> - rdmsrl(BYT_TURBO_VIDS, value);
>> + rdmsrl(ATOM_TURBO_VIDS, value);
>> cpudata->vid.turbo = value & 0x7f;
>> }
>>
>> @@ -659,7 +659,7 @@ static struct cpu_defaults core_params = {
>> },
>> };
>>
>> -static struct cpu_defaults byt_params = {
>> +static struct cpu_defaults atom_params = {
>> .pid_policy = {
>> .sample_rate_ms = 10,
>> .deadband = 0,
>> @@ -669,12 +669,12 @@ static struct cpu_defaults byt_params = {
>> .i_gain_pct = 4,
>> },
>> .funcs = {
>> - .get_max = byt_get_max_pstate,
>> - .get_min = byt_get_min_pstate,
>> - .get_turbo = byt_get_turbo_pstate,
>> - .set = byt_set_pstate,
>> - .get_scaling = byt_get_scaling,
>> - .get_vid = byt_get_vid,
>> + .get_max = atom_get_max_pstate,
>> + .get_min = atom_get_min_pstate,
>> + .get_turbo = atom_get_turbo_pstate,
>> + .set = atom_set_pstate,
>> + .get_scaling = atom_get_scaling,
>> + .get_vid = atom_get_vid,
>> },
>> };
>>
>> @@ -912,7 +912,7 @@ static void intel_pstate_timer_func(unsigned long __data)
>> static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
>> ICPU(0x2a, core_params),
>> ICPU(0x2d, core_params),
>> - ICPU(0x37, byt_params),
>> + ICPU(0x37, atom_params),
>> ICPU(0x3a, core_params),
>> ICPU(0x3c, core_params),
>> ICPU(0x3d, core_params),
>> @@ -921,7 +921,7 @@ static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
>> ICPU(0x45, core_params),
>> ICPU(0x46, core_params),
>> ICPU(0x47, core_params),
>> - ICPU(0x4c, byt_params),
>> + ICPU(0x4c, atom_params),
>> ICPU(0x4e, core_params),
>> ICPU(0x4f, core_params),
>> ICPU(0x5e, core_params),
>> --
>> 1.9.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pm" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-10-27 8:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-26 9:30 [PATCH v3 1/2] cpufreq: intel_pstate: Replace BYT by ATOM Philippe Longepe
2015-10-26 23:42 ` Rafael J. Wysocki
2015-10-27 8:01 ` plongepe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).