[PATCH v2 0/6] drm/omap: Module parameter for display order configuration

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri May 25 20:24:28 UTC 2018

Hi Peter,

On Wednesday, 21 March 2018 12:08:25 EEST Peter Ujfalusi wrote:
> Hi,
> Changes since v1:
> - rebased it on drm-next
> - Dropped the devm_kzalloc conversion patch
> Changes since RFC:
> - Comments from Laurent have been addressed:
>  - Get alias ID once and store it for later use in sorting
>  - Commit message updated for 'drm/omap: Manage the usable omap_dss_device
> list within omap_drm_private' patch
> - I have kept the first patch to convert to use devm_kzalloc for the private
> struct as I still think it is as correct as the way Laurent is proposing.
> The series adds support for changing the order of the displays defined by DT
> display aliases.
> The motivation to do such a thing is that for example the fb emulation is
> treating the first display/crtc as the 'main' display and will create the
> fb emulation based on the first display's properties.
> There are many custom applications using DRM directly and they assume that
> the first connector is the 'main' display.
> Afaik weston provides no means either to change the 'main/preferred'
> display.

I'm still not sure that this problem should be addressed in the kernel. 
However, regardless of that, I found patches 1/6, 2/6, 4/6 and 5/6 useful for 
the omapdrm cleanup and rework I'm working on.

The first version can be found in the "[PATCH/RFC 00/60] omapdrm: Reverse 
direction of DSS device (dis)connect operations" patch series, and I will send 
a second version in the near future.

> It should be the work of user space application (except the fb emulation) to
> somehow deal with the 'main' display selection for their needs, but
> unfortunately they are not capable of diong so for some reason.
> We have boards with LCD panel and HDMI for example and in DT the LCD is set
> as display0, but in certain useage scenarios it is desired to have the HDMI
> as the 'main' display instead of the LCD.
> With the kernel cmd line parameter it is possible to change the pre defined
> order without recompiling the kernel/DT.
> If the board have two active displays:
> 0 - LCD
> 1 - HDMI
> then:
> omapdrm.displays=0,1 - represents the original order (LCD, HDMI)
> omapdrm.displays=1,0 - represents reverse order (HDMI, LCD)
> omapdrm.displays=0 - only the LCD is enabled
> omapdrm.displays=1 - only the HDMI is enabled
> omapdrm.displays=-1 - disable all displays
> The first 6 patch of the series is doing some generic clean up and prepares
> the code so the display ordering is going to be easy to add.
> Regards,
> Peter
> ---
> Peter Ujfalusi (6):
>   drm/omap: Allocate drm_device earlier and unref it as last step
>   drm/omap: Manage the usable omap_dss_device list within
>     omap_drm_private
>   drm/omap: Separate the dssdevs array setup from the connect function
>   drm/omap: Do dss_device (display) ordering in omap_drv.c
>   drm/omap: dss: Remove display ordering from dss/display.c
>   drm/omap: Add kernel parameter to specify the desired display order
>  drivers/gpu/drm/omapdrm/dss/display.c |  15 +--
>  drivers/gpu/drm/omapdrm/dss/omapdss.h |   3 +-
>  drivers/gpu/drm/omapdrm/omap_drv.c    | 225 ++++++++++++++++++++++++-------
>  drivers/gpu/drm/omapdrm/omap_drv.h    |   3 +
>  4 files changed, 176 insertions(+), 70 deletions(-)


Laurent Pinchart

More information about the dri-devel mailing list