Subject: Re: wscons & framebuffers
To: Chris G. Demetriou <cgd@netbsd.org>
From: Brett D. Slager <bds@snarf.thnet.com>
List: tech-kern
Date: 03/22/1999 00:39:39
In message <87lngqce1z.fsf@redmail.redback.com>, you wrote:
> "Brett D. Slager" <bds@snarf.thnet.com> writes:
> > Additional information that may be desired includes:
> >
> > [ ... ]
>
> > u_int coresize; /* fb core mmap size */
> > u_int fboff; /* fb core memory offset */
> > u_int fbsize; /* fb core memory size */
> > u_int regoff; /* fb core registers offset */
> > u_int regsize; /* fb core registers size */
>
> These do not belong in this ioctl. they should be expressed
> indirectly by a bus_space() implementation in user space. it should
> be possible to map a device's multiple 'spaces' into user space.
> further determining how those spaces correspond to video memory,
> registers, etc., isn't nearly as simple as the "two regions" you
> describe.
No, it isn't that simple. You've got multiple display buffers, back buffers,
multiple register regions, RAMDACs, and possible aliases of all of them just
to name a few issues. But simple X support for framebuffers sure would be
easier with the two regions in the ioctl :) With wscons handling the input,
one Xserver could support a large number of framebuffers in the NetBSD tree
automatically. I had other designs in mind when I came up with those ioctl
fields, but decided to keep it simple as these fields met the needs at my
hands.
Would the user space bus_space implementation use the device driver d_mmap()
routine for mapped access, or some other mechanism? What means should be
used for getting the 'space' descriptions out of the kernel?
> > -#define WSDISPLAYIO_GETCMAP _IOW('W', 66, struct wsdisplay_cmap)
> > +#define WSDISPLAYIO_GETCMAP _IOR('W', 66, struct wsdisplay_cmap)
> This was not a bug, do not fix it.
Yup. Oops. My mistake. I missed the pointer contents of wsdisplay_cmap.
> cgd
--Brett