I'm trying to get a strange little device working, and i've run into a problem.

It's an LCD microdisplay, about 2 inches tall and 3 inches wide. it has
a resolution of 800x600 and 8-bit color. it's meant to be held up to your
eye for viewing. the optics are quite nice, you don't have to squint or
anything to see it. It's called the 'Optiscape II' and it was made by
Inviso who is now owned by Three Five Systems.

I have implemented a linux frame buffer console in the 2.2.20 kernel. So
I have a text console running on the frame buffer on the microdisplay.
I have some photos of the microdisplay and the text console running
on it here:
http://www.desertsol.com/~kevin/microdisplay

The microdisplay is a bit wierd in its mode of operation. When you want to 
write a pixel value to it, you have to write 32 pixels at a time, on a
32-pixel boundary! (8 32-bit words at a time, on an 8 32-bit word boundary).
Also, the memory you write the pixels into is a bit slow; if you write at
full speed it kinda causes problems. in my frame buffer i delay for one
microsecond between each write on a 450 MHz AMD K6-2 system.

If you don't meet those requirements (32 pixels at a time at a slow rate)
the display doesn't come out correct; pixels get moved around and things
look garbled.

In my kernel module, I control access to the memory, so if the console
code wants to write a pixel, I can figure out which 32-pixel block it's
in, read in the block, modify the 1 pixel, then write the whole block back
out. kinda slow, but slow is better than nothing for now.

I have implemented the ioctls and the mmap function in my kernel
module, so I can run XFree86 on it now using the fbdev module. (I'm
using the server that I got through up2date for redhat 7.2; the rpm
is XFree86-4.1.0-15.) But of course the display comes out garbled.

So, what i need to do is figure out how to intercept accesses to the
frame buffer memory to enforce the memory write speed limit and the
32-pixel-at-a-time rule.

I was excited at first when i found the access control stuff, but I don't
think that's quite what I need.

Any advice or even just pointers as to where to look would be greatly
appreciated!!

Attachment: msg04131/pgp00000.pgp
Description: PGP signature

Reply via email to