aboutsummaryrefslogtreecommitdiff
path: root/drivers/cpufreq/intel_pstate.c
AgeCommit message (Collapse)AuthorFilesLines
2015-05-12intel_pstate: set BYT MSR with wrmsrl_on_cpu()Joe Konno1-1/+1
Commit 007bea098b86 (intel_pstate: Add setting voltage value for baytrail P states.) introduced byt_set_pstate() with the assumption that it would always be run by the CPU whose MSR is to be written by it. It turns out, however, that is not always the case in practice, so modify byt_set_pstate() to enforce the MSR write done by it to always happen on the right CPU. Fixes: 007bea098b86 (intel_pstate: Add setting voltage value for baytrail P states.) Signed-off-by: Joe Konno <[email protected]> Acked-by: Kristen Carlson Accardi <[email protected]> Cc: 3.14+ <[email protected]> # 3.14+ Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-05-05intel_pstate: Add tsc collection and keep previous target pstateDoug Smythies1-10/+21
The intel_pstate driver is difficult to debug and investigate without tsc. Also, it is likely use of tsc, and some version of C0 percentage, will be re-introdcued in futute. There have also been occasions where it is desirebale to know, and confirm, the previous target pstate. This patch brings back tsc, adds previous target pstate, and adds both to the trace data collection. Signed-off-by: Doug Smythies <[email protected]> Acked-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-04-15cpufreq: intel_pstate: Fix an annoying !CONFIG_SMP warningBorislav Petkov1-6/+6
I keep seeing drivers/cpufreq/intel_pstate.c: In function ‘intel_pstate_init’: drivers/cpufreq/intel_pstate.c:1187:26: warning: initialization from incompatible pointer type struct cpuinfo_x86 *c = &boot_cpu_data; when doing randconfig builds. This is caused by the fact that when !CONFIG_SMP, asm/processor.h defines cpu_info to boot_cpu_data and the local variable struct cpu_defaults *cpu_info overshadows it leading to this unfortunate assignment in the preprocessed source: struct cpu_defaults *boot_cpu_data; struct cpuinfo_x86 *c = &boot_cpu_data; Rename the local variable and use static_cpu_has_safe() which alleviates the need for defining a local cpuinfo_x86 pointer. Signed-off-by: Borislav Petkov <[email protected]> Acked-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-04-15intel_pstate: Change the setpoint for Atom paramsKristen Carlson Accardi1-1/+1
Change the setpoint for the Baytrail and Cherrytrail CPUs. This will cause more aggressive pstate selection and improves performance on a variety of workloads with little power penalty. Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-04-11intel_pstate: Knights Landing supportDasaratharaman Chandramouli1-0/+31
1. Add Knights Landing (KNL) CPUID to the list of CPUIDs supported by the intel_pstate driver. 2. Add a new cpu_default structure for KNL since KNL has a slightly different mechanism to get turbo pstates from MSRs. Signed-off-by: Dasaratharaman Chandramouli <[email protected]> Signed-off-by: Kristen Carlson Accardi <[email protected]> [ rjw: Subject and changelog ] Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-04-11intel_pstate: remove MSR testKristen Carlson Accardi1-14/+0
x86_match_cpu will not match our cpuid unless APERF/MPERF flag is set, so there is no need to do the manual check for this MSR. Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-02-06intel_pstate: provide option to only use intel_pstate with HWPKristen Carlson Accardi1-0/+6
Allow users the option to disable the driver for any hardware which does not support HWP. Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-01-30intel_pstate: honor user space min_perf_pct override on resumeKristen Carlson Accardi1-3/+11
If the user has requested an override of the min_perf_pct via sysfs, then it should be restored whenever policy is updated, such as on resume. Take the max of whatever the user requested and whatever the policy is. Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-01-30intel_pstate: respect cpufreq policy requestSrinivas Pandruvada1-1/+2
When thermal or other subsystem requests to change the policy, use that irrepective of whether cpufreq policy is PERFORMANCE or not. Without this change, when thermal subsystem passive policy wants to reduce performance, it still runs at 100%. Signed-off-by: Srinivas Pandruvada <[email protected]> Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-01-30intel_pstate: Add num_pstates to sysfsKristen Carlson Accardi1-0/+13
Add a sysfs interface to display the total number of supported pstates. This value is independent of whether turbo has been enabled or disabled. Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-01-30intel_pstate: expose turbo range to sysfsKristen Carlson Accardi1-0/+18
This patch adds "turbo_pct" to the intel_pstate sysfs interface. turbo_pct will display the percentage of the total supported pstates that are in the turbo range. This value is independent of whether turbo has been disabled or not. Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2015-01-30intel_pstate: Add support for SkyLakeKristen Carlson Accardi1-0/+1
Add SKL cpuid. Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-12-11intel_pstate: Add a few commentsKristen Carlson Accardi1-1/+31
Add a few comments in the code which calculates busyness to clarify parts of the algorithm. Signed-off-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-12-11intel_pstate: add kernel parameter to force loadingEthan Zhao1-1/+5
To force loading on Oracle Sun X86 servers, provide one kernel command line parameter intel_pstate = force For those who are aware of the risk of no power capping capabily working and try to get better performance with this driver. Signed-off-by: Ethan Zhao <[email protected]> Tested-by: Alexey Kodanev <[email protected]> Reviewed-by: Linda Knippers <[email protected]> Acked-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-12-03intel_pstate: skip this driver if Sun server has _PPC methodethan zhao1-4/+41
Oracle Sun X86 servers have dynamic power capping capability that works via ACPI _PPC method etc, so skip loading this driver if Sun server has ACPI _PPC enabled. Signed-off-by: Ethan Zhao <[email protected]> Tested-by: Linda Knippers <[email protected]> Acked-by: Kristen Carlson Accardi <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-11-12intel_pstate: Add CPUID for BDW-H CPUDirk Brandewie1-0/+1
Add BDW-H to the list of supported processors. Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-11-12intel_pstate: Add support for HWPDirk Brandewie1-2/+98
Add support of Hardware Managed Performance States (HWP) described in Volume 3 section 14.4 of the SDM. With HWP enbaled intel_pstate will no longer be responsible for selecting P states for the processor. intel_pstate will continue to register to the cpufreq core as the scaling driver for CPUs implementing HWP. In HWP mode intel_pstate provides three functions reporting frequency to the cpufreq core, support for the set_policy() interface from the core and maintaining the intel_pstate sysfs interface in /sys/devices/system/cpu/intel_pstate. User preferences expressed via the set_policy() interface or the sysfs interface are forwared to the CPU via the HWP MSR interface. Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-10-23intel_pstate: Correct BYT VID values.Dirk Brandewie1-1/+12
Using a VID value that is not high enough for the requested P state can cause machine checks. Add a ceiling function to ensure calulated VIDs with fractional values are set to the next highest integer VID value. The algorythm for calculating the non-trubo VID from the BIOS writers guide is: vid_ratio = (vid_max - vid_min) / (max_pstate - min_pstate) vid = ceiling(vid_min + (req_pstate - min_pstate) * vid_ratio) Cc: All applicable <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-10-23intel_pstate: Fix BYT frequency reportingDirk Brandewie1-6/+36
BYT has a different conversion from P state to frequency than the core processors. This causes the min/max and current frequency to be misreported on some BYT SKUs. Tested on BYT N2820, Ivybridge and Haswell processors. Link: https://bugzilla.yoctoproject.org/show_bug.cgi?id=6663 Cc: All applicable <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-10-23intel_pstate: Don't lose sysfs settings during cpu offlineDirk Brandewie1-3/+3
The user may have custom settings don't destroy them during suspend. Link: https://bugzilla.kernel.org/show_bug.cgi?id=80651 Reported-by: Tobias Jakobi <[email protected]> Cc: All applicable <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-10-23cpufreq: intel_pstate: Reflect current no_turbo state correctlyGabriele Mazzotta1-12/+36
Some BIOSes modify the state of MSR_IA32_MISC_ENABLE_TURBO_DISABLE based on the current power source for the system battery AC vs battery. Reflect the correct current state and ability to modify the no_turbo sysfs file based on current state of MSR_IA32_MISC_ENABLE_TURBO_DISABLE. Link: https://bugzilla.kernel.org/show_bug.cgi?id=83151 Cc: All applicable <[email protected]> Signed-off-by: Gabriele Mazzotta <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-10-23cpufreq: intel_pstate: Fix setting max_perf_pct in performance policyPali Rohár1-0/+1
Code which changes policy to powersave changes also max_policy_pct based on max_freq. Code which change max_perf_pct has upper limit base on value max_policy_pct. When policy is changing from powersave back to performance then max_policy_pct is not changed. Which means that changing max_perf_pct is not possible to high values if max_freq was too low in powersave policy. Test case: $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 800000 $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 3300000 $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor performance $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct 100 $ echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor $ echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq $ echo 20 > /sys/devices/system/cpu/intel_pstate/max_perf_pct $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 800000 $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct 20 $ echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor $ echo 3300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq $ echo 100 > /sys/devices/system/cpu/intel_pstate/max_perf_pct $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor performance $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 3300000 $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct 24 And now intel_pstate driver allows to set maximal value for max_perf_pct based on max_policy_pct which is 24 for previous powersave max_freq 800000. This patch will set default value for max_policy_pct when setting policy to performance so it will allow to set also max value for max_perf_pct. Signed-off-by: Pali Rohár <[email protected]> Cc: All applicable <[email protected]> Acked-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-09-03cpufreq: intel_pstate: Remove unneeded variableGabriele Mazzotta1-4/+0
It should have been removed with commit d1b6848590af ("cpufreq / intel_pstate: Optimize intel_pstate_set_policy") Signed-off-by: Gabriele Mazzotta <[email protected]> Acked-by: Viresh Kumar <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-08-28cpufreq: intel_pstate: Add CPU ID for Braswell processorMika Westerberg1-0/+1
This is pretty much the same as Intel Baytrail, only the CPU ID is different. Add the new ID to the supported CPU list. Signed-off-by: Mika Westerberg <[email protected]> Acked-by: Viresh Kumar <[email protected]> Acked-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-08-28intel_pstate: Turn per cpu printk into pr_debugAndi Kleen1-1/+1
On larger systems intel_pstate currently spams the boot up log with its "Intel pstate controlling ..." message for each CPU. It's the only subsystem that prints a message for each CPU. Turn the message into a pr_debug. Signed-off-by: Andi Kleen <[email protected]> Acked-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Remove core_pct roundingStratos Karafotis1-5/+1
The specific rounding adds conditionally only 1/256 to fractional part of core_pct. We can safely remove it without any noticeable impact in calculations. Use div64_u64 instead of div_u64 to avoid possible overflow of sample->mperf as divisor Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Simplify P state adjustment logic.Stratos Karafotis1-23/+3
Simplify the code by removing the inline functions pstate_increase and pstate_decrease and use directly the intel_pstate_set_pstate. Signed-off-by: Stratos Karafotis <[email protected]> Acked-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Keep values in aperf/mperf in full precisionStratos Karafotis1-3/+0
Currently we shift right aperf and mperf variables by FRAC_BITS to prevent overflow when we convert them to fix point numbers (shift left by FRAC_BITS). But this is not necessary, because we actually use delta aperf and mperf which are much less than APERF and MPERF values. So, use the unmodified APERF and MPERF values in calculation. This also adds 8 bits in precision, although the gain is insignificant. Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Disable interrupts during MSRs readingStratos Karafotis1-0/+3
According to Intel 64 and IA-32 Architectures SDM, Volume 3, Chapter 14.2, "Software needs to exercise care to avoid delays between the two RDMSRs (for example interrupts)". So, disable interrupts during reading MSRs IA32_APERF and IA32_MPERF. This should increase the accuracy of the calculations. Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Align multiple lines to open parenthesisStratos Karafotis1-17/+17
Suppress checkpatch.pl --strict warnings: CHECK: Alignment should match open parenthesis Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Remove unnecessary intermediate variable sample_timeStratos Karafotis1-3/+2
Remove the unnecessary intermediate assignment and use directly the pid_params.sample_rate_ms variable. Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Cleanup parenthesesStratos Karafotis1-5/+5
Remove unnecessary parentheses. Also, add parentheses in one case for better readability. Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Fit code in a single line where possibleStratos Karafotis1-13/+5
We can fit these lines in a single one, under the 80 characters limit. Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Add missing blank lines after declarationsStratos Karafotis1-5/+13
Also, remove unnecessary blank lines. Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Remove unnecessary type casting in div_s64() callStratos Karafotis1-1/+1
div_s64() accepts the divisor parameter as s32. Helper div_fp() also accepts divisor as int32_t. So, remove the unnecessary int64_t type casting. Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-21cpufreq: intel_pstate: Make intel_pstate_kobject and debugfs_parent localsStratos Karafotis1-4/+4
Since we never remove sysfs entry and debugfs files, we can make the intel_pstate_kobject and debugfs_parent locals. Also, annotate with __init intel_pstate_sysfs_expose_params() and intel_pstate_debug_expose_params() in order to be freed after bootstrap. Signed-off-by: Stratos Karafotis <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-07intel_pstate: Set CPU number before accessing MSRsVincent Minet1-2/+1
Ensure that cpu->cpu is set before writing MSR_IA32_PERF_CTL during CPU initialization. Otherwise only cpu0 has its P-state set and all other cores are left with their values unchanged. In most cases, this is not too serious because the P-states will be set correctly when the timer function is run. But when the default governor is set to performance, the per-CPU current_pstate stays the same forever and no attempts are made to write the MSRs again. Signed-off-by: Vincent Minet <[email protected]> Cc: All applicable <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-07intel_pstate: don't touch turbo bit if turbo disabled or unavailable.Dirk Brandewie1-6/+16
If turbo is disabled in the BIOS bit 38 should be set in MSR_IA32_MISC_ENABLE register per section 14.3.2.1 of the SDM Vol 3 document 325384-050US Feb 2014. If this bit is set do *not* attempt to disable trubo via the MSR_IA32_PERF_CTL register. On some systems trying to disable turbo via MSR_IA32_PERF_CTL will cause subsequent writes to MSR_IA32_PERF_CTL not take affect, in fact reading MSR_IA32_PERF_CTL will not show the IDA/Turbo DISENGAGE bit(32) as set. A write of bit 32 to zero returns to normal operation. Also deal with the case where the processor does not support turbo and the BIOS does not report the fact in MSR_IA32_MISC_ENABLE but does report the max and turbo P states as the same value. Link: https://bugzilla.kernel.org/show_bug.cgi?id=64251 Cc: 3.13+ <[email protected]> # 3.13+ Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-07-07intel_pstate: Fix setting VIDDirk Brandewie1-5/+5
Commit 21855ff5 (intel_pstate: Set turbo VID for BayTrail) introduced setting the turbo VID which is required to prevent a machine check on some Baytrail SKUs under heavy graphics based workloads. The docmumentation update that brought the requirement to light also changed the bit mask used for enumerating P state and VID values from 0x7f to 0x3f. This change returns the mask value to 0x7f. Tested with the Intel NUC DN2820FYK, BIOS version FYBYT10H.86A.0034.2014.0513.1413 with v3.16-rc1 and v3.14.8 kernel versions. Fixes: 21855ff5 (intel_pstate: Set turbo VID for BayTrail) Link: https://bugzilla.kernel.org/show_bug.cgi?id=77951 Reported-and-tested-by: Rune Reterson <[email protected]> Reported-and-tested-by: Eric Eickmeyer <[email protected]> Cc: 3.13+ <[email protected]> # 3.13+ Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-06-17intel_pstate: Correct rounding in busy calculationDoug Smythies1-4/+1
There was a mistake in the actual rounding portion this previous patch: f0fe3cd7e12d (intel_pstate: Correct rounding in busy calculation) such that the rounding was asymetric and incorrect. Severity: Not very serious, but can increase target pstate by one extra value. For real world work flows the issue should self correct (but I have no proof). It is the equivalent of different PID gains for positive and negative numbers. Examples: -3.000000 used to round to -4, rounds to -3 with this patch. -3.503906 used to round to -5, rounds to -4 with this patch. Fixes: f0fe3cd7e12d (intel_pstate: Correct rounding in busy calculation) Signed-off-by: Doug Smythies <[email protected]> Cc: 3.14+ <[email protected]> # 3.14+ Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-06-10cpufreq: intel_pstate: Remove duplicate CPU ID checkStratos Karafotis1-6/+0
We check the CPU ID during driver init. There is no need to do it again per logical CPU initialization. So, remove the duplicate check. Signed-off-by: Stratos Karafotis <[email protected]> Acked-by: Viresh Kumar <[email protected]> Acked-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-06-03Merge back earlier cpufreq material.Rafael J. Wysocki1-9/+6
Conflicts: arch/mips/loongson/lemote-2f/clock.c drivers/cpufreq/intel_pstate.c
2014-06-02intel_pstate: Improve initial busy calculationDoug Smythies1-5/+8
This change makes the busy calculation using 64 bit math which prevents overflow for large values of aperf/mperf. Cc: 3.14+ <[email protected]> # 3.14+ Signed-off-by: Doug Smythies <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-06-02intel_pstate: add sample time scalingDirk Brandewie1-1/+17
The PID assumes that samples are of equal time, which for a deferable timers this is not true when the system goes idle. This causes the PID to take a long time to converge to the min P state and depending on the pattern of the idle load can make the P state appear stuck. The hold-off value of three sample times before using the scaling is to give a grace period for applications that have high performance requirements and spend a lot of time idle, The poster child for this behavior is the ffmpeg benchmark in the Phoronix test suite. Cc: 3.14+ <[email protected]> # 3.14+ Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-06-02intel_pstate: Correct rounding in busy calculationDirk Brandewie1-5/+7
Changing to fixed point math throughout the busy calculation in commit e66c1768 (Change busy calculation to use fixed point math.) Introduced some inaccuracies by rounding the busy value at two points in the calculation. This change removes roundings and moves the rounding to the output of the PID where the calculations are complete and the value returned as an integer. Fixes: e66c17683746 (intel_pstate: Change busy calculation to use fixed point math.) Reported-by: Doug Smythies <[email protected]> Cc: 3.14+ <[email protected]> # 3.14+ Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-06-02intel_pstate: Remove C0 trackingDirk Brandewie1-12/+1
Commit fcb6a15c (intel_pstate: Take core C0 time into account for core busy calculation) introduced a regression referenced below. The issue with "lockup" after suspend that this commit was addressing is now dealt with in the suspend path. Fixes: fcb6a15c2e7e (intel_pstate: Take core C0 time into account for core busy calculation) Link: https://bugzilla.kernel.org/show_bug.cgi?id=66581 Link: https://bugzilla.kernel.org/show_bug.cgi?id=75121 Reported-by: Doug Smythies <[email protected]> Cc: 3.14+ <[email protected]> # 3.14+ Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-05-27cpufreq: intel_pstate: Remove unused member name of cpudataStratos Karafotis1-4/+0
Although, a value is assigned to member name of struct cpudata, it is never used. We can safely remove it. Signed-off-by: Stratos Karafotis <[email protected]> Acked-by: Viresh Kumar <[email protected]> Acked-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-05-13intel_pstate: remove setting P state to MAX on initDirk Brandewie1-12/+1
Setting the P state of the core to max at init time is a hold over from early implementation of intel_pstate where intel_pstate disabled cpufreq and loaded VERY early in the boot sequence. This was to ensure that intel_pstate did not affect boot time. This in not needed now that intel_pstate is a cpufreq driver. Removing this covers the case where a CPU has gone through a manual CPU offline/online cycle and the P state is set to MAX on init and the CPU immediately goes idle. Due to HW coordination the P state request on the idle CPU will drag all cores to MAX P state until the load is reevaluated when to core goes non-idle. Reported-by: Patrick Marlier <[email protected]> Signed-off-by: Dirk Brandewie <[email protected]> Cc: 3.14+ <[email protected]> # 3.14+ Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-05-13intel_pstate: Add CPU IDs for Broadwell processorsDirk Brandewie1-0/+3
Add support for Broadwell processors. Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2014-05-12intel_pstate: Set turbo VID for BayTrailDirk Brandewie1-6/+15
A documentation update exposed that there is a separate set of VID values that must be used in the turbo/boost P state range. Add enumerating and setting the correct VID for P states in the turbo range. Cc: v3.13+ <[email protected]> # v3.13+ Signed-off-by: Dirk Brandewie <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>