Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-18 Thread Dmitry Osipenko
17.06.2020 12:34, Daniel Stone пишет:
> Hi,
> 
> On Tue, 16 Jun 2020 at 22:16, Dmitry Osipenko  wrote:
>> The panel's orientation could be parsed by any panel driver and then
>> assigned as the connector's property in order to allow userspace/FB-core
>> to decide what to do with the rotated display. Apparently upstream
>> kernel supports only that one Samsung device which has display panel
>> mounted upside-down and it already uses the custom DT properties for
>> achieving the 180 rotation. So I don't quite see any panel drivers that
>> instantly could benefit from using the rotation property. Perhaps I can
>> add the orientation support to the panel-simple driver, but will it be
>> useful to anyone?
> 
> Yes, exposing it to userspace is helpful, since Weston at least will
> parse the property and then apply the correct transform:
> https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/315

Hello Daniel,

Thank you very much for the pointer! I missed that Weston now uses the
panel's orientation. I gave a quick test to the recent Weston and indeed
it applies the transform in accordance to the connector's orientation
property.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-17 Thread Daniel Stone
Hi,

On Tue, 16 Jun 2020 at 22:16, Dmitry Osipenko  wrote:
> The panel's orientation could be parsed by any panel driver and then
> assigned as the connector's property in order to allow userspace/FB-core
> to decide what to do with the rotated display. Apparently upstream
> kernel supports only that one Samsung device which has display panel
> mounted upside-down and it already uses the custom DT properties for
> achieving the 180 rotation. So I don't quite see any panel drivers that
> instantly could benefit from using the rotation property. Perhaps I can
> add the orientation support to the panel-simple driver, but will it be
> useful to anyone?

Yes, exposing it to userspace is helpful, since Weston at least will
parse the property and then apply the correct transform:
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/315

Cheers,
Daniel
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-17 Thread Dmitry Osipenko
16.06.2020 01:26, Emil Velikov пишет:
...
> Although I see that this series, alike Derek's, has a couple of issues:
>  - only a single panel driver is updated

I'll separate this series into two patchsets.

One will add orientation support to the panel drivers and I'll include
the Derek's tv101wum-nl6 patch, so it will be two panel drivers \o/ :)

The other will add reflection-x support to the Tegra driver.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-17 Thread Dmitry Osipenko
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  wrote:

 16.06.2020 01:26, Emil Velikov пишет:
> Hi Dmitry,
>
> On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko  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-3-dig...@gmail.com/
>> [2] 
>> https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
>> [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-jac...@jmondi.org/,
> part of the documentation may be useful for panels.

Thanks!
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-17 Thread Dmitry Osipenko
16.06.2020 18:48, Emil Velikov пишет:
> On Tue, 16 Jun 2020 at 12:40, Dmitry Osipenko  wrote:
>>
>> 16.06.2020 01:26, Emil Velikov пишет:
>>> Hi Dmitry,
>>>
>>> On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko  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-3-dig...@gmail.com/
 [2] 
 https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
 [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.

> Sam seems like you've done most of the YAML conversion. IMHO it would
> make sense to revisit the patches and inherit common properties only
> as applicable.
> 
>> I don't think that it makes sense to wire up rotation property to all
>> panel drivers at once because those drivers will be untested, at least I
>> don't know anything about those other panels and can't test them. It
>> will be much better to support the rotation on by as-needed basis for
>> each panel driver individually.
> 
> How about CCing the author and reviewer asking them to test the patch?
> The only place where the patches might cause an issue is with tiny,
> although patches would still be appreciated.

There are quite a lot of panel drivers and I'm a bit doubtful that at
least half of devices that use those panels have any real use for the
rotation property. I could write the patches.. but in the end it could
be 

Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-17 Thread Dmitry Osipenko
16.06.2020 01:26, Emil Velikov пишет:
> Hi Dmitry,
> 
> On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko  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-3-dig...@gmail.com/
>> [2] 
>> https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
>> [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. This property is supported by all panel bindings
because these bindings inherent the common properties from the
panel-common.yaml.

I don't think that it makes sense to wire up rotation property to all
panel drivers at once because those drivers will be untested, at least I
don't know anything about those other panels and can't test them. It
will be much better to support the rotation on by as-needed basis for
each panel driver individually.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-17 Thread Dmitry Osipenko
16.06.2020 21:54, Emil Velikov пишет:
> On Tue, 16 Jun 2020 at 18:20, Dmitry Osipenko  wrote:
>>
>> 16.06.2020 18:48, Emil Velikov пишет:
>>> On Tue, 16 Jun 2020 at 12:40, Dmitry Osipenko  wrote:

 16.06.2020 01:26, Emil Velikov пишет:
> Hi Dmitry,
>
> On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko  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-3-dig...@gmail.com/
>> [2] 
>> https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
>> [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.
>>
> You're spot on - it is/should be a generic property.
> 
> I believe that in general many panels were mounted in the correct
> orientation so the property, kernel and userspace were slow to catch
> up. In some cases panels will use flip x+y to denote 180 rotation, yet
> lacking the rotation property.
> The s6e8aa0 is an example of the last oddity. To make it better, the
> two dts in-tree always set both flip x and y.
> 
> Tl;Dr: Hysterical raisins
> 
>>> Sam seems like you've done most of the YAML conversion. IMHO it would
>>> make sense to revisit the patches and inherit common properties only

Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-16 Thread Emil Velikov
On Tue, 16 Jun 2020 at 18:20, Dmitry Osipenko  wrote:
>
> 16.06.2020 18:48, Emil Velikov пишет:
> > On Tue, 16 Jun 2020 at 12:40, Dmitry Osipenko  wrote:
> >>
> >> 16.06.2020 01:26, Emil Velikov пишет:
> >>> Hi Dmitry,
> >>>
> >>> On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko  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-3-dig...@gmail.com/
>  [2] 
>  https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
>  [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.
>
You're spot on - it is/should be a generic property.

I believe that in general many panels were mounted in the correct
orientation so the property, kernel and userspace were slow to catch
up. In some cases panels will use flip x+y to denote 180 rotation, yet
lacking the rotation property.
The s6e8aa0 is an example of the last oddity. To make it better, the
two dts in-tree always set both flip x and y.

Tl;Dr: Hysterical raisins

> > Sam seems like you've done most of the YAML conversion. IMHO it would
> > make sense to revisit the patches and inherit common properties only
> > as applicable.
> >
> >> I don't think that it makes sense to 

Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-16 Thread 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  wrote:
> >>
> >> 16.06.2020 01:26, Emil Velikov пишет:
> >>> Hi Dmitry,
> >>>
> >>> On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko  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-3-dig...@gmail.com/
>  [2] 
>  https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
>  [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-jac...@jmondi.org/,
part of the documentation may be useful for panels.

> > Sam seems like you've done most of the YAML conversion. IMHO it would
> > make sense to revisit the patches and inherit common properties only
> > as applicable.
> > 
> >> I don't think that it makes sense to wire up rotation property to all
> >> panel drivers at once because those drivers will be untested, at least I
> >> don't know anything about those 

Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-16 Thread Emil Velikov
On Tue, 16 Jun 2020 at 12:40, Dmitry Osipenko  wrote:
>
> 16.06.2020 01:26, Emil Velikov пишет:
> > Hi Dmitry,
> >
> > On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko  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-3-dig...@gmail.com/
> >> [2] 
> >> https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
> >> [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.

Sam seems like you've done most of the YAML conversion. IMHO it would
make sense to revisit the patches and inherit common properties only
as applicable.

> I don't think that it makes sense to wire up rotation property to all
> panel drivers at once because those drivers will be untested, at least I
> don't know anything about those other panels and can't test them. It
> will be much better to support the rotation on by as-needed basis for
> each panel driver individually.

How about CCing the author and reviewer asking them to test the patch?
The only place where the patches might cause an issue is with tiny,
although patches would still be appreciated.

-Emil
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-15 Thread Emil Velikov
Hi Dmitry,

On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko  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-3-dig...@gmail.com/
> [2] 
> https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
> [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
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM

2020-06-15 Thread Dmitry Osipenko
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-3-dig...@gmail.com/
[2] 
https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a3959bbe5bc3a3b67e55977093fd5114ca
[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
  drm/tegra: plane: Rename bottom_up to reflect_y
  drm/tegra: plane: Support horizontal reflection mode
  drm/tegra: plane: Support 180° rotation

 drivers/gpu/drm/drm_panel.c| 43 ++
 drivers/gpu/drm/panel/panel-lvds.c |  8 ++
 drivers/gpu/drm/tegra/dc.c | 43 --
 drivers/gpu/drm/tegra/dc.h |  3 ++-
 drivers/gpu/drm/tegra/plane.c  |  3 ++-
 drivers/gpu/drm/tegra/plane.h  |  3 ++-
 include/drm/drm_panel.h|  9 +++
 7 files changed, 101 insertions(+), 11 deletions(-)

-- 
2.26.0

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel