mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
Merge branch 'processor-procfs-2.6.32' into release
This commit is contained in:
commit
cbeee13570
5 changed files with 38 additions and 9 deletions
|
@ -60,7 +60,11 @@ config ACPI_PROCFS
|
||||||
/proc/acpi/fadt (/sys/firmware/acpi/tables/FACP)
|
/proc/acpi/fadt (/sys/firmware/acpi/tables/FACP)
|
||||||
/proc/acpi/debug_layer (/sys/module/acpi/parameters/debug_layer)
|
/proc/acpi/debug_layer (/sys/module/acpi/parameters/debug_layer)
|
||||||
/proc/acpi/debug_level (/sys/module/acpi/parameters/debug_level)
|
/proc/acpi/debug_level (/sys/module/acpi/parameters/debug_level)
|
||||||
|
/proc/acpi/processor/*/power (/sys/devices/system/cpu/*/cpuidle/*)
|
||||||
|
/proc/acpi/processor/*/performance (/sys/devices/system/cpu/*/
|
||||||
|
cpufreq/*)
|
||||||
|
/proc/acpi/processor/*/throttling (/sys/class/thermal/
|
||||||
|
cooling_device*/*)
|
||||||
This option has no effect on /proc/acpi/ files
|
This option has no effect on /proc/acpi/ files
|
||||||
and functions which do not yet exist in /sys.
|
and functions which do not yet exist in /sys.
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,9 @@ MODULE_LICENSE("GPL");
|
||||||
|
|
||||||
static int acpi_processor_add(struct acpi_device *device);
|
static int acpi_processor_add(struct acpi_device *device);
|
||||||
static int acpi_processor_remove(struct acpi_device *device, int type);
|
static int acpi_processor_remove(struct acpi_device *device, int type);
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
static int acpi_processor_info_open_fs(struct inode *inode, struct file *file);
|
static int acpi_processor_info_open_fs(struct inode *inode, struct file *file);
|
||||||
|
#endif
|
||||||
static void acpi_processor_notify(struct acpi_device *device, u32 event);
|
static void acpi_processor_notify(struct acpi_device *device, u32 event);
|
||||||
static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu);
|
static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu);
|
||||||
static int acpi_processor_handle_eject(struct acpi_processor *pr);
|
static int acpi_processor_handle_eject(struct acpi_processor *pr);
|
||||||
|
@ -110,7 +112,7 @@ static struct acpi_driver acpi_processor_driver = {
|
||||||
|
|
||||||
#define INSTALL_NOTIFY_HANDLER 1
|
#define INSTALL_NOTIFY_HANDLER 1
|
||||||
#define UNINSTALL_NOTIFY_HANDLER 2
|
#define UNINSTALL_NOTIFY_HANDLER 2
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
static const struct file_operations acpi_processor_info_fops = {
|
static const struct file_operations acpi_processor_info_fops = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.open = acpi_processor_info_open_fs,
|
.open = acpi_processor_info_open_fs,
|
||||||
|
@ -118,6 +120,7 @@ static const struct file_operations acpi_processor_info_fops = {
|
||||||
.llseek = seq_lseek,
|
.llseek = seq_lseek,
|
||||||
.release = single_release,
|
.release = single_release,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
DEFINE_PER_CPU(struct acpi_processor *, processors);
|
DEFINE_PER_CPU(struct acpi_processor *, processors);
|
||||||
struct acpi_processor_errata errata __read_mostly;
|
struct acpi_processor_errata errata __read_mostly;
|
||||||
|
@ -316,6 +319,7 @@ static int acpi_processor_set_pdc(struct acpi_processor *pr)
|
||||||
FS Interface (/proc)
|
FS Interface (/proc)
|
||||||
-------------------------------------------------------------------------- */
|
-------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
static struct proc_dir_entry *acpi_processor_dir = NULL;
|
static struct proc_dir_entry *acpi_processor_dir = NULL;
|
||||||
|
|
||||||
static int acpi_processor_info_seq_show(struct seq_file *seq, void *offset)
|
static int acpi_processor_info_seq_show(struct seq_file *seq, void *offset)
|
||||||
|
@ -388,7 +392,6 @@ static int acpi_processor_add_fs(struct acpi_device *device)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int acpi_processor_remove_fs(struct acpi_device *device)
|
static int acpi_processor_remove_fs(struct acpi_device *device)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -405,6 +408,16 @@ static int acpi_processor_remove_fs(struct acpi_device *device)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static inline int acpi_processor_add_fs(struct acpi_device *device)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
static inline int acpi_processor_remove_fs(struct acpi_device *device)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Use the acpiid in MADT to map cpus in case of SMP */
|
/* Use the acpiid in MADT to map cpus in case of SMP */
|
||||||
|
|
||||||
|
@ -1134,11 +1147,11 @@ static int __init acpi_processor_init(void)
|
||||||
(struct acpi_table_header **)&madt)))
|
(struct acpi_table_header **)&madt)))
|
||||||
madt = NULL;
|
madt = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
acpi_processor_dir = proc_mkdir(ACPI_PROCESSOR_CLASS, acpi_root_dir);
|
acpi_processor_dir = proc_mkdir(ACPI_PROCESSOR_CLASS, acpi_root_dir);
|
||||||
if (!acpi_processor_dir)
|
if (!acpi_processor_dir)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* Check whether the system is DMI table. If yes, OSPM
|
* Check whether the system is DMI table. If yes, OSPM
|
||||||
* should not use mwait for CPU-states.
|
* should not use mwait for CPU-states.
|
||||||
|
@ -1166,7 +1179,9 @@ out_cpuidle:
|
||||||
cpuidle_unregister_driver(&acpi_idle_driver);
|
cpuidle_unregister_driver(&acpi_idle_driver);
|
||||||
|
|
||||||
out_proc:
|
out_proc:
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
remove_proc_entry(ACPI_PROCESSOR_CLASS, acpi_root_dir);
|
remove_proc_entry(ACPI_PROCESSOR_CLASS, acpi_root_dir);
|
||||||
|
#endif
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1186,7 +1201,9 @@ static void __exit acpi_processor_exit(void)
|
||||||
|
|
||||||
cpuidle_unregister_driver(&acpi_idle_driver);
|
cpuidle_unregister_driver(&acpi_idle_driver);
|
||||||
|
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
remove_proc_entry(ACPI_PROCESSOR_CLASS, acpi_root_dir);
|
remove_proc_entry(ACPI_PROCESSOR_CLASS, acpi_root_dir);
|
||||||
|
#endif
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -682,6 +682,7 @@ static int acpi_processor_get_power_info(struct acpi_processor *pr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset)
|
static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset)
|
||||||
{
|
{
|
||||||
struct acpi_processor *pr = seq->private;
|
struct acpi_processor *pr = seq->private;
|
||||||
|
@ -761,7 +762,7 @@ static const struct file_operations acpi_processor_power_fops = {
|
||||||
.llseek = seq_lseek,
|
.llseek = seq_lseek,
|
||||||
.release = single_release,
|
.release = single_release,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* acpi_idle_bm_check - checks if bus master activity was detected
|
* acpi_idle_bm_check - checks if bus master activity was detected
|
||||||
|
@ -1162,7 +1163,9 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr,
|
||||||
{
|
{
|
||||||
acpi_status status = 0;
|
acpi_status status = 0;
|
||||||
static int first_run;
|
static int first_run;
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
struct proc_dir_entry *entry = NULL;
|
struct proc_dir_entry *entry = NULL;
|
||||||
|
#endif
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
if (boot_option_idle_override)
|
if (boot_option_idle_override)
|
||||||
|
@ -1219,7 +1222,7 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr,
|
||||||
pr->power.states[i].type);
|
pr->power.states[i].type);
|
||||||
printk(")\n");
|
printk(")\n");
|
||||||
}
|
}
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
/* 'power' [R] */
|
/* 'power' [R] */
|
||||||
entry = proc_create_data(ACPI_PROCESSOR_FILE_POWER,
|
entry = proc_create_data(ACPI_PROCESSOR_FILE_POWER,
|
||||||
S_IRUGO, acpi_device_dir(device),
|
S_IRUGO, acpi_device_dir(device),
|
||||||
|
@ -1227,6 +1230,7 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr,
|
||||||
acpi_driver_data(device));
|
acpi_driver_data(device));
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1239,9 +1243,11 @@ int acpi_processor_power_exit(struct acpi_processor *pr,
|
||||||
cpuidle_unregister_device(&pr->power.dev);
|
cpuidle_unregister_device(&pr->power.dev);
|
||||||
pr->flags.power_setup_done = 0;
|
pr->flags.power_setup_done = 0;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
if (acpi_device_dir(device))
|
if (acpi_device_dir(device))
|
||||||
remove_proc_entry(ACPI_PROCESSOR_FILE_POWER,
|
remove_proc_entry(ACPI_PROCESSOR_FILE_POWER,
|
||||||
acpi_device_dir(device));
|
acpi_device_dir(device));
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -440,7 +440,7 @@ struct thermal_cooling_device_ops processor_cooling_ops = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* /proc interface */
|
/* /proc interface */
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
static int acpi_processor_limit_seq_show(struct seq_file *seq, void *offset)
|
static int acpi_processor_limit_seq_show(struct seq_file *seq, void *offset)
|
||||||
{
|
{
|
||||||
struct acpi_processor *pr = (struct acpi_processor *)seq->private;
|
struct acpi_processor *pr = (struct acpi_processor *)seq->private;
|
||||||
|
@ -519,3 +519,4 @@ const struct file_operations acpi_processor_limit_fops = {
|
||||||
.llseek = seq_lseek,
|
.llseek = seq_lseek,
|
||||||
.release = single_release,
|
.release = single_release,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
|
@ -1218,7 +1218,7 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* proc interface */
|
/* proc interface */
|
||||||
|
#ifdef CONFIG_ACPI_PROCFS
|
||||||
static int acpi_processor_throttling_seq_show(struct seq_file *seq,
|
static int acpi_processor_throttling_seq_show(struct seq_file *seq,
|
||||||
void *offset)
|
void *offset)
|
||||||
{
|
{
|
||||||
|
@ -1326,3 +1326,4 @@ const struct file_operations acpi_processor_throttling_fops = {
|
||||||
.llseek = seq_lseek,
|
.llseek = seq_lseek,
|
||||||
.release = single_release,
|
.release = single_release,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue