Title: [6189] trunk/drivers/video/backlight: [#4375] ADP5520 Multifunction LCD Backlight and Keypad Input Device
Revision
6189
Author
hennerich
Date
2009-03-17 08:29:43 -0500 (Tue, 17 Mar 2009)

Log Message

[#4375] ADP5520 Multifunction LCD Backlight and Keypad Input Device
Driver
Fixups per Mike's suggestions

Modified Paths

Diff

Modified: trunk/drivers/video/backlight/Kconfig (6188 => 6189)


--- trunk/drivers/video/backlight/Kconfig	2009-03-17 12:56:59 UTC (rev 6188)
+++ trunk/drivers/video/backlight/Kconfig	2009-03-17 13:29:43 UTC (rev 6189)
@@ -221,3 +221,5 @@
 	help
 	  If you have a LCD backlight connected to the BST/BL_SNK output of
 	  ADP5520 or ADP5501, say Y here to enable this driver.
+	  To compile this driver as a module, choose M here: the module will be
+	  called adp5520_bl

Modified: trunk/drivers/video/backlight/adp5520_bl.c (6188 => 6189)


--- trunk/drivers/video/backlight/adp5520_bl.c	2009-03-17 12:56:59 UTC (rev 6188)
+++ trunk/drivers/video/backlight/adp5520_bl.c	2009-03-17 13:29:43 UTC (rev 6189)
@@ -3,7 +3,6 @@
  *
  * Copyright 2009 Analog Devices Inc.
  *
- *
  * Licensed under the GPL-2 or later.
  */
 
@@ -57,11 +56,10 @@
 		ret |= adp5520_clr_bits(master,
 				MODE_STATUS, DIM_EN);
 
-	if (ret)
-		return ret;
+	if (!ret)
+		data->current_brightness = brightness;
 
-	data->current_brightness = brightness;
-	return 0;
+	return ret;
 }
 
 static int adp5520_bl_update_status(struct backlight_device *bl)
@@ -262,18 +260,25 @@
 	.attrs = adp5520_bl_attributes,
 };
 
-static int adp5520_bl_probe(struct platform_device *pdev)
+static int __devinit adp5520_bl_probe(struct platform_device *pdev)
 {
 	struct backlight_device *bl;
 	struct adp5520_bl *data;
 	int ret = 0;
 
-	data = "" adp5520_bl), GFP_KERNEL);
+	data = "" GFP_KERNEL);
 	if (data == NULL)
 		return -ENOMEM;
 
 	data->master = pdev->dev.parent;
 	data->pdata = pdev->dev.platform_data;
+
+	if (data->pdata  == NULL) {
+		dev_err(&pdev->dev, "missing platfrom data\n");
+		kfree(data);
+		return -ENODEV;
+	}
+
 	data->id = pdev->id;
 	data->current_brightness = 0;
 
@@ -291,8 +296,7 @@
 		bl->props.brightness = ADP5020_MAX_BRIGHTNESS;
 
 	if (data->pdata->en_ambl_sens)
-		ret = sysfs_create_group(&bl->dev.kobj,
-				&adp5520_bl_attr_group);
+		sysfs_create_group(&bl->dev.kobj, &adp5520_bl_attr_group);
 
 	platform_set_drvdata(pdev, bl);
 	ret |= adp5520_bl_setup(bl);
@@ -301,13 +305,12 @@
 	return ret;
 }
 
-static int adp5520_bl_remove(struct platform_device *pdev)
+static int __devexit adp5520_bl_remove(struct platform_device *pdev)
 {
 	struct backlight_device *bl = platform_get_drvdata(pdev);
 	struct adp5520_bl *data = ""
-	int ret;
 
-	ret = adp5520_clr_bits(data->master, MODE_STATUS, BL_EN);
+	adp5520_clr_bits(data->master, MODE_STATUS, BL_EN);
 
 	if (data->pdata->en_ambl_sens)
 		sysfs_remove_group(&bl->dev.kobj,
@@ -316,7 +319,7 @@
 	backlight_device_unregister(bl);
 	kfree(data);
 
-	return ret;
+	return 0;
 }
 
 #ifdef CONFIG_PM
@@ -345,7 +348,7 @@
 		.owner	= THIS_MODULE,
 	},
 	.probe		= adp5520_bl_probe,
-	.remove		= adp5520_bl_remove,
+	.remove		= __devexit_p(adp5520_bl_remove),
 	.suspend	= adp5520_bl_suspend,
 	.resume		= adp5520_bl_resume,
 };
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to