Skip to contentSkip to conversation

video sysfs support - take 2: Add dev argument for backlight_device_register.

PATCH In review Yu Luming 3 participants 4 messages Nov 7, 2006 – Jan 9, 2007

Subsystems (3)
lore
Share & tools
lore

Yu Luming

author
#0 lore raw

PATCH 1/5 video sysfs support - take 2: 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.

Patch 1/5: adds 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.

---
 drivers/acpi/asus_acpi.c            |    2 +-
 drivers/acpi/ibm_acpi.c             |    2 +-
 drivers/acpi/toshiba_acpi.c         |    3 ++-
 drivers/video/backlight/backlight.c |    7 +++++--
 include/linux/backlight.h           |    2 +-
 5 files changed, 10 insertions(+), 6 deletions(-)
drivers/acpi/asus_acpi.c +1 -1
index a36436f..4d24efc 100644
@@ -1401,7 +1401,7 @@ static int __init asus_acpi_init(void)
 		return -ENODEV;
 	}
 
-	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");
drivers/acpi/ibm_acpi.c +1 -1
index 9658253..ba52b78 100644
@@ -2072,7 +2072,7 @@ #endif
 		}
 	}
 
-	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 ibm backlight device\n");
drivers/acpi/toshiba_acpi.c +2 -1
index 2f35f89..88aeccb 100644
@@ -590,7 +590,8 @@ static int __init toshiba_acpi_init(void
 			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");
drivers/video/backlight/backlight.c +5 -2
index 27597c5..1d97cdf 100644
@@ -190,8 +190,10 @@ static int fb_notifier_callback(struct n
  * 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;
@@ -206,6 +208,7 @@ struct backlight_device *backlight_devic
 	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);
 
include/linux/backlight.h +1 -1
index 75e91f5..a5cf1be 100644
@@ -54,7 +54,7 @@ struct backlight_device {
 };
 
 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)
#1 lore raw
Quoted 25 lines · Yu Luming

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.

Patch 1/5: adds 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.

---
 drivers/acpi/asus_acpi.c            |    2 +-
 drivers/acpi/ibm_acpi.c             |    2 +-
 drivers/acpi/toshiba_acpi.c         |    3 ++-
 drivers/video/backlight/backlight.c |    7 +++++--
 include/linux/backlight.h           |    2 +-
 5 files changed, 10 insertions(+), 6 deletions(-)
drivers/video/backlight/backlight.c +0 -0
index 27597c5..1d97cdf 100644
@@ -190,8 +190,10 @@ static int fb_notifier_callback(struct n
  * Creates and registers new backlight class_device. Returns either an
  * ERR_PTR() or a pointer to the newly allocated device.

drivers/video/backlight/backlight.c static int fb_notifier_callback(struct n · line 199

Quoted 10 lines
drivers/video/backlight/backlight.c +4 -2
  */
-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;

This patch breaks several platforms. If you're going to add parameters to a function like backlight_device_register, you could at least grep the tree and update all the users :-(.

To top it off, someone noticed some of the failures and fixed them but nobody thought to fix the drivers in drivers/video/backlight itself and a mac reference seems to have escaped too.

I'll send a patch to to Andrew to clean up this mess...

Richard

author
#2 lore raw
Quoted 32 lines · Richard Purdie
Quoted 31 lines · Yu Luming

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.

Patch 1/5: adds 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.

---
 drivers/acpi/asus_acpi.c            |    2 +-
 drivers/acpi/ibm_acpi.c             |    2 +-
 drivers/acpi/toshiba_acpi.c         |    3 ++-
 drivers/video/backlight/backlight.c |    7 +++++--
 include/linux/backlight.h           |    2 +-
 5 files changed, 10 insertions(+), 6 deletions(-)
drivers/video/backlight/backlight.c +3 -2
index 27597c5..1d97cdf 100644
@@ -190,8 +190,10 @@ static int fb_notifier_callback(struct n
  * 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,
Quoted 8 lines

drivers/video/backlight/backlight.c static int fb_notifier_callback(struct n · line 199

Quoted 4 lines
drivers/video/backlight/backlight.c +1 -0
+     struct backlight_properties *bp)
 {
      int i, rc;
      struct backlight_device *new_bd;

This patch breaks several platforms. If you're going to add parameters to a function like backlight_device_register, you could at least grep the tree and update all the users :-(.

yes, you are right. I just noticed that there are so many users when I sent out that patch. And all these users were disabled when I was testing patch. I'm sorry for that.

Quoted 4 lines

To top it off, someone noticed some of the failures and fixed them but nobody thought to fix the drivers in drivers/video/backlight itself and a mac reference seems to have escaped too.

If my memory serves me well, there is a patch for mac in mm. Not sure other drivers in video/backlight. But I should have sent it to some place.
Need to check.

Quoted 3 lines

I'll send a patch to to Andrew to clean up this mess...

thank you!

#3 lore raw
Quoted 9 lines
Quoted 4 lines

To top it off, someone noticed some of the failures and fixed them but nobody thought to fix the drivers in drivers/video/backlight itself and a mac reference seems to have escaped too.

If my memory serves me well, there is a patch for mac in mm. Not sure other drivers in video/backlight. But I should have sent it to some place.
Need to check.

I sent a patch some time ago to Andrew Morton for the fbdev drivers in the video directory. I belive that patch is main stream now.