|
@@ -82,7 +82,7 @@ static int acpi_processor_add(struct acpi_device *device);
|
|
static int acpi_processor_start(struct acpi_device *device);
|
|
static int acpi_processor_start(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);
|
|
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);
|
|
-static void acpi_processor_notify(acpi_handle handle, u32 event, void *data);
|
|
|
|
|
|
+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);
|
|
|
|
|
|
@@ -104,6 +104,7 @@ static struct acpi_driver acpi_processor_driver = {
|
|
.start = acpi_processor_start,
|
|
.start = acpi_processor_start,
|
|
.suspend = acpi_processor_suspend,
|
|
.suspend = acpi_processor_suspend,
|
|
.resume = acpi_processor_resume,
|
|
.resume = acpi_processor_resume,
|
|
|
|
+ .notify = acpi_processor_notify,
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
@@ -691,7 +692,6 @@ static DEFINE_PER_CPU(void *, processor_device_array);
|
|
static int __cpuinit acpi_processor_start(struct acpi_device *device)
|
|
static int __cpuinit acpi_processor_start(struct acpi_device *device)
|
|
{
|
|
{
|
|
int result = 0;
|
|
int result = 0;
|
|
- acpi_status status = AE_OK;
|
|
|
|
struct acpi_processor *pr;
|
|
struct acpi_processor *pr;
|
|
struct sys_device *sysdev;
|
|
struct sys_device *sysdev;
|
|
|
|
|
|
@@ -728,9 +728,6 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device)
|
|
if (sysfs_create_link(&device->dev.kobj, &sysdev->kobj, "sysdev"))
|
|
if (sysfs_create_link(&device->dev.kobj, &sysdev->kobj, "sysdev"))
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
|
|
|
|
- status = acpi_install_notify_handler(pr->handle, ACPI_DEVICE_NOTIFY,
|
|
|
|
- acpi_processor_notify, pr);
|
|
|
|
-
|
|
|
|
/* _PDC call should be done before doing anything else (if reqd.). */
|
|
/* _PDC call should be done before doing anything else (if reqd.). */
|
|
arch_acpi_processor_init_pdc(pr);
|
|
arch_acpi_processor_init_pdc(pr);
|
|
acpi_processor_set_pdc(pr);
|
|
acpi_processor_set_pdc(pr);
|
|
@@ -776,18 +773,14 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device)
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
-static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
|
|
|
|
|
|
+static void acpi_processor_notify(struct acpi_device *device, u32 event)
|
|
{
|
|
{
|
|
- struct acpi_processor *pr = data;
|
|
|
|
- struct acpi_device *device = NULL;
|
|
|
|
|
|
+ struct acpi_processor *pr = acpi_driver_data(device);
|
|
int saved;
|
|
int saved;
|
|
|
|
|
|
if (!pr)
|
|
if (!pr)
|
|
return;
|
|
return;
|
|
|
|
|
|
- if (acpi_bus_get_device(pr->handle, &device))
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
switch (event) {
|
|
switch (event) {
|
|
case ACPI_PROCESSOR_NOTIFY_PERFORMANCE:
|
|
case ACPI_PROCESSOR_NOTIFY_PERFORMANCE:
|
|
saved = pr->performance_platform_limit;
|
|
saved = pr->performance_platform_limit;
|
|
@@ -866,7 +859,6 @@ 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)
|
|
{
|
|
{
|
|
- acpi_status status = AE_OK;
|
|
|
|
struct acpi_processor *pr = NULL;
|
|
struct acpi_processor *pr = NULL;
|
|
|
|
|
|
|
|
|
|
@@ -885,9 +877,6 @@ static int acpi_processor_remove(struct acpi_device *device, int type)
|
|
|
|
|
|
acpi_processor_power_exit(pr, device);
|
|
acpi_processor_power_exit(pr, device);
|
|
|
|
|
|
- status = acpi_remove_notify_handler(pr->handle, ACPI_DEVICE_NOTIFY,
|
|
|
|
- acpi_processor_notify);
|
|
|
|
-
|
|
|
|
sysfs_remove_link(&device->dev.kobj, "sysdev");
|
|
sysfs_remove_link(&device->dev.kobj, "sysdev");
|
|
|
|
|
|
acpi_processor_remove_fs(device);
|
|
acpi_processor_remove_fs(device);
|