Success with a raw LCD interface, but what about color space?

First of all I want to report success connecting a raw LCD panel to
the Beagle Board rev. C using
inexpensive level converters - LVG8T245. With both 3.3 and 1.8V
available on the J4/J5 connectors that was a natural choice.
On the software side I had to brute force the sync polarity bits in
the dispc.c file to get active low sync.
BTW it didn't bother the DVI-connected display at all but made all the
difference for my panel.

Now the next issue. DVI is using 24 bits for color. My panel uses 18.
I have one version (1.3.3) of U-boot that has LCD support (but for
some reason doesn't have MMC). That was a cheap way to play with video
by directly changing the register values in the code. I quickly
changed one bit in DISPC_CONTROL to use 18 bits and the picture on my
raw LCD is now perfect and the DVI has wrong colors as expected.

Of course I can brute force the Linux driver in the same way, but is
there a better way? The color depth parameter in the command line has
nothing to do with it.