diff options
author | Jason Chen <b02280@freescale.com> | 2011-08-30 10:19:58 +0800 |
---|---|---|
committer | Eric Miao <eric.miao@linaro.org> | 2011-11-10 10:40:32 +0800 |
commit | a2ba7a0a9707dc80325bdc2a2dabf9d0a21fd111 (patch) | |
tree | 2eaf6bce44d7d5a345b3dcc3f94a741287c60b66 | |
parent | e4fbc3c887710e09ce8fc026b273a0c70e92c618 (diff) |
fb: add PREMODE_CHANGE event support.
add PREMODE_CHANGE event to handle driver presetting before fb_set_par.
Signed-off-by: Jason Chen <b02280@freescale.com>
-rw-r--r-- | drivers/video/fbmem.c | 11 | ||||
-rw-r--r-- | include/linux/fb.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c index ad936295d8f..a65f5b57391 100644 --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c @@ -991,6 +991,17 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var) old_var = info->var; info->var = *var; + /* call pre-mode change */ + if (flags & FBINFO_MISC_USEREVENT) { + struct fb_event event; + int evnt = FB_EVENT_PREMODE_CHANGE; + + info->flags &= ~FBINFO_MISC_USEREVENT; + event.info = info; + event.data = &mode; + fb_notifier_call_chain(evnt, &event); + } + if (info->fbops->fb_set_par) { ret = info->fbops->fb_set_par(info); diff --git a/include/linux/fb.h b/include/linux/fb.h index 1d6836c498d..a67fe1e2b02 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -549,6 +549,8 @@ struct fb_cursor_user { #define FB_EVENT_FB_UNBIND 0x0E /* CONSOLE-SPECIFIC: remap all consoles to new fb - for vga switcheroo */ #define FB_EVENT_REMAP_ALL_CONSOLE 0x0F +/* PRE MODE CHANGE added by fsl */ +#define FB_EVENT_PREMODE_CHANGE 0x10 struct fb_event { struct fb_info *info; |