mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 08:19:28 +00:00
![Antonino A. Daplas](/assets/img/avatar_default.png)
The backlight and lcd subsystems can be notified by the framebuffer layer of blanking events. However, these subsystems, as a whole, can function independently from the framebuffer layer. But in order to enable to the lcd and backlight subsystems, the framebuffer has to be compiled also, effectively sucking in a huge amount of unneeded code. To prevent dependency problems, separate out the framebuffer notification mechanism from the framebuffer layer and permanently link it to the kernel. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
/*
|
|
* linux/drivers/video/fb_notify.c
|
|
*
|
|
* Copyright (C) 2006 Antonino Daplas <adaplas@pol.net>
|
|
*
|
|
* 2001 - Documented with DocBook
|
|
* - Brad Douglas <brad@neruo.com>
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file COPYING in the main directory of this archive
|
|
* for more details.
|
|
*/
|
|
#include <linux/fb.h>
|
|
#include <linux/notifier.h>
|
|
|
|
static BLOCKING_NOTIFIER_HEAD(fb_notifier_list);
|
|
|
|
/**
|
|
* fb_register_client - register a client notifier
|
|
* @nb: notifier block to callback on events
|
|
*/
|
|
int fb_register_client(struct notifier_block *nb)
|
|
{
|
|
return blocking_notifier_chain_register(&fb_notifier_list, nb);
|
|
}
|
|
EXPORT_SYMBOL(fb_register_client);
|
|
|
|
/**
|
|
* fb_unregister_client - unregister a client notifier
|
|
* @nb: notifier block to callback on events
|
|
*/
|
|
int fb_unregister_client(struct notifier_block *nb)
|
|
{
|
|
return blocking_notifier_chain_unregister(&fb_notifier_list, nb);
|
|
}
|
|
EXPORT_SYMBOL(fb_unregister_client);
|
|
|
|
/**
|
|
* fb_notifier_call_chain - notify clients of fb_events
|
|
*
|
|
*/
|
|
int fb_notifier_call_chain(unsigned long val, void *v)
|
|
{
|
|
return blocking_notifier_call_chain(&fb_notifier_list, val, v);
|
|
}
|
|
EXPORT_SYMBOL_GPL(fb_notifier_call_chain);
|