16.06.2020 20:45, Laurent Pinchart пишет:
On Tue, Jun 16, 2020 at 08:20:57PM +0300, Dmitry Osipenko wrote:
16.06.2020 18:48, Emil Velikov пишет:
On Tue, 16 Jun 2020 at 12:40, Dmitry Osipenko digetx@gmail.com wrote:
16.06.2020 01:26, Emil Velikov пишет:
Hi Dmitry,
On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko digetx@gmail.com wrote:
Hello!
This series adds 180° display plane rotation support to the NVIDIA Tegra DRM driver which is needed for devices that have display panel physically mounted upside-down, like Nexus 7 tablet device for example [1]. Since DRM panel rotation is a new thing for a userspace, currently only Opentegra Xorg driver handles the rotated display panel [2], but this is good enough for the start.
Note that later on it should be possible to implement a transparent 180° display rotation for Tegra DRM driver which will remove the need to have a bleeding edge userspace that knows how to rotate display planes and I'm slowly working on it. For the starter we can go with the minimal rotation support, so it's not a blocker.
This series is based on the work that was made by Derek Basehore for the Mediatek driver [3], his patch is included into this patchset. I added my tested-by tag to the Derek's patch.
Please review and apply, thanks in advance!
[1] https://patchwork.ozlabs.org/project/linux-tegra/patch/20200607154327.18589-... [2] https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5b... [3] https://lkml.org/lkml/2020/3/5/1119
Changelog:
v2: - Dropped "drm/panel: Set display info in panel attach" patch, which turned out to be obsolete now.
- Renamed the cover-latter, hopefully this will fix the bouncing emails.
Derek Basehore (1): drm/panel: Add helper for reading DT rotation
Dmitry Osipenko (4): drm/panel: lvds: Set up panel orientation
IMHO it's perfectly reasonable to report the panel orientation to userspace, which can apply plane rotation as needed.
Although I see that this series, alike Derek's, has a couple of issues:
- only a single panel driver is updated
- rotation is _not_ listed as supported property, in said panel
driver device-tree bindings
My personal inclination is that we should aim for a comprehensive solution:
- wire all panel drivers, as currently documented (quick grep list below)
- document and wire-up the lvds and boe panels - as proposed by you
and Derek respectively
HTH Emil
Documentation/devicetree/bindings/display/himax,hx8357d.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9225.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9341.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9486.yaml:2 Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt:2 Documentation/devicetree/bindings/display/panel/panel-common.yaml:2 Documentation/devicetree/bindings/display/sitronix,st7586.txt:1 Documentation/devicetree/bindings/display/sitronix,st7735r.yaml:2
Rotation is a common DT panel property that is described in the panel-common.yaml.
The property was introduced almost exclusively for tiny drm panels. Those ones are a bit different from the rest (in panel/) - MIPI-DBI/SPI w/o (not connected at least) an actual GPU.
To make it a bit better, the rotation is seemingly performed in the tiny driver itself ouch.
This property is supported by all panel bindings because these bindings inherent the common properties from the panel-common.yaml.
Seems like that was an unintentional change with the conversion to YAML. Beforehand only a few selected panels had rotation. Upon closer look - some panels do have follow-up fixes, to remove/limit the implicit inclusion.
Interesting.. my understanding that the rotation property is supposed to be a generic property which represents physical orientation of a display panel and hence it should be applicable to all panels.
Adding a bit more food for thoughts, the DT rotation property for camera sensor modules has recently been documented with lots of details. See https://lore.kernel.org/linux-media/20200509090456.3496481-3-jacopo@jmondi.o..., part of the documentation may be useful for panels.
Thanks!