|
@@ -31,14 +31,6 @@
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/cpufreq.h>
|
|
|
|
|
|
-#ifdef CONFIG_X86_ACPI_CPUFREQ_PROC_INTF
|
|
|
-#include <linux/proc_fs.h>
|
|
|
-#include <linux/seq_file.h>
|
|
|
-#include <linux/mutex.h>
|
|
|
-
|
|
|
-#include <asm/uaccess.h>
|
|
|
-#endif
|
|
|
-
|
|
|
#ifdef CONFIG_X86
|
|
|
#include <asm/cpufeature.h>
|
|
|
#endif
|
|
@@ -434,96 +426,6 @@ int acpi_processor_notify_smm(struct module *calling_module)
|
|
|
|
|
|
EXPORT_SYMBOL(acpi_processor_notify_smm);
|
|
|
|
|
|
-#ifdef CONFIG_X86_ACPI_CPUFREQ_PROC_INTF
|
|
|
-/* /proc/acpi/processor/../performance interface (DEPRECATED) */
|
|
|
-
|
|
|
-static int acpi_processor_perf_open_fs(struct inode *inode, struct file *file);
|
|
|
-static struct file_operations acpi_processor_perf_fops = {
|
|
|
- .owner = THIS_MODULE,
|
|
|
- .open = acpi_processor_perf_open_fs,
|
|
|
- .read = seq_read,
|
|
|
- .llseek = seq_lseek,
|
|
|
- .release = single_release,
|
|
|
-};
|
|
|
-
|
|
|
-static int acpi_processor_perf_seq_show(struct seq_file *seq, void *offset)
|
|
|
-{
|
|
|
- struct acpi_processor *pr = seq->private;
|
|
|
- int i;
|
|
|
-
|
|
|
-
|
|
|
- if (!pr)
|
|
|
- goto end;
|
|
|
-
|
|
|
- if (!pr->performance) {
|
|
|
- seq_puts(seq, "<not supported>\n");
|
|
|
- goto end;
|
|
|
- }
|
|
|
-
|
|
|
- seq_printf(seq, "state count: %d\n"
|
|
|
- "active state: P%d\n",
|
|
|
- pr->performance->state_count, pr->performance->state);
|
|
|
-
|
|
|
- seq_puts(seq, "states:\n");
|
|
|
- for (i = 0; i < pr->performance->state_count; i++)
|
|
|
- seq_printf(seq,
|
|
|
- " %cP%d: %d MHz, %d mW, %d uS\n",
|
|
|
- (i == pr->performance->state ? '*' : ' '), i,
|
|
|
- (u32) pr->performance->states[i].core_frequency,
|
|
|
- (u32) pr->performance->states[i].power,
|
|
|
- (u32) pr->performance->states[i].transition_latency);
|
|
|
-
|
|
|
- end:
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static int acpi_processor_perf_open_fs(struct inode *inode, struct file *file)
|
|
|
-{
|
|
|
- return single_open(file, acpi_processor_perf_seq_show,
|
|
|
- PDE(inode)->data);
|
|
|
-}
|
|
|
-
|
|
|
-static void acpi_cpufreq_add_file(struct acpi_processor *pr)
|
|
|
-{
|
|
|
- struct acpi_device *device = NULL;
|
|
|
-
|
|
|
-
|
|
|
- if (acpi_bus_get_device(pr->handle, &device))
|
|
|
- return;
|
|
|
-
|
|
|
- /* add file 'performance' [R/W] */
|
|
|
- proc_create_data(ACPI_PROCESSOR_FILE_PERFORMANCE, S_IFREG | S_IRUGO,
|
|
|
- acpi_device_dir(device),
|
|
|
- &acpi_processor_perf_fops, acpi_driver_data(device));
|
|
|
- return;
|
|
|
-}
|
|
|
-
|
|
|
-static void acpi_cpufreq_remove_file(struct acpi_processor *pr)
|
|
|
-{
|
|
|
- struct acpi_device *device = NULL;
|
|
|
-
|
|
|
-
|
|
|
- if (acpi_bus_get_device(pr->handle, &device))
|
|
|
- return;
|
|
|
-
|
|
|
- /* remove file 'performance' */
|
|
|
- remove_proc_entry(ACPI_PROCESSOR_FILE_PERFORMANCE,
|
|
|
- acpi_device_dir(device));
|
|
|
-
|
|
|
- return;
|
|
|
-}
|
|
|
-
|
|
|
-#else
|
|
|
-static void acpi_cpufreq_add_file(struct acpi_processor *pr)
|
|
|
-{
|
|
|
- return;
|
|
|
-}
|
|
|
-static void acpi_cpufreq_remove_file(struct acpi_processor *pr)
|
|
|
-{
|
|
|
- return;
|
|
|
-}
|
|
|
-#endif /* CONFIG_X86_ACPI_CPUFREQ_PROC_INTF */
|
|
|
-
|
|
|
static int acpi_processor_get_psd(struct acpi_processor *pr)
|
|
|
{
|
|
|
int result = 0;
|
|
@@ -747,14 +649,12 @@ err_ret:
|
|
|
}
|
|
|
EXPORT_SYMBOL(acpi_processor_preregister_performance);
|
|
|
|
|
|
-
|
|
|
int
|
|
|
acpi_processor_register_performance(struct acpi_processor_performance
|
|
|
*performance, unsigned int cpu)
|
|
|
{
|
|
|
struct acpi_processor *pr;
|
|
|
|
|
|
-
|
|
|
if (!(acpi_processor_ppc_status & PPC_REGISTERED))
|
|
|
return -EINVAL;
|
|
|
|
|
@@ -781,8 +681,6 @@ acpi_processor_register_performance(struct acpi_processor_performance
|
|
|
return -EIO;
|
|
|
}
|
|
|
|
|
|
- acpi_cpufreq_add_file(pr);
|
|
|
-
|
|
|
mutex_unlock(&performance_mutex);
|
|
|
return 0;
|
|
|
}
|
|
@@ -795,7 +693,6 @@ acpi_processor_unregister_performance(struct acpi_processor_performance
|
|
|
{
|
|
|
struct acpi_processor *pr;
|
|
|
|
|
|
-
|
|
|
mutex_lock(&performance_mutex);
|
|
|
|
|
|
pr = per_cpu(processors, cpu);
|
|
@@ -808,8 +705,6 @@ acpi_processor_unregister_performance(struct acpi_processor_performance
|
|
|
kfree(pr->performance->states);
|
|
|
pr->performance = NULL;
|
|
|
|
|
|
- acpi_cpufreq_remove_file(pr);
|
|
|
-
|
|
|
mutex_unlock(&performance_mutex);
|
|
|
|
|
|
return;
|