summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2007-02-08 01:33:24 +0100
committerRichard Purdie <rpurdie@rpsys.net>2007-02-20 09:38:44 +0100
commita8db3c1948eb30cd6988b5b96b654f591e6280b1 (patch)
treeb1950b1bd1f72a6b67c927cf14e7112fd6628be9
parentbacklight: Minor code cleanups for corgi_bl.c (diff)
downloadlinux-a8db3c1948eb30cd6988b5b96b654f591e6280b1.tar.xz
linux-a8db3c1948eb30cd6988b5b96b654f591e6280b1.zip
backlight: Minor code cleanups for hp680_bl.c
Since people use this code as an example, clean it up to to use platform_*_drvdata instead of a global variable. Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
-rw-r--r--drivers/video/backlight/hp680_bl.c39
1 files changed, 24 insertions, 15 deletions
diff --git a/drivers/video/backlight/hp680_bl.c b/drivers/video/backlight/hp680_bl.c
index 074625a46e3d..e7444c8f289d 100644
--- a/drivers/video/backlight/hp680_bl.c
+++ b/drivers/video/backlight/hp680_bl.c
@@ -28,7 +28,6 @@
static int hp680bl_suspended;
static int current_intensity = 0;
static DEFINE_SPINLOCK(bl_lock);
-static struct backlight_device *hp680_backlight_device;
static void hp680bl_send_intensity(struct backlight_device *bd)
{
@@ -66,17 +65,21 @@ static void hp680bl_send_intensity(struct backlight_device *bd)
#ifdef CONFIG_PM
-static int hp680bl_suspend(struct platform_device *dev, pm_message_t state)
+static int hp680bl_suspend(struct platform_device *pdev, pm_message_t state)
{
+ struct backlight_device *bd = platform_get_drvdata(pdev);
+
hp680bl_suspended = 1;
- hp680bl_send_intensity(hp680_backlight_device);
+ hp680bl_send_intensity(bd);
return 0;
}
-static int hp680bl_resume(struct platform_device *dev)
+static int hp680bl_resume(struct platform_device *pdev)
{
+ struct backlight_device *bd = platform_get_drvdata(pdev);
+
hp680bl_suspended = 0;
- hp680bl_send_intensity(hp680_backlight_device);
+ hp680bl_send_intensity(bd);
return 0;
}
#else
@@ -101,26 +104,32 @@ static struct backlight_properties hp680bl_data = {
.update_status = hp680bl_set_intensity,
};
-static int __init hp680bl_probe(struct platform_device *dev)
+static int __init hp680bl_probe(struct platform_device *pdev)
{
- hp680_backlight_device = backlight_device_register ("hp680-bl",
- &dev->dev, NULL, &hp680bl_data);
- if (IS_ERR (hp680_backlight_device))
- return PTR_ERR (hp680_backlight_device);
+ struct backlight_device *bd;
+
+ bd = backlight_device_register ("hp680-bl", &pdev->dev, NULL,
+ &hp680bl_data);
+ if (IS_ERR(bd))
+ return PTR_ERR(bd);
- hp680_backlight_device->props->brightness = HP680_DEFAULT_INTENSITY;
- hp680bl_send_intensity(hp680_backlight_device);
+ platform_set_drvdata(pdev, bd);
+
+ bd->props->brightness = HP680_DEFAULT_INTENSITY;
+ hp680bl_send_intensity(bd);
return 0;
}
-static int hp680bl_remove(struct platform_device *dev)
+static int hp680bl_remove(struct platform_device *pdev)
{
+ struct backlight_device *bd = platform_get_drvdata(pdev);
+
hp680bl_data.brightness = 0;
hp680bl_data.power = 0;
- hp680bl_send_intensity(hp680_backlight_device);
+ hp680bl_send_intensity(bd);
- backlight_device_unregister(hp680_backlight_device);
+ backlight_device_unregister(bd);
return 0;
}