]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/misc/sony-laptop.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
[karo-tx-linux.git] / drivers / misc / sony-laptop.c
index 5a97d3a9d745ee3ab5d17e5e1b86bce5a9fae132..7bcb81002dcfe32dac89391d975ecc03b5d1a8e9 100644 (file)
@@ -1038,7 +1038,11 @@ static int sony_nc_add(struct acpi_device *device)
                goto outinput;
        }
 
-       if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT", &handle))) {
+       if (!acpi_video_backlight_support()) {
+               printk(KERN_INFO DRV_PFX "Sony: Brightness ignored, must be "
+                      "controlled by ACPI video driver\n");
+       } else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT",
+                                               &handle))) {
                sony_backlight_device = backlight_device_register("sony", NULL,
                                                                  NULL,
                                                                  &sony_backlight_ops);
@@ -1920,7 +1924,6 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
 
 static int sonypi_misc_release(struct inode *inode, struct file *file)
 {
-       sonypi_misc_fasync(-1, file, 0);
        atomic_dec(&sonypi_compat.open_count);
        return 0;
 }
@@ -2315,8 +2318,10 @@ end:
  */
 static int sony_pic_disable(struct acpi_device *device)
 {
-       if (ACPI_FAILURE(acpi_evaluate_object(device->handle,
-                       "_DIS", NULL, NULL)))
+       acpi_status ret = acpi_evaluate_object(device->handle, "_DIS", NULL,
+                                              NULL);
+
+       if (ACPI_FAILURE(ret) && ret != AE_NOT_FOUND)
                return -ENXIO;
 
        dprintk("Device disabled\n");