diff options
Diffstat (limited to 'drivers/video/backlight/backlight.c')
-rw-r--r-- | drivers/video/backlight/backlight.c | 17 |
1 files changed, 17 insertions, 0 deletions
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 | } |
267 | EXPORT_SYMBOL(backlight_device_register); | 277 | EXPORT_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]); |