Re: Sparc64 and ATI fb, cannot mmap() - why?

From: Jakub Jelinek (jakub@redhat.com)
Date: Tue Jun 20 2000 - 07:18:05 EST


On Tue, Jun 20, 2000 at 02:02:01PM +0200, Francis Galiegue wrote:
> On Tue, 20 Jun 2000, David S. Miller wrote:
>
> >
> > The mmio_off fb mechanism is not supported on Sparc. It just so
> > happened to work because the uninitialized value (ie. 0) happened to
> > be where the frame buffer is on the other cards you tried.
> >
> > You have to know the offsets to the parts of the video device
> > aperature you wish to map. You can study the ati/cg6/ffb/etc.
> > drivers in the X server to see how the supported mechanism works.
> >
>
> Just a question... Why isn't this done in the framebuffer drivers directly? I
> know that VESA is a standard, but still, it's a real kludge to have to specify
> the offsets each time... Or at least that the offset be part of struct
> fb_fix_screeninfo?

Two reasons:
- binary compatibility
- because there are many such regions, which one would you choose

E.g. on FFB, you have 18 different memory regions you can mmap (some are
some control registers, some are different framebuffer mapping, like you can
access the framebuffer using a smart mapping (ie. it matters what you wrote
to the control regions when you're writing to the screen) or dumb mappings.
And there are various depths of the mapping etc., like 8bit R, G, B or X,
then 32bit, 64bit, etc.
Similarly on Mach64, some of the mappings do convert endianess, some don't,
etc.

        Jakub

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Jun 23 2000 - 21:00:19 EST