Hi Dmitry, sorry for the late reply. On Sun, Mar 8, 2020 at 12:25 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote: > > 06.03.2020 03:21, Derek Basehore пишет: > > This adds the plumbing for reading panel rotation from the devicetree > > and sets up adding a panel property for the panel orientation on > > Mediatek SoCs when a rotation is present. > > Hello Derek and everyone, > > I'm looking at adding display rotation support to NVIDIA Tegra DRM > driver because some devices have display panel physically mounted > upside-down, and thus, display controller's scan-out needs to be rotated > by 180° in this case. > > Derek, yours panel-rotation patches add support for assigning panel's > orientation to the connector, but then only primary display plane > receives rotation value in [1], while rotation needs to be applied to > all available overlay/cursor planes and this should happen in other > places than [1] as well. This is intended. We don't correct the output in the kernel. We instead rely on notifying userspace that the panel is rotated, then we handle it there. > > [1] drm_client_modeset_commit_atomic() > > Please also note that in a case of the scan-out rotation, plane's > coordinates need to be changed in accordance to the display's rotation. > > I looked briefly through the DRM code and my understanding that the DRM > core currently doesn't support use-case where scan-out needs to rotated > based on a panel's orientation, correct? Is it the use-case you're > working on for the Mediatek driver? Yes, we rely on userspace to rotate the output. The major reason for this is because there may not be a "free" hardware rotation that can be applied to the overlay. Sean Paul and others also preferred that userspace control what is output to the screen instead of the kernel taking care of it. This code just adds the drm property to the panel.