linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* porting fb driver to 2, 6(fb_get_fix, fb_get_var)
@ 2006-06-12 12:26 syed khader
  2006-06-12 12:44 ` Antonino A. Daplas
  0 siblings, 1 reply; 6+ messages in thread
From: syed khader @ 2006-06-12 12:26 UTC (permalink / raw)
  To: linux-fbdev-devel

Hi,
  I am trying to port one of our LCD display frame
buffer driver to 2.6 kernel.
  The old 2.4 kernel had these functions defined in
fb_ops
    fb_open:    
    fb_release:
    fb_get_fix: 
    fb_get_var:     
    fb_set_var: 
    fb_get_cmap:
    fb_set_cmap: 
    fb_ioctl:   

  But the latest 2.6 fb_ops has removed these and
there is entirely new set of functions. 
  I tried to go to list archives but I could not find
information. 
  What functions in 2.6 fb_ops should to used to
implement this old 2.4 set of functions?

Regards
Syed






__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: porting fb driver to 2, 6(fb_get_fix, fb_get_var)
  2006-06-12 12:26 porting fb driver to 2, 6(fb_get_fix, fb_get_var) syed khader
@ 2006-06-12 12:44 ` Antonino A. Daplas
  2006-06-20 12:01   ` syed khader
  0 siblings, 1 reply; 6+ messages in thread
From: Antonino A. Daplas @ 2006-06-12 12:44 UTC (permalink / raw)
  To: linux-fbdev-devel

syed khader wrote:
> Hi,
>   I am trying to port one of our LCD display frame
> buffer driver to 2.6 kernel.
>   The old 2.4 kernel had these functions defined in
> fb_ops
>     fb_open:    
>     fb_release:

These 2 are still in 2.6, but they're optional.

>     fb_get_fix: 
>     fb_get_var:     

Gone.

>     fb_set_var: 

The above is split into:

fb_check_var() - see if the requested var is compatible
                 and if not, round up to the next
                 legal value

fb_set_par()  - set the hardware based on the current
                var
>     fb_get_cmap:

gone

>     fb_set_cmap:

replaced by fb_setcolreg()

 
>     fb_ioctl:   

optional.

Additional required ops for 2.6.

fb_imageblit - expand monochrome to color and/or
               expand 8-bit pseudocolor to color

Generic version for packed-pixel: cfb_imageblit

fb_fillrect - fill rectangular area with solid color

Generic version for packed-pixel: cfb_fillrect


fb_copyarea - copy rectangular area

Generic version for packed-pixel: cfb_copyarea


> 
>   But the latest 2.6 fb_ops has removed these and
> there is entirely new set of functions. 
>   I tried to go to list archives but I could not find
> information. 
>   What functions in 2.6 fb_ops should to used to
> implement this old 2.4 set of functions?

Look at skeletonfb.c for comments.  The simplest
framebuffer driver you can start with is vfb.c


Tony

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: porting fb driver to 2, 6(fb_get_fix, fb_get_var)
  2006-06-12 12:44 ` Antonino A. Daplas
@ 2006-06-20 12:01   ` syed khader
  2006-06-20 14:25     ` Antonino A. Daplas
  0 siblings, 1 reply; 6+ messages in thread
From: syed khader @ 2006-06-20 12:01 UTC (permalink / raw)
  To: linux-fbdev-devel



--- "Antonino A. Daplas" <adaplas@gmail.com> wrote:

> syed khader wrote:
> > Hi,
> >   I am trying to port one of our LCD display frame
> > buffer driver to 2.6 kernel.
> >   The old 2.4 kernel had these functions defined
> in
> > fb_ops
> >     fb_open:    
> >     fb_release:
> 
> These 2 are still in 2.6, but they're optional.
> 
> >     fb_get_fix: 
> >     fb_get_var:     
> 
> Gone.
If they were gone do I have to just remove these
functions in the older version of the driver and
compile again. Will that suffice?
> 
> >     fb_set_var: 
> 
> The above is split into:
> 
> fb_check_var() - see if the requested var is
> compatible
>                  and if not, round up to the next
>                  legal value
> 
> fb_set_par()  - set the hardware based on the
> current
>                 var
> >     fb_get_cmap:
> 
> gone
> 
> >     fb_set_cmap:
> 
> replaced by fb_setcolreg()
> 
>  
> >     fb_ioctl:   
> 
> optional.
> 
> Additional required ops for 2.6.
> 
> fb_imageblit - expand monochrome to color and/or
>                expand 8-bit pseudocolor to color
> 
> Generic version for packed-pixel: cfb_imageblit
> 
> fb_fillrect - fill rectangular area with solid color
> 
> Generic version for packed-pixel: cfb_fillrect
> 
> 
> fb_copyarea - copy rectangular area
> 
> Generic version for packed-pixel: cfb_copyarea
> 
> 
> > 
> >   But the latest 2.6 fb_ops has removed these and
> > there is entirely new set of functions. 
> >   I tried to go to list archives but I could not
> find
> > information. 
> >   What functions in 2.6 fb_ops should to used to
> > implement this old 2.4 set of functions?
> 
> Look at skeletonfb.c for comments.  The simplest
> framebuffer driver you can start with is vfb.c
> 
> 
> Tony
> 
> 
  Another question: What happens to "struct display"
being used in the older version.

Regards
Syed

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: porting fb driver to 2, 6(fb_get_fix, fb_get_var)
  2006-06-20 12:01   ` syed khader
@ 2006-06-20 14:25     ` Antonino A. Daplas
  2006-06-21  7:37       ` syed khader
  0 siblings, 1 reply; 6+ messages in thread
From: Antonino A. Daplas @ 2006-06-20 14:25 UTC (permalink / raw)
  To: linux-fbdev-devel

syed khader wrote:
> 
> --- "Antonino A. Daplas" <adaplas@gmail.com> wrote:
> 
>> syed khader wrote:
>>> Hi,
>>>   I am trying to port one of our LCD display frame
>>> buffer driver to 2.6 kernel.
>>>   The old 2.4 kernel had these functions defined
>> in
>>> fb_ops
>>>     fb_open:    
>>>     fb_release:
>> These 2 are still in 2.6, but they're optional.
>>
>>>     fb_get_fix: 
>>>     fb_get_var:     
>> Gone.
> If they were gone do I have to just remove these
> functions in the older version of the driver and
> compile again. Will that suffice?

That, plus you need to add the functions that are
new in 2.6, as mentioned below.

>>>     fb_set_var: 
>> The above is split into:
>>
>> fb_check_var() - see if the requested var is
>> compatible
>>                  and if not, round up to the next
>>                  legal value
>>
>> fb_set_par()  - set the hardware based on the
>> current
>>                 var
>>>     fb_get_cmap:
>> gone
>>
>>>     fb_set_cmap:
>> replaced by fb_setcolreg()
>>
>>  
>>>     fb_ioctl:   
>> optional.
>>
>> Additional required ops for 2.6.
>>
>> fb_imageblit - expand monochrome to color and/or
>>                expand 8-bit pseudocolor to color
>>
>> Generic version for packed-pixel: cfb_imageblit
>>
>> fb_fillrect - fill rectangular area with solid color
>>
>> Generic version for packed-pixel: cfb_fillrect
>>
>>
>> fb_copyarea - copy rectangular area
>>
>> Generic version for packed-pixel: cfb_copyarea
>>
>>
>>>   But the latest 2.6 fb_ops has removed these and
>>> there is entirely new set of functions. 
>>>   I tried to go to list archives but I could not
>> find
>>> information. 
>>>   What functions in 2.6 fb_ops should to used to
>>> implement this old 2.4 set of functions?
>> Look at skeletonfb.c for comments.  The simplest
>> framebuffer driver you can start with is vfb.c
>>
>>
>> Tony
>>
>>
>   Another question: What happens to "struct display"
> being used in the older version.

It's gone.  It's now private to the framebuffer console
which you need not worry about.

Tony

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: porting fb driver to 2, 6(fb_get_fix, fb_get_var)
  2006-06-20 14:25     ` Antonino A. Daplas
@ 2006-06-21  7:37       ` syed khader
  2006-06-21  8:41         ` Antonino A. Daplas
  0 siblings, 1 reply; 6+ messages in thread
From: syed khader @ 2006-06-21  7:37 UTC (permalink / raw)
  To: linux-fbdev-devel



--- "Antonino A. Daplas" <adaplas@gmail.com> wrote:

> syed khader wrote:
> > 
> > --- "Antonino A. Daplas" <adaplas@gmail.com>
> wrote:
> > 
> >> syed khader wrote:
> >>> Hi,
> >>>   I am trying to port one of our LCD display
> frame
> >>> buffer driver to 2.6 kernel.
> >>>   The old 2.4 kernel had these functions defined
> >> in
> >>> fb_ops
> >>>     fb_open:    
> >>>     fb_release:
> >> These 2 are still in 2.6, but they're optional.
> >>
> >>>     fb_get_fix: 
> >>>     fb_get_var:     
> >> Gone.
> > If they were gone do I have to just remove these
> > functions in the older version of the driver and
> > compile again. Will that suffice?
> 
> That, plus you need to add the functions that are
> new in 2.6, as mentioned below.
> 
> >>>     fb_set_var: 
> >> The above is split into:
> >>
> >> fb_check_var() - see if the requested var is
> >> compatible
> >>                  and if not, round up to the next
> >>                  legal value
> >>
> >> fb_set_par()  - set the hardware based on the
> >> current
> >>                 var
> >>>     fb_get_cmap:
> >> gone
> >>
> >>>     fb_set_cmap:
> >> replaced by fb_setcolreg()
> >>
> >>  
> >>>     fb_ioctl:   
> >> optional.
> >>
> >> Additional required ops for 2.6.
> >>
> >> fb_imageblit - expand monochrome to color and/or
> >>                expand 8-bit pseudocolor to color
> >>
> >> Generic version for packed-pixel: cfb_imageblit
> >>
> >> fb_fillrect - fill rectangular area with solid
> color
> >>
> >> Generic version for packed-pixel: cfb_fillrect
> >>
> >>
> >> fb_copyarea - copy rectangular area
> >>
> >> Generic version for packed-pixel: cfb_copyarea
> >>
> >>
> >>>   But the latest 2.6 fb_ops has removed these
> and
> >>> there is entirely new set of functions. 
> >>>   I tried to go to list archives but I could not
> >> find
> >>> information. 
> >>>   What functions in 2.6 fb_ops should to used to
> >>> implement this old 2.4 set of functions?
> >> Look at skeletonfb.c for comments.  The simplest
> >> framebuffer driver you can start with is vfb.c
> >>
> >>
> >> Tony
> >>
> >>
> >   Another question: What happens to "struct
> display"
> > being used in the older version.
> 
> It's gone.  It's now private to the framebuffer
> console
> which you need not worry about.
> 
> Tony
>
Thanks for the inputs. Written as per your
suggestions. I still have these questions:
1) The 2.4 driver code had fb_ioctl defined,
apparently there is a user space application which
uses these ioctls.(Basically these ioctls are used to
set X and Y fontsizes and print at x and y
coordinates) Shall I retain these ioctl OR does 2.6
framebuffer has a different mechanism to do this?
2) How can I know whether generic versions
(cfb_imageblit & cfb_fillrect) will be sufficient OR  
I should write specific to my LCD hardware.

Regards
Syed



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: porting fb driver to 2, 6(fb_get_fix, fb_get_var)
  2006-06-21  7:37       ` syed khader
@ 2006-06-21  8:41         ` Antonino A. Daplas
  0 siblings, 0 replies; 6+ messages in thread
From: Antonino A. Daplas @ 2006-06-21  8:41 UTC (permalink / raw)
  To: linux-fbdev-devel, syed khader

syed khader wrote:
> 
> --- "Antonino A. Daplas" <adaplas@gmail.com> wrote:
> 
>> syed khader wrote:
>>> --- "Antonino A. Daplas" <adaplas@gmail.com>
>> wrote:
>>>> syed khader wrote:
>>
> Thanks for the inputs. Written as per your
> suggestions. I still have these questions:
> 1) The 2.4 driver code had fb_ioctl defined,
> apparently there is a user space application which
> uses these ioctls.(Basically these ioctls are used to
> set X and Y fontsizes and print at x and y
> coordinates)

If the 2.4 driver an xxxfb_ioctl() hook, then yes, you
can retain them practically unchanged.

(Just curious about the description of the ioctl, I don't
think you will need them for 2.6 as the driver should have
no concept of fontsizes)

> Shall I retain these ioctl OR does 2.6
> framebuffer has a different mechanism to do this?

You can retain driver-specific ioctls.

> 2) How can I know whether generic versions
> (cfb_imageblit & cfb_fillrect) will be sufficient OR  
> I should write specific to my LCD hardware.

If the framebuffer supports packed-pixel formats, then the
cfb_* drawing functions are sufficient.

In 2.4, if your driver is linked to fbcon-cfb*.c, then
you should be fine using the generic functions.

Tony

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-06-21  8:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-12 12:26 porting fb driver to 2, 6(fb_get_fix, fb_get_var) syed khader
2006-06-12 12:44 ` Antonino A. Daplas
2006-06-20 12:01   ` syed khader
2006-06-20 14:25     ` Antonino A. Daplas
2006-06-21  7:37       ` syed khader
2006-06-21  8:41         ` Antonino A. Daplas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).