Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=994efacdf9a087b52f71e620b58dfa526b0cf928
Commit:     994efacdf9a087b52f71e620b58dfa526b0cf928
Parent:     34f18a71d9bc55e8210c3fe02938336f82f40b30
Author:     Richard Purdie <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 9 09:46:45 2007 +0000
Committer:  Richard Purdie <[EMAIL PROTECTED]>
CommitDate: Tue Feb 20 08:38:45 2007 +0000

    backlight/fbcon: Add FB_EVENT_CONBLANK
    
    The backlight class wants notification whenever the console is blanked
    but doesn't get this when hardware blanking fails and software blanking
    is used. Changing FB_EVENT_BLANK to report both would be a behaviour
    change which could confuse the console layer so add a new event for
    software blanking and have the backlight class listen for both.
    
    Signed-off-by: Richard Purdie <[EMAIL PROTECTED]>
---
 drivers/video/backlight/backlight.c |    2 +-
 drivers/video/console/fbcon.c       |    7 +++++++
 include/linux/fb.h                  |    4 +++-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/video/backlight/backlight.c 
b/drivers/video/backlight/backlight.c
index 4f987c4..5490b2a 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -28,7 +28,7 @@ static int fb_notifier_callback(struct notifier_block *self,
        struct fb_event *evdata = data;
 
        /* If we aren't interested in this event, skip it immediately ... */
-       if (event != FB_EVENT_BLANK)
+       if (event != FB_EVENT_BLANK && event != FB_EVENT_CONBLANK)
                return 0;
 
        bd = container_of(self, struct backlight_device, fb_notif);
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index be3f2c3..0429fd2 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -2233,6 +2233,8 @@ static int fbcon_switch(struct vc_data *vc)
 static void fbcon_generic_blank(struct vc_data *vc, struct fb_info *info,
                                int blank)
 {
+       struct fb_event event;
+
        if (blank) {
                unsigned short charmask = vc->vc_hi_font_mask ?
                        0x1ff : 0xff;
@@ -2243,6 +2245,11 @@ static void fbcon_generic_blank(struct vc_data *vc, 
struct fb_info *info,
                fbcon_clear(vc, 0, 0, vc->vc_rows, vc->vc_cols);
                vc->vc_video_erase_char = oldc;
        }
+
+
+       event.info = info;
+       event.data = &blank;
+       fb_notifier_call_chain(FB_EVENT_CONBLANK, &event);
 }
 
 static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
diff --git a/include/linux/fb.h b/include/linux/fb.h
index a78e256..bf7158b 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -516,13 +516,15 @@ struct fb_cursor_user {
 #define FB_EVENT_GET_CONSOLE_MAP        0x07
 /*      CONSOLE-SPECIFIC: set console to framebuffer mapping */
 #define FB_EVENT_SET_CONSOLE_MAP        0x08
-/*      A display blank is requested       */
+/*      A hardware display blank change occured */
 #define FB_EVENT_BLANK                  0x09
 /*      Private modelist is to be replaced */
 #define FB_EVENT_NEW_MODELIST           0x0A
 /*     The resolution of the passed in fb_info about to change and
         all vc's should be changed         */
 #define FB_EVENT_MODE_CHANGE_ALL       0x0B
+/*     A software display blank change occured */
+#define FB_EVENT_CONBLANK               0x0C
 
 struct fb_event {
        struct fb_info *info;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to