Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 177511
b: refs/heads/master
c: 9db106b
h: refs/heads/master
i:
  177509: 6c0eeb3
  177507: 48e0a2c
  177503: 9c6f71c
v: v3
  • Loading branch information
Alan Jenkins authored and Len Brown committed Dec 9, 2009
1 parent 69b6969 commit e5a5d76
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 26 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 22072e92a038d2ee5848b3e54499ecab730c722c
refs/heads/master: 9db106be554288df5a0a7c56c20257a4391b9738
64 changes: 39 additions & 25 deletions trunk/drivers/platform/x86/eeepc-laptop.c
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,38 @@ static struct attribute_group platform_attribute_group = {
.attrs = platform_attributes
};

static int eeepc_platform_init(void)
{
int result;

platform_device = platform_device_alloc(EEEPC_HOTK_FILE, -1);
if (!platform_device)
return -ENOMEM;

result = platform_device_add(platform_device);
if (result)
goto fail_platform_device;

result = sysfs_create_group(&platform_device->dev.kobj,
&platform_attribute_group);
if (result)
goto fail_sysfs;
return 0;

fail_sysfs:
platform_device_del(platform_device);
fail_platform_device:
platform_device_put(platform_device);
return result;
}

static void eeepc_platform_exit(void)
{
sysfs_remove_group(&platform_device->dev.kobj,
&platform_attribute_group);
platform_device_unregister(platform_device);
}

/*
* LEDs
*/
Expand Down Expand Up @@ -1276,22 +1308,12 @@ static int __devinit eeepc_hotk_add(struct acpi_device *device)

result = eeepc_hotk_init();
if (result)
goto fail_platform_device1;
goto fail_platform;
eeepc_enable_camera();

/* Register platform stuff */
platform_device = platform_device_alloc(EEEPC_HOTK_FILE, -1);
if (!platform_device) {
result = -ENOMEM;
goto fail_platform_device1;
}
result = platform_device_add(platform_device);
result = eeepc_platform_init();
if (result)
goto fail_platform_device2;
result = sysfs_create_group(&platform_device->dev.kobj,
&platform_attribute_group);
if (result)
goto fail_sysfs;
goto fail_platform;

dev = &platform_device->dev;

Expand All @@ -1300,8 +1322,7 @@ static int __devinit eeepc_hotk_add(struct acpi_device *device)
if (result)
goto fail_backlight;
} else
pr_info("Backlight controlled by ACPI video "
"driver\n");
pr_info("Backlight controlled by ACPI video driver\n");

result = eeepc_input_init(dev);
if (result)
Expand Down Expand Up @@ -1330,13 +1351,8 @@ static int __devinit eeepc_hotk_add(struct acpi_device *device)
fail_input:
eeepc_backlight_exit();
fail_backlight:
sysfs_remove_group(&platform_device->dev.kobj,
&platform_attribute_group);
fail_sysfs:
platform_device_del(platform_device);
fail_platform_device2:
platform_device_put(platform_device);
fail_platform_device1:
eeepc_platform_exit();
fail_platform:
kfree(ehotk);

return result;
Expand All @@ -1349,9 +1365,7 @@ static int eeepc_hotk_remove(struct acpi_device *device, int type)
eeepc_input_exit();
eeepc_hwmon_exit();
eeepc_led_exit();
sysfs_remove_group(&platform_device->dev.kobj,
&platform_attribute_group);
platform_device_unregister(platform_device);
eeepc_platform_exit();

kfree(ehotk);
return 0;
Expand Down

0 comments on commit e5a5d76

Please sign in to comment.