return result;
        }
 
-       asus_backlight_device = backlight_device_register("asus", NULL,
+       asus_backlight_device = backlight_device_register("asus",NULL,NULL,
                                                          &asus_backlight_data);
         if (IS_ERR(asus_backlight_device)) {
                printk(KERN_ERR "Could not register asus backlight device\n");
 
 
 static int brightness_init(void)
 {
-       ibm_backlight_device = backlight_device_register("ibm", NULL,
+       ibm_backlight_device = backlight_device_register("ibm", NULL, NULL,
                                                         &ibm_backlight_data);
        if (IS_ERR(ibm_backlight_device)) {
                printk(IBM_ERR "Could not register backlight device\n");
 
                        remove_proc_entry(PROC_TOSHIBA, acpi_root_dir);
        }
 
-       toshiba_backlight_device = backlight_device_register("toshiba", NULL,
+       toshiba_backlight_device = backlight_device_register("toshiba",NULL,
+                                               NULL,
                                                &toshiba_backlight_data);
         if (IS_ERR(toshiba_backlight_device)) {
                printk(KERN_ERR "Could not register toshiba backlight device\n");
 
 
        /* Register backlight stuff */
 
-       msibl_device = backlight_device_register("msi-laptop-bl", NULL, &msibl_props);
+       msibl_device = backlight_device_register("msi-laptop-bl", NULL, NULL,
+                                               &msibl_props);
        if (IS_ERR(msibl_device))
                return PTR_ERR(msibl_device);
 
 
        /* Register backlight device */
        snprintf(bl_name, sizeof(bl_name), "appledisplay%d",
                atomic_inc_return(&count_displays) - 1);
-       pdata->bd = backlight_device_register(bl_name, pdata,
+       pdata->bd = backlight_device_register(bl_name, NULL, NULL,
                                                &appledisplay_bl_data);
        if (IS_ERR(pdata->bd)) {
                err("appledisplay: Backlight registration failed");
 
  * Creates and registers new backlight class_device. Returns either an
  * ERR_PTR() or a pointer to the newly allocated device.
  */
-struct backlight_device *backlight_device_register(const char *name, void *devdata,
-                                                  struct backlight_properties *bp)
+struct backlight_device *backlight_device_register(const char *name,
+       struct device *dev,
+       void *devdata,
+       struct backlight_properties *bp)
 {
        int i, rc;
        struct backlight_device *new_bd;
        new_bd->props = bp;
        memset(&new_bd->class_dev, 0, sizeof(new_bd->class_dev));
        new_bd->class_dev.class = &backlight_class;
+       new_bd->class_dev.dev = dev;
        strlcpy(new_bd->class_dev.class_id, name, KOBJ_NAME_LEN);
        class_set_devdata(&new_bd->class_dev, devdata);
 
 
 };
 
 extern struct backlight_device *backlight_device_register(const char *name,
-       void *devdata, struct backlight_properties *bp);
+       struct device *dev,void *devdata,struct backlight_properties *bp);
 extern void backlight_device_unregister(struct backlight_device *bd);
 
 #define to_backlight_device(obj) container_of(obj, struct backlight_device, class_dev)