sony_acpi: Fix sony_acpi backlight registration and unregistration
Initialize the current brightness if the driver registration was successful and unregister the driver in the error exit path. Signed-off-by: Mattia Dongili <malattia@linux.it> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
57ede701af
commit
7df03b82ed
1 changed files with 8 additions and 0 deletions
|
@ -354,9 +354,14 @@ static int sony_acpi_add(struct acpi_device *device)
|
|||
if (ACPI_SUCCESS(acpi_get_handle(sony_acpi_handle, "GBRT", &handle))) {
|
||||
sony_backlight_device = backlight_device_register("sony", NULL,
|
||||
NULL, &sony_backlight_properties);
|
||||
|
||||
if (IS_ERR(sony_backlight_device)) {
|
||||
printk(LOG_PFX "unable to register backlight device\n");
|
||||
sony_backlight_device = NULL;
|
||||
}
|
||||
else
|
||||
sony_backlight_properties.brightness =
|
||||
sony_backlight_get_brightness(sony_backlight_device);
|
||||
}
|
||||
|
||||
for (item = sony_acpi_values; item->name; ++item) {
|
||||
|
@ -400,6 +405,9 @@ static int sony_acpi_add(struct acpi_device *device)
|
|||
return 0;
|
||||
|
||||
outproc:
|
||||
if (sony_backlight_device)
|
||||
backlight_device_unregister(sony_backlight_device);
|
||||
|
||||
for (item = sony_acpi_values; item->name; ++item)
|
||||
if (item->proc)
|
||||
remove_proc_entry(item->name, acpi_device_dir(device));
|
||||
|
|
Loading…
Add table
Reference in a new issue