IMX8MM Display output rotation

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX8MM Display output rotation

3,855 Views
grigoritimonen
Contributor II

Hi,

We use NXP IMX 8MM EVK with Yocto Linux 4.14.98_2.0.0 and custom MIPI DSI display (DRM driver made on top of  Raydeon 67191 driver). Our display has a 720x1280 resolution and it is vertical.

Now I have to rotate display 270 degrees.

I've enabled CONFIG_FRAMEBUFFER_CONSOLE_ROTATION option in kernel config in order to rotate framebuffer console output and I am able to rotate console output with following commands:

root@imx8mmevk:~# cd /sys/class/graphics/fbcon
root@imx8mmevk:/sys/class/graphics/fbcon# echo 3 | sudo tee rotate_all
3

Next I have to rotate framebuffer for the gst-player video playback, QML viewer, IP camera input. So I want portrait display to act as a landscape one.

I was trying to write 3 to /sys/class/graphics/fb0/rotate, but with no effect.

Is there any support for framebuffer rotation?

Labels (1)
0 Kudos
1 Reply

3,237 Views
grigoritimonen
Contributor II

Finally I got it working by rotating Weston interface. Transform option didn't work for me previously.

 

The problem was in wrong KMS connector name in the weston.ini.

Connector name is listed under /sys/class/drm:

root@imx8mmevk:~# ls /sys/class/drm/
card0  card0-DSI-1  version

I was trying to use card0 and card0-DSI-1 as a KMS connector name in the weston.ini. Then I took a look at /var/log/weston.log and found that proper name is DSI-1.

 

[05:55:41.223] DRM: head 'DSI-1' found, connector 33 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[05:55:41.223] Registered plugin API 'weston_drm_output_api_v1' of size 24
[05:55:41.224] Chosen EGL config details:
               RGBA bits: 8 8 8 0
               swap interval range: 1 - 60
[05:55:41.224] No backlight control for output 'DSI-1'
[05:55:41.224] Output DSI-1 (crtc 31) video modes:
               720x1280@58.1, preferred, current, 67.3 MHz
[05:55:41.224] associating input device event0 with output DSI-1 (none by udev)
[05:55:41.224] associating input device event1 with output DSI-1 (none by udev)
[05:55:41.224] associating input device event2 with output DSI-1 (none by udev)
[05:55:41.224] Output 'DSI-1' enabled with head(s) DSI-1

So 'card0' part of name should be omitted.

Rotation works properly for me with following weston.ini:

root@imx8mmevk:~# cat /etc/xdg/weston/weston.ini
[core]
# i.MX: Disable idle timeout
idle-time=0
backend=drm-backend.so

[libinput]
touchscreen_calibrator=true

[output]
name=DSI-1
mode=720x1280@60
transform=270

[screen-share]
command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize

0 Kudos