RE: [PATCH v2 2/2] fb: add events for early fb event support.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----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 = &blank;
> >> +
> >> +	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 = &blank;
> >> +	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


[Index of Archives]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Tourism]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux