On 04/18/2018 06:22 AM, Noralf Trønnes wrote: > It turns out that the reason for this is that the pitft has a hw reset > circuit that resets only on power-on and not on each reboot through a > gpio like rpi-display does. > > When the driver is enabling the display pipeline it checks if the > controller is already initialized, and skips setup if it is. This means > that the rotation value is only applied after power-on on the pitft and > not on each reboot. > > Turning off the "display" before rebooting should also work: > > $ # change rotation value > $ echo "28" | sudo tee /sys/kernel/debug/dri/0/command > $ sudo reboot > > Rotation/mirror/flip/bgr is controlled by commmand 0x36. The current > value is returned by command 0x0b: > > $ sudo cat /sys/kernel/debug/dri/0/command | grep "0b:" > 0b: f8 > > So to fix this in the driver the rotation value has to always be applied > regardless of display "on" state. This can be done by moving the rotation > code in mi0283qt_enable() down after the out: label. Confirmed, turning off the display before rebooting works, thanks. To fix this correctly, it seems like there are two paths: * If it is always safe to apply the rotation value regardless of display state, move the rotation code down after out: in the mi0283qt driver. * If this fix is only safe on the pitft (and not on the other panels driven by the mi0283qt driver), either conditionalizing this behavior somehow, or making a separate ili9340 driver with this change. I'm willing to make patches if necessary here, but it is not clear which path is the correct one. ~tom _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel