ACPI: video: Add dev argument for backlight_device_register

This patch set adds generic abstract layer support for acpi video driver to
have generic user interface to control backlight and output switch control by
leveraging the existing backlight sysfs class driver, and by adding a new
video output sysfs class driver.

This patch:

Add dev argument for backlight_device_register to link the class device to
real device object. The platform specific driver should find a way to get the
real device object for their video device.

[akpm@osdl.org: build fix]
[akpm@osdl.org: fix msi-laptop.c]
Signed-off-by: Luming Yu <Luming.yu@intel.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>

authored by Yu Luming and committed by Len Brown 519ab5f2 f4715189

+13 -8
+1 -1
drivers/acpi/asus_acpi.c
··· 1402 return result; 1403 } 1404 1405 - asus_backlight_device = backlight_device_register("asus", NULL, 1406 &asus_backlight_data); 1407 if (IS_ERR(asus_backlight_device)) { 1408 printk(KERN_ERR "Could not register asus backlight device\n");
··· 1402 return result; 1403 } 1404 1405 + asus_backlight_device = backlight_device_register("asus",NULL,NULL, 1406 &asus_backlight_data); 1407 if (IS_ERR(asus_backlight_device)) { 1408 printk(KERN_ERR "Could not register asus backlight device\n");
+1 -1
drivers/acpi/ibm_acpi.c
··· 1714 1715 static int brightness_init(void) 1716 { 1717 - ibm_backlight_device = backlight_device_register("ibm", NULL, 1718 &ibm_backlight_data); 1719 if (IS_ERR(ibm_backlight_device)) { 1720 printk(IBM_ERR "Could not register backlight device\n");
··· 1714 1715 static int brightness_init(void) 1716 { 1717 + ibm_backlight_device = backlight_device_register("ibm", NULL, NULL, 1718 &ibm_backlight_data); 1719 if (IS_ERR(ibm_backlight_device)) { 1720 printk(IBM_ERR "Could not register backlight device\n");
+2 -1
drivers/acpi/toshiba_acpi.c
··· 590 remove_proc_entry(PROC_TOSHIBA, acpi_root_dir); 591 } 592 593 - toshiba_backlight_device = backlight_device_register("toshiba", NULL, 594 &toshiba_backlight_data); 595 if (IS_ERR(toshiba_backlight_device)) { 596 printk(KERN_ERR "Could not register toshiba backlight device\n");
··· 590 remove_proc_entry(PROC_TOSHIBA, acpi_root_dir); 591 } 592 593 + toshiba_backlight_device = backlight_device_register("toshiba",NULL, 594 + NULL, 595 &toshiba_backlight_data); 596 if (IS_ERR(toshiba_backlight_device)) { 597 printk(KERN_ERR "Could not register toshiba backlight device\n");
+2 -1
drivers/misc/msi-laptop.c
··· 317 318 /* Register backlight stuff */ 319 320 - msibl_device = backlight_device_register("msi-laptop-bl", NULL, &msibl_props); 321 if (IS_ERR(msibl_device)) 322 return PTR_ERR(msibl_device); 323
··· 317 318 /* Register backlight stuff */ 319 320 + msibl_device = backlight_device_register("msi-laptop-bl", NULL, NULL, 321 + &msibl_props); 322 if (IS_ERR(msibl_device)) 323 return PTR_ERR(msibl_device); 324
+1 -1
drivers/usb/misc/appledisplay.c
··· 283 /* Register backlight device */ 284 snprintf(bl_name, sizeof(bl_name), "appledisplay%d", 285 atomic_inc_return(&count_displays) - 1); 286 - pdata->bd = backlight_device_register(bl_name, pdata, 287 &appledisplay_bl_data); 288 if (IS_ERR(pdata->bd)) { 289 err("appledisplay: Backlight registration failed");
··· 283 /* Register backlight device */ 284 snprintf(bl_name, sizeof(bl_name), "appledisplay%d", 285 atomic_inc_return(&count_displays) - 1); 286 + pdata->bd = backlight_device_register(bl_name, NULL, NULL, 287 &appledisplay_bl_data); 288 if (IS_ERR(pdata->bd)) { 289 err("appledisplay: Backlight registration failed");
+5 -2
drivers/video/backlight/backlight.c
··· 190 * Creates and registers new backlight class_device. Returns either an 191 * ERR_PTR() or a pointer to the newly allocated device. 192 */ 193 - struct backlight_device *backlight_device_register(const char *name, void *devdata, 194 - struct backlight_properties *bp) 195 { 196 int i, rc; 197 struct backlight_device *new_bd; ··· 208 new_bd->props = bp; 209 memset(&new_bd->class_dev, 0, sizeof(new_bd->class_dev)); 210 new_bd->class_dev.class = &backlight_class; 211 strlcpy(new_bd->class_dev.class_id, name, KOBJ_NAME_LEN); 212 class_set_devdata(&new_bd->class_dev, devdata); 213
··· 190 * Creates and registers new backlight class_device. Returns either an 191 * ERR_PTR() or a pointer to the newly allocated device. 192 */ 193 + struct backlight_device *backlight_device_register(const char *name, 194 + struct device *dev, 195 + void *devdata, 196 + struct backlight_properties *bp) 197 { 198 int i, rc; 199 struct backlight_device *new_bd; ··· 206 new_bd->props = bp; 207 memset(&new_bd->class_dev, 0, sizeof(new_bd->class_dev)); 208 new_bd->class_dev.class = &backlight_class; 209 + new_bd->class_dev.dev = dev; 210 strlcpy(new_bd->class_dev.class_id, name, KOBJ_NAME_LEN); 211 class_set_devdata(&new_bd->class_dev, devdata); 212
+1 -1
include/linux/backlight.h
··· 54 }; 55 56 extern struct backlight_device *backlight_device_register(const char *name, 57 - void *devdata, struct backlight_properties *bp); 58 extern void backlight_device_unregister(struct backlight_device *bd); 59 60 #define to_backlight_device(obj) container_of(obj, struct backlight_device, class_dev)
··· 54 }; 55 56 extern struct backlight_device *backlight_device_register(const char *name, 57 + struct device *dev,void *devdata,struct backlight_properties *bp); 58 extern void backlight_device_unregister(struct backlight_device *bd); 59 60 #define to_backlight_device(obj) container_of(obj, struct backlight_device, class_dev)