Archive for November, 2010

Baby steps towards RandR goodies for xf86-video-omapfb

Tuesday, November 9th, 2010

For a long while I’ve been wanting to implement RandR support for xf86-video-omapfb, but never really got around it. Fortunately, Movial came to the rescue and allowed me to kickstart the RandR code on work time, yay for Movial!

The main question (which is always ‘why’) can be answered with the planned feature list and their use-cases:

  • Display mode switching: “real” and pixel doubling (scaled) modes
  • Rotation: orientation response to accelerometer data for example
  • Screen migration (cloning): HDMI output in your device? Flick of a switch and you are on it.
  • Screen expanding: Merge multiple screens into one. This one is a bit iffy, current kernel drivers don’t seem to support it, but…

The ‘how’ is too large topic for this post, but the general idea is to take advantage of the API the revised omapfb kernel driver (big thanks to Tomi Valkeinen) offers and manipulate the OMAP overlays to scan the framebuffer to different outputs.

I will post updates when the support reaches milestones, but here’s a “teaser” (ogg/theora, 860KiB, on youtube too) showing a Blaze board obey a script that enables/disables the different displays in a sequence with the xrandr tool. Blaze has two LCD’s, HDMI port and even an integrated DLP Pico projector though sadly I couldn’t get that one to work for the demonstration.

The current code is available from the git repository, master branch. As usual, testing and patches are welcomed (though don’t expect much from the testing part just yet).