Inverting Display in vf61


We are using Vf61 with linux image 2.6. We are driving a 7" TFT display with RGB connection to show UI. We have configured the display in panel-simple.c.

Is there a way to Invert display by changing paramters in panel-simple.c?

We already tried xrandr -o inverted, as mentioned in link Rotate Display/Touch by 180° - Technical Support - Toradex Community and we are facing the same issue as mentioned in above Post:

LD UR Pins of Display is Connected to 3.3V and Gnd as per Design so We cannot change it via Hardware

Please suggest an alternate Method.

Aneesh KN

The DCU (Display Controller Unit) found in Colibri VF61 does not have a method to rotate the display hardware accelerated.

The only way to rotate is to make sure that the higher level application already draws rotated, such as rotating method using X. You write “Already tried xrandr -o inverted”, did that not work? What did not work/what was the error message printed when using this method?

Just like the mentioned link. Display is offset from top

could you provide an image of the offset on the display?

alt text

  1. Please see the shift in Right side of image
  2. This shift was not present before applying xrandr -o inverted
  3. Also the UI and startup of QT Based application became slow after inverting

1./2. It might be timing related. Can you double check the timings in panel-simple.c, especially (vsync start/end)

  1. What Qt version are you using? I guess becoming slow is really do to the whole rotation which needs to be done in software…
  1. The shift was not present before applying screen inversion (xrandr -o inverted).So we assumed Timings was good

  2. Is there a provision to Rotate Image by adjusting the Structure parameters in panel-simple.c

  3. Attached image Show QT Versions900-qtcreator-version.png

  4. Can you please clarify “Rotation needs to be done in software”

  1. Displays usually have some tolerance. Usually, when you use a configuration which is on the border of working, just the color can influence whether it is able to sync properly or not… That is why I really recommend to double check complete timings.
  2. panel-simple.c just specifies the timing the signals are transferred. There is no way to rotate the image using “display timings”…
  3. Can you send this information as text again, somehow the screenshot did not come through.
  4. There is no hardware mechanism in VF61 to rotate a picture. Graphics in a framebuffer are always from top left to bottom right. And so are data clocked out to the display (first pixel transmitted is top left, last pixel is transmitted bottom right). So the only way to rotate is really to change orders of bytes in memory such that the picture will appear rotated on the display. For Colibri VF61, which only has a 16-bit memory bus this is a major operation which costs lots of memory bus access… And hence makes the system slow. The only chance to relieve performance somewhat is if your framework supports rending rotated. With Qt, as far as I know, this is only supported with Qt 5’s Qml…

It is really non trivial to fix this issue in Software, especially with Colibri VF61. If somehow possible, I would really recommend mounting the display the right way around…

  1. QT Creator 4.0.2
    Based on QT5.7.0 (GCC (Red Hat 4.9.1-10), 64 bit)
    Build on Jun13 2016 01:05:36
    from revision 47b4f2c738

Thanks for the support We willl Try to find a way