diff options
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/video.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 5d7075d2570..f236e172d94 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c @@ -898,6 +898,9 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) device->cap._DDC = 1; } + if (acpi_video_init_brightness(device)) + return; + if (acpi_video_backlight_support()) { struct backlight_properties props; struct pci_dev *pdev; @@ -907,9 +910,6 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) static int count = 0; char *name; - result = acpi_video_init_brightness(device); - if (result) - return; name = kasprintf(GFP_KERNEL, "acpi_video%d", count); if (!name) return; @@ -969,6 +969,11 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) if (result) printk(KERN_ERR PREFIX "Create sysfs link\n"); + } else { + /* Remove the brightness object. */ + kfree(device->brightness->levels); + kfree(device->brightness); + device->brightness = NULL; } } |