Skip to content

Commit

Permalink
ACPI: Fan: fan device does not need own structure
Browse files Browse the repository at this point in the history
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Alexey Starikovskiy authored and Len Brown committed Oct 25, 2007
1 parent c35923b commit 968fc5d
Showing 1 changed file with 7 additions and 25 deletions.
32 changes: 7 additions & 25 deletions drivers/acpi/fan.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,6 @@ static struct acpi_driver acpi_fan_driver = {
},
};

struct acpi_fan {
struct acpi_device * device;
};

/* --------------------------------------------------------------------------
FS Interface (/proc)
-------------------------------------------------------------------------- */
Expand All @@ -80,12 +76,12 @@ static struct proc_dir_entry *acpi_fan_dir;

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;


if (fan) {
if (acpi_bus_get_power(fan->device->handle, &state))
if (device) {
if (acpi_bus_get_power(device->handle, &state))
seq_printf(seq, "status: ERROR\n");
else
seq_printf(seq, "status: %s\n",
Expand All @@ -105,19 +101,18 @@ acpi_fan_write_state(struct file *file, const char __user * buffer,
{
int result = 0;
struct seq_file *m = file->private_data;
struct acpi_fan *fan = m->private;
struct acpi_device *device = m->private;
char state_string[12] = { '\0' };


if (!fan || (count > sizeof(state_string) - 1))
if (count > sizeof(state_string) - 1)
return -EINVAL;

if (copy_from_user(state_string, buffer, count))
return -EFAULT;

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));
if (result)
return result;
Expand Down Expand Up @@ -158,7 +153,7 @@ static int acpi_fan_add_fs(struct acpi_device *device)
return -ENODEV;
else {
entry->proc_fops = &acpi_fan_state_ops;
entry->data = acpi_driver_data(device);
entry->data = device;
entry->owner = THIS_MODULE;
}

Expand Down Expand Up @@ -191,14 +186,8 @@ static int acpi_fan_add(struct acpi_device *device)
if (!device)
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_class(device), ACPI_FAN_CLASS);
acpi_driver_data(device) = fan;

result = acpi_bus_get_power(device->handle, &state);
if (result) {
Expand Down Expand Up @@ -227,18 +216,11 @@ static int acpi_fan_add(struct acpi_device *device)

static int acpi_fan_remove(struct acpi_device *device, int type)
{
struct acpi_fan *fan = NULL;


if (!device || !acpi_driver_data(device))
return -EINVAL;

fan = acpi_driver_data(device);

acpi_fan_remove_fs(device);

kfree(fan);

return 0;
}

Expand Down

0 comments on commit 968fc5d

Please sign in to comment.