提交 968fc5dc 编写于 作者: A Alexey Starikovskiy 提交者: Len Brown

ACPI: Fan: fan device does not need own structure

Signed-off-by: NAlexey Starikovskiy <astarikovskiy@suse.de>
Acked-by: NRafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: NLen Brown <len.brown@intel.com>
上级 c35923bc
...@@ -68,10 +68,6 @@ static struct acpi_driver acpi_fan_driver = { ...@@ -68,10 +68,6 @@ static struct acpi_driver acpi_fan_driver = {
}, },
}; };
struct acpi_fan {
struct acpi_device * device;
};
/* -------------------------------------------------------------------------- /* --------------------------------------------------------------------------
FS Interface (/proc) FS Interface (/proc)
-------------------------------------------------------------------------- */ -------------------------------------------------------------------------- */
...@@ -80,12 +76,12 @@ static struct proc_dir_entry *acpi_fan_dir; ...@@ -80,12 +76,12 @@ static struct proc_dir_entry *acpi_fan_dir;
static int acpi_fan_read_state(struct seq_file *seq, void *offset) static int acpi_fan_read_state(struct seq_file *seq, void *offset)
{ {
struct acpi_fan *fan = seq->private; struct acpi_device *device = seq->private;
int state = 0; int state = 0;
if (fan) { if (device) {
if (acpi_bus_get_power(fan->device->handle, &state)) if (acpi_bus_get_power(device->handle, &state))
seq_printf(seq, "status: ERROR\n"); seq_printf(seq, "status: ERROR\n");
else else
seq_printf(seq, "status: %s\n", seq_printf(seq, "status: %s\n",
...@@ -105,11 +101,10 @@ acpi_fan_write_state(struct file *file, const char __user * buffer, ...@@ -105,11 +101,10 @@ acpi_fan_write_state(struct file *file, const char __user * buffer,
{ {
int result = 0; int result = 0;
struct seq_file *m = file->private_data; struct seq_file *m = file->private_data;
struct acpi_fan *fan = m->private; struct acpi_device *device = m->private;
char state_string[12] = { '\0' }; char state_string[12] = { '\0' };
if (count > sizeof(state_string) - 1)
if (!fan || (count > sizeof(state_string) - 1))
return -EINVAL; return -EINVAL;
if (copy_from_user(state_string, buffer, count)) if (copy_from_user(state_string, buffer, count))
...@@ -117,7 +112,7 @@ acpi_fan_write_state(struct file *file, const char __user * buffer, ...@@ -117,7 +112,7 @@ acpi_fan_write_state(struct file *file, const char __user * buffer,
state_string[count] = '\0'; state_string[count] = '\0';
result = acpi_bus_set_power(fan->device->handle, result = acpi_bus_set_power(device->handle,
simple_strtoul(state_string, NULL, 0)); simple_strtoul(state_string, NULL, 0));
if (result) if (result)
return result; return result;
...@@ -158,7 +153,7 @@ static int acpi_fan_add_fs(struct acpi_device *device) ...@@ -158,7 +153,7 @@ static int acpi_fan_add_fs(struct acpi_device *device)
return -ENODEV; return -ENODEV;
else { else {
entry->proc_fops = &acpi_fan_state_ops; entry->proc_fops = &acpi_fan_state_ops;
entry->data = acpi_driver_data(device); entry->data = device;
entry->owner = THIS_MODULE; entry->owner = THIS_MODULE;
} }
...@@ -191,14 +186,8 @@ static int acpi_fan_add(struct acpi_device *device) ...@@ -191,14 +186,8 @@ static int acpi_fan_add(struct acpi_device *device)
if (!device) if (!device)
return -EINVAL; return -EINVAL;
fan = kzalloc(sizeof(struct acpi_fan), GFP_KERNEL);
if (!fan)
return -ENOMEM;
fan->device = device;
strcpy(acpi_device_name(device), "Fan"); strcpy(acpi_device_name(device), "Fan");
strcpy(acpi_device_class(device), ACPI_FAN_CLASS); strcpy(acpi_device_class(device), ACPI_FAN_CLASS);
acpi_driver_data(device) = fan;
result = acpi_bus_get_power(device->handle, &state); result = acpi_bus_get_power(device->handle, &state);
if (result) { if (result) {
...@@ -227,18 +216,11 @@ static int acpi_fan_add(struct acpi_device *device) ...@@ -227,18 +216,11 @@ static int acpi_fan_add(struct acpi_device *device)
static int acpi_fan_remove(struct acpi_device *device, int type) static int acpi_fan_remove(struct acpi_device *device, int type)
{ {
struct acpi_fan *fan = NULL;
if (!device || !acpi_driver_data(device)) if (!device || !acpi_driver_data(device))
return -EINVAL; return -EINVAL;
fan = acpi_driver_data(device);
acpi_fan_remove_fs(device); acpi_fan_remove_fs(device);
kfree(fan);
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册