> -----Original Message----- > From: Florian Tobias Schandinat [mailto:FlorianSchandinat@xxxxxx] > Sent: Sunday, October 02, 2011 9:18 AM > To: Inki Dae > Cc: linux-fbdev@xxxxxxxxxxxxxxx; kyungmin.park@xxxxxxxxxxx; > lars@xxxxxxxxxx > Subject: Re: [PATCH v2 2/2] fb: add events for early fb event support. > > On 09/27/2011 04:48 AM, Inki Dae wrote: > > > >> -----Original Message----- > >> From: Inki Dae [mailto:inki.dae@xxxxxxxxxxx] > >> Sent: Monday, September 26, 2011 11:37 PM > >> To: FlorianSchandinat@xxxxxx; linux-fbdev@xxxxxxxxxxxxxxx > >> Cc: kyungmin.park@xxxxxxxxxxx; lars@xxxxxxxxxx; Inki Dae > >> Subject: [PATCH v2 2/2] fb: add events for early fb event support. > >> > >> this patch adds FB_EARLY_EVENT_BLANK and FB_R_EARLY_EVENT_BLANK > >> event mode supports. first, fb_notifier_call_chain() is called with > >> FB_EARLY_EVENT_BLANK and fb_blank() of specific fb driver is called > >> and then fb_notifier_call_chain() is called with FB_EVENT_BLANK again > >> at fb_blank(). and if fb_blank() was failed then > fb_nitifier_call_chain() > >> would be called with FB_R_EARLY_EVENT_BLANK to revert the previous > > effects. > > Is my assumption correct that the framebuffer driver is independent of the > specific LCD driver and therefore they can be used independently (at least > in > theory)? Yes, right. they can be used independently. If the answer is yes and there is no direct dependance this looks > like > the right solution. I could take this patch (or rather the fixed up > version when > you send it) but I'm unsure how to progress with the LCD part, would be > nice to > get Richard's Ack on it. > > Ok, get it. and I will re-send fixed patch soon. thank you. > Best regards, > > Florian Tobias Schandinat > > >> > >> Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx> > >> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> > >> --- > >> drivers/video/fbmem.c | 21 +++++++++++++++------ > >> include/linux/fb.h | 4 ++++ > >> 2 files changed, 19 insertions(+), 6 deletions(-) > >> > >> diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c > >> index ad93629..a2bd17b 100644 > >> --- a/drivers/video/fbmem.c > >> +++ b/drivers/video/fbmem.c > >> @@ -1032,20 +1032,29 @@ fb_set_var(struct fb_info *info, struct > >> fb_var_screeninfo *var) > >> int > >> fb_blank(struct fb_info *info, int blank) > >> { > >> - int ret = -EINVAL; > >> + struct fb_event event; > >> + int ret = -EINVAL, early_ret; > >> > >> if (blank > FB_BLANK_POWERDOWN) > >> blank = FB_BLANK_POWERDOWN; > >> > >> + event.info = info; > >> + event.data = ␣ > >> + > >> + early_ret = fb_notifier_call_chain(FB_EARLY_EVENT_BLANK, &event); > >> + > >> if (info->fbops->fb_blank) > >> ret = info->fbops->fb_blank(blank, info); > >> > >> - if (!ret) { > >> - struct fb_event event; > >> - > >> - event.info = info; > >> - event.data = ␣ > >> + if (!ret) > >> fb_notifier_call_chain(FB_EVENT_BLANK, &event); > >> + else { > >> + /* > >> + * if fb_blank is failed then revert effects of > >> + * the early blank event. > >> + */ > >> + if (early_ret < 0) > > > > Ah, this is condition wrong so I will fix it to "if (!early_ret)". > > > >> + fb_notifier_call_chain(FB_R_EARLY_EVENT_BLANK, > > &event); > >> } > >> > >> return ret; > >> diff --git a/include/linux/fb.h b/include/linux/fb.h > >> index 1d6836c..29f53d5 100644 > >> --- a/include/linux/fb.h > >> +++ b/include/linux/fb.h > >> @@ -549,6 +549,10 @@ 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 > >> +/* A hardware display blank early change occured */ > >> +#define FB_EARLY_EVENT_BLANK 0x10 > >> +/* A hardware display blank revert early change occured */ > >> +#define FB_R_EARLY_EVENT_BLANK 0x11 > >> > >> struct fb_event { > >> struct fb_info *info; > >> -- > >> 1.7.4.1 > > -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html