summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2007-02-10 18:04:08 +0300
committerRichard Purdie <rpurdie@rpsys.net>2007-02-20 12:26:40 +0300
commit321709c5994f952b78d567fd7083dbebbdc381b7 (patch)
treedf237c216e8bab6ce5c14d5797a796d4bf889a92 /drivers/video
parente0e34ef7f02915cfe50e501e9f32c24217177a96 (diff)
downloadlinux-321709c5994f952b78d567fd7083dbebbdc381b7.tar.xz
backlight: Clean up pmac_backlight handling
Move the setting/unsetting of pmac_backlight into the backlight core instead of doing it in each driver. Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/aty/aty128fb.c20
-rw-r--r--drivers/video/aty/atyfb_base.c20
-rw-r--r--drivers/video/aty/radeon_backlight.c13
-rw-r--r--drivers/video/backlight/backlight.c17
-rw-r--r--drivers/video/nvidia/nv_backlight.c25
-rw-r--r--drivers/video/riva/fbdev.c20
6 files changed, 25 insertions, 90 deletions
diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c
index ef3e7861c27a..4de8d6252c3c 100644
--- a/drivers/video/aty/aty128fb.c
+++ b/drivers/video/aty/aty128fb.c
@@ -1829,13 +1829,6 @@ static void aty128_bl_init(struct aty128fb_par *par)
bd->props->power = FB_BLANK_UNBLANK;
backlight_update_status(bd);
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (!pmac_backlight)
- pmac_backlight = bd;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
-
printk("aty128: Backlight initialized (%s)\n", name);
return;
@@ -1846,17 +1839,8 @@ error:
static void aty128_bl_exit(struct backlight_device *bd)
{
- if (bd) {
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (pmac_backlight == bd)
- pmac_backlight = NULL;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
- backlight_device_unregister(bd);
-
- printk("aty128: Backlight unloaded\n");
- }
+ backlight_device_unregister(bd);
+ printk("aty128: Backlight unloaded\n");
}
#endif /* CONFIG_FB_ATY128_BACKLIGHT */
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index 66462286e704..35ba26567598 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -2198,13 +2198,6 @@ static void aty_bl_init(struct atyfb_par *par)
bd->props->power = FB_BLANK_UNBLANK;
backlight_update_status(bd);
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (!pmac_backlight)
- pmac_backlight = bd;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
-
printk("aty: Backlight initialized (%s)\n", name);
return;
@@ -2215,17 +2208,8 @@ error:
static void aty_bl_exit(struct backlight_device *bd)
{
- if (bd) {
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (pmac_backlight == bd)
- pmac_backlight = NULL;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
- backlight_device_unregister(bd);
-
- printk("aty: Backlight unloaded\n");
- }
+ backlight_device_unregister(bd);
+ printk("aty: Backlight unloaded\n");
}
#endif /* CONFIG_FB_ATY_BACKLIGHT */
diff --git a/drivers/video/aty/radeon_backlight.c b/drivers/video/aty/radeon_backlight.c
index f94e4616788d..8c775e6a7e03 100644
--- a/drivers/video/aty/radeon_backlight.c
+++ b/drivers/video/aty/radeon_backlight.c
@@ -192,13 +192,6 @@ void radeonfb_bl_init(struct radeonfb_info *rinfo)
bd->props->power = FB_BLANK_UNBLANK;
backlight_update_status(bd);
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (!pmac_backlight)
- pmac_backlight = bd;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
-
printk("radeonfb: Backlight initialized (%s)\n", name);
return;
@@ -215,12 +208,6 @@ void radeonfb_bl_exit(struct radeonfb_info *rinfo)
if (bd) {
struct radeon_bl_privdata *pdata;
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (pmac_backlight == bd)
- pmac_backlight = NULL;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
pdata = class_get_devdata(&bd->class_dev);
backlight_device_unregister(bd);
kfree(pdata);
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 5490b2ae5134..822a373d3346 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -14,6 +14,9 @@
#include <linux/err.h>
#include <linux/fb.h>
+#ifdef CONFIG_PMAC_BACKLIGHT
+#include <asm/backlight.h>
+#endif
#if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \
defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE))
@@ -262,6 +265,13 @@ struct backlight_device *backlight_device_register(const char *name,
}
}
+#ifdef CONFIG_PMAC_BACKLIGHT
+ mutex_lock(&pmac_backlight_mutex);
+ if (!pmac_backlight)
+ pmac_backlight = new_bd;
+ mutex_unlock(&pmac_backlight_mutex);
+#endif
+
return new_bd;
}
EXPORT_SYMBOL(backlight_device_register);
@@ -281,6 +291,13 @@ void backlight_device_unregister(struct backlight_device *bd)
pr_debug("backlight_device_unregister: name=%s\n", bd->class_dev.class_id);
+#ifdef CONFIG_PMAC_BACKLIGHT
+ mutex_lock(&pmac_backlight_mutex);
+ if (pmac_backlight == bd)
+ pmac_backlight = NULL;
+ mutex_unlock(&pmac_backlight_mutex);
+#endif
+
for (i = 0; i < ARRAY_SIZE(bl_class_device_attributes); i++)
class_device_remove_file(&bd->class_dev,
&bl_class_device_attributes[i]);
diff --git a/drivers/video/nvidia/nv_backlight.c b/drivers/video/nvidia/nv_backlight.c
index 2bebfeeb4f1d..0e2bc519dcab 100644
--- a/drivers/video/nvidia/nv_backlight.c
+++ b/drivers/video/nvidia/nv_backlight.c
@@ -16,11 +16,6 @@
#include "nv_type.h"
#include "nv_proto.h"
-#ifdef CONFIG_PMAC_BACKLIGHT
-#include <asm/backlight.h>
-#include <asm/machdep.h>
-#endif
-
/* We do not have any information about which values are allowed, thus
* we used safe values.
*/
@@ -128,13 +123,6 @@ void nvidia_bl_init(struct nvidia_par *par)
bd->props->power = FB_BLANK_UNBLANK;
backlight_update_status(bd);
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (!pmac_backlight)
- pmac_backlight = bd;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
-
printk("nvidia: Backlight initialized (%s)\n", name);
return;
@@ -148,15 +136,6 @@ void nvidia_bl_exit(struct nvidia_par *par)
struct fb_info *info = pci_get_drvdata(par->pci_dev);
struct backlight_device *bd = info->bl_dev;
- if (bd) {
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (pmac_backlight == bd)
- pmac_backlight = NULL;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
- backlight_device_unregister(bd);
-
- printk("nvidia: Backlight unloaded\n");
- }
+ backlight_device_unregister(bd);
+ printk("nvidia: Backlight unloaded\n");
}
diff --git a/drivers/video/riva/fbdev.c b/drivers/video/riva/fbdev.c
index ab00350907dd..3a75def01b28 100644
--- a/drivers/video/riva/fbdev.c
+++ b/drivers/video/riva/fbdev.c
@@ -371,13 +371,6 @@ static void riva_bl_init(struct riva_par *par)
bd->props->power = FB_BLANK_UNBLANK;
backlight_update_status(bd);
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (!pmac_backlight)
- pmac_backlight = bd;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
-
printk("riva: Backlight initialized (%s)\n", name);
return;
@@ -390,17 +383,8 @@ static void riva_bl_exit(struct fb_info *info)
{
struct backlight_device *bd = info->bl_dev;
- if (bd) {
-#ifdef CONFIG_PMAC_BACKLIGHT
- mutex_lock(&pmac_backlight_mutex);
- if (pmac_backlight == bd)
- pmac_backlight = NULL;
- mutex_unlock(&pmac_backlight_mutex);
-#endif
- backlight_device_unregister(bd);
-
- printk("riva: Backlight unloaded\n");
- }
+ backlight_device_unregister(bd);
+ printk("riva: Backlight unloaded\n");
}
#else
static inline void riva_bl_init(struct riva_par *par) {}