aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2007-02-10 10:04:08 -0500
committerRichard Purdie <rpurdie@rpsys.net>2007-02-20 04:26:40 -0500
commit321709c5994f952b78d567fd7083dbebbdc381b7 (patch)
treedf237c216e8bab6ce5c14d5797a796d4bf889a92 /drivers/video
parente0e34ef7f02915cfe50e501e9f32c24217177a96 (diff)
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)
1829 bd->props->power = FB_BLANK_UNBLANK; 1829 bd->props->power = FB_BLANK_UNBLANK;
1830 backlight_update_status(bd); 1830 backlight_update_status(bd);
1831 1831
1832#ifdef CONFIG_PMAC_BACKLIGHT
1833 mutex_lock(&pmac_backlight_mutex);
1834 if (!pmac_backlight)
1835 pmac_backlight = bd;
1836 mutex_unlock(&pmac_backlight_mutex);
1837#endif
1838
1839 printk("aty128: Backlight initialized (%s)\n", name); 1832 printk("aty128: Backlight initialized (%s)\n", name);
1840 1833
1841 return; 1834 return;
@@ -1846,17 +1839,8 @@ error:
1846 1839
1847static void aty128_bl_exit(struct backlight_device *bd) 1840static void aty128_bl_exit(struct backlight_device *bd)
1848{ 1841{
1849 if (bd) { 1842 backlight_device_unregister(bd);
1850#ifdef CONFIG_PMAC_BACKLIGHT 1843 printk("aty128: Backlight unloaded\n");
1851 mutex_lock(&pmac_backlight_mutex);
1852 if (pmac_backlight == bd)
1853 pmac_backlight = NULL;
1854 mutex_unlock(&pmac_backlight_mutex);
1855#endif
1856 backlight_device_unregister(bd);
1857
1858 printk("aty128: Backlight unloaded\n");
1859 }
1860} 1844}
1861#endif /* CONFIG_FB_ATY128_BACKLIGHT */ 1845#endif /* CONFIG_FB_ATY128_BACKLIGHT */
1862 1846
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)
2198 bd->props->power = FB_BLANK_UNBLANK; 2198 bd->props->power = FB_BLANK_UNBLANK;
2199 backlight_update_status(bd); 2199 backlight_update_status(bd);
2200 2200
2201#ifdef CONFIG_PMAC_BACKLIGHT
2202 mutex_lock(&pmac_backlight_mutex);
2203 if (!pmac_backlight)
2204 pmac_backlight = bd;
2205 mutex_unlock(&pmac_backlight_mutex);
2206#endif
2207
2208 printk("aty: Backlight initialized (%s)\n", name); 2201 printk("aty: Backlight initialized (%s)\n", name);
2209 2202
2210 return; 2203 return;
@@ -2215,17 +2208,8 @@ error:
2215 2208
2216static void aty_bl_exit(struct backlight_device *bd) 2209static void aty_bl_exit(struct backlight_device *bd)
2217{ 2210{
2218 if (bd) { 2211 backlight_device_unregister(bd);
2219#ifdef CONFIG_PMAC_BACKLIGHT 2212 printk("aty: Backlight unloaded\n");
2220 mutex_lock(&pmac_backlight_mutex);
2221 if (pmac_backlight == bd)
2222 pmac_backlight = NULL;
2223 mutex_unlock(&pmac_backlight_mutex);
2224#endif
2225 backlight_device_unregister(bd);
2226
2227 printk("aty: Backlight unloaded\n");
2228 }
2229} 2213}
2230 2214
2231#endif /* CONFIG_FB_ATY_BACKLIGHT */ 2215#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)
192 bd->props->power = FB_BLANK_UNBLANK; 192 bd->props->power = FB_BLANK_UNBLANK;
193 backlight_update_status(bd); 193 backlight_update_status(bd);
194 194
195#ifdef CONFIG_PMAC_BACKLIGHT
196 mutex_lock(&pmac_backlight_mutex);
197 if (!pmac_backlight)
198 pmac_backlight = bd;
199 mutex_unlock(&pmac_backlight_mutex);
200#endif
201
202 printk("radeonfb: Backlight initialized (%s)\n", name); 195 printk("radeonfb: Backlight initialized (%s)\n", name);
203 196
204 return; 197 return;
@@ -215,12 +208,6 @@ void radeonfb_bl_exit(struct radeonfb_info *rinfo)
215 if (bd) { 208 if (bd) {
216 struct radeon_bl_privdata *pdata; 209 struct radeon_bl_privdata *pdata;
217 210
218#ifdef CONFIG_PMAC_BACKLIGHT
219 mutex_lock(&pmac_backlight_mutex);
220 if (pmac_backlight == bd)
221 pmac_backlight = NULL;
222 mutex_unlock(&pmac_backlight_mutex);
223#endif
224 pdata = class_get_devdata(&bd->class_dev); 211 pdata = class_get_devdata(&bd->class_dev);
225 backlight_device_unregister(bd); 212 backlight_device_unregister(bd);
226 kfree(pdata); 213 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 @@
14#include <linux/err.h> 14#include <linux/err.h>
15#include <linux/fb.h> 15#include <linux/fb.h>
16 16
17#ifdef CONFIG_PMAC_BACKLIGHT
18#include <asm/backlight.h>
19#endif
17 20
18#if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \ 21#if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \
19 defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE)) 22 defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE))
@@ -262,6 +265,13 @@ struct backlight_device *backlight_device_register(const char *name,
262 } 265 }
263 } 266 }
264 267
268#ifdef CONFIG_PMAC_BACKLIGHT
269 mutex_lock(&pmac_backlight_mutex);
270 if (!pmac_backlight)
271 pmac_backlight = new_bd;
272 mutex_unlock(&pmac_backlight_mutex);
273#endif
274
265 return new_bd; 275 return new_bd;
266} 276}
267EXPORT_SYMBOL(backlight_device_register); 277EXPORT_SYMBOL(backlight_device_register);
@@ -281,6 +291,13 @@ void backlight_device_unregister(struct backlight_device *bd)
281 291
282 pr_debug("backlight_device_unregister: name=%s\n", bd->class_dev.class_id); 292 pr_debug("backlight_device_unregister: name=%s\n", bd->class_dev.class_id);
283 293
294#ifdef CONFIG_PMAC_BACKLIGHT
295 mutex_lock(&pmac_backlight_mutex);
296 if (pmac_backlight == bd)
297 pmac_backlight = NULL;
298 mutex_unlock(&pmac_backlight_mutex);
299#endif
300
284 for (i = 0; i < ARRAY_SIZE(bl_class_device_attributes); i++) 301 for (i = 0; i < ARRAY_SIZE(bl_class_device_attributes); i++)
285 class_device_remove_file(&bd->class_dev, 302 class_device_remove_file(&bd->class_dev,
286 &bl_class_device_attributes[i]); 303 &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 @@
16#include "nv_type.h" 16#include "nv_type.h"
17#include "nv_proto.h" 17#include "nv_proto.h"
18 18
19#ifdef CONFIG_PMAC_BACKLIGHT
20#include <asm/backlight.h>
21#include <asm/machdep.h>
22#endif
23
24/* We do not have any information about which values are allowed, thus 19/* We do not have any information about which values are allowed, thus
25 * we used safe values. 20 * we used safe values.
26 */ 21 */
@@ -128,13 +123,6 @@ void nvidia_bl_init(struct nvidia_par *par)
128 bd->props->power = FB_BLANK_UNBLANK; 123 bd->props->power = FB_BLANK_UNBLANK;
129 backlight_update_status(bd); 124 backlight_update_status(bd);
130 125
131#ifdef CONFIG_PMAC_BACKLIGHT
132 mutex_lock(&pmac_backlight_mutex);
133 if (!pmac_backlight)
134 pmac_backlight = bd;
135 mutex_unlock(&pmac_backlight_mutex);
136#endif
137
138 printk("nvidia: Backlight initialized (%s)\n", name); 126 printk("nvidia: Backlight initialized (%s)\n", name);
139 127
140 return; 128 return;
@@ -148,15 +136,6 @@ void nvidia_bl_exit(struct nvidia_par *par)
148 struct fb_info *info = pci_get_drvdata(par->pci_dev); 136 struct fb_info *info = pci_get_drvdata(par->pci_dev);
149 struct backlight_device *bd = info->bl_dev; 137 struct backlight_device *bd = info->bl_dev;
150 138
151 if (bd) { 139 backlight_device_unregister(bd);
152#ifdef CONFIG_PMAC_BACKLIGHT 140 printk("nvidia: Backlight unloaded\n");
153 mutex_lock(&pmac_backlight_mutex);
154 if (pmac_backlight == bd)
155 pmac_backlight = NULL;
156 mutex_unlock(&pmac_backlight_mutex);
157#endif
158 backlight_device_unregister(bd);
159
160 printk("nvidia: Backlight unloaded\n");
161 }
162} 141}
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)
371 bd->props->power = FB_BLANK_UNBLANK; 371 bd->props->power = FB_BLANK_UNBLANK;
372 backlight_update_status(bd); 372 backlight_update_status(bd);
373 373
374#ifdef CONFIG_PMAC_BACKLIGHT
375 mutex_lock(&pmac_backlight_mutex);
376 if (!pmac_backlight)
377 pmac_backlight = bd;
378 mutex_unlock(&pmac_backlight_mutex);
379#endif
380
381 printk("riva: Backlight initialized (%s)\n", name); 374 printk("riva: Backlight initialized (%s)\n", name);
382 375
383 return; 376 return;
@@ -390,17 +383,8 @@ static void riva_bl_exit(struct fb_info *info)
390{ 383{
391 struct backlight_device *bd = info->bl_dev; 384 struct backlight_device *bd = info->bl_dev;
392 385
393 if (bd) { 386 backlight_device_unregister(bd);
394#ifdef CONFIG_PMAC_BACKLIGHT 387 printk("riva: Backlight unloaded\n");
395 mutex_lock(&pmac_backlight_mutex);
396 if (pmac_backlight == bd)
397 pmac_backlight = NULL;
398 mutex_unlock(&pmac_backlight_mutex);
399#endif
400 backlight_device_unregister(bd);
401
402 printk("riva: Backlight unloaded\n");
403 }
404} 388}
405#else 389#else
406static inline void riva_bl_init(struct riva_par *par) {} 390static inline void riva_bl_init(struct riva_par *par) {}