[PATCH 0/6] omapdrm: drm_bridge and drm_panel support

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Dec 10 01:06:17 UTC 2018


Hello everybody,

This patch series hooks up support for drm_bridge and drm_panel in the omapdrm
driver.

Before anyone rejoices too fast, I have to warn that removal of the omapdrm
internal display drivers will still require a significant effort, even without
considering DSI:

- The omapdrm internal display drivers need to be ported to drm_bridge and
  drm_panel. This is the easy part of remaining transition, with 6 non-trivial
  panels, 2 simple bridges, and 2 connectors.

- Several OMAP-based system split tasks associated with connectors across
  multiple hardware components. For instance an HDMI can have modes retrieval
  (from EDID) implemented by the HDMI encoder bridge, while hot-plug detection
  is implemented through a signal of the HDMI companion chip connected to a
  GPIO of the SoC. The drm_bridge infrastructure doesn't support this, and
  will need to be extended.

- DRM doesn't have connector drivers to handle the connector DT nodes. While
  connectors are mostly passive components, the DDC and HPD signals can be
  wired directly from the connector to the SoC, in which case they're
  described in connector DT node. Several bridge drivers look up the DDC bus
  from the linked connector DT node, but this is a layering violation and
  should be implemented properly using connector drivers.

These limitations aside, the series still removes three omapdrm-specific
drivers.

The series start with adding support for the OSD070T1718-19TS panel to the
panel-simple driver (1/6). The panel is used by the AM57xx EVM. The
corresponding DT node contains panel timings, and I still believe that we
should parse those timings instead of hardcoding them in C code, but I've set
that issue aside for now to move forward.

The next two patches hook up support for drm_bridge (2/6) and drm_panel (3/6)
in the omapdrm driver. This is the bulk of the changes from this series,
please refer to individual patches for more information.

The next patch (4/6) then adds a whitelist mechanism to control addition of
the "omapdss," prefix to the compatible string of the omapdrm encoders, panels
and connectors. This is used to selectively switch components from the
omap_dss_device framework to drm_panel and drm_bridge.

Finally the last two patches remove the omapdrm-specific TFP410 encoder and
DVI connector drivers (5/6) and DPI panel driver (6/6), replaced
respectively by the ti-tftp410 drm_bridge driver and the panel-simple
drm_panel driver.

The series is based on the "[PATCH 0/5] drm: ti-tfp410 improvements" series,
itself based on top of the "[PATCH v2 0/2] Clarify display info PIXDATA bus
flags" series. For convenience I have pushed the result to

	git://linuxtv.org/pinchartl/media.git omapdrm/bridge/next

All patches have been tested on the OMAP3 Beagleboard-xM (for TFP410), the
OMAP4 Pandaboard (for regressions) and the AM57xx EVM (for the panel).

Laurent Pinchart (6):
  drm/panel: simple: Add OSD070T1718-19TS panel support
  drm/omap: Add support for drm_bridge
  drm/omap: Add support for drm_panel
  drm/omap: Whitelist DT nodes to fixup with omapdss, prefix
  drm/omap: Remove TFP410 and DVI connector drivers
  drm/omap: Remove panel-dpi driver

 drivers/gpu/drm/omapdrm/displays/Kconfig      |  17 -
 drivers/gpu/drm/omapdrm/displays/Makefile     |   3 -
 .../gpu/drm/omapdrm/displays/connector-dvi.c  | 292 ------------------
 .../gpu/drm/omapdrm/displays/encoder-tfp410.c | 141 ---------
 drivers/gpu/drm/omapdrm/displays/panel-dpi.c  | 197 ------------
 drivers/gpu/drm/omapdrm/dss/base.c            |  49 ++-
 .../gpu/drm/omapdrm/dss/omapdss-boot-init.c   |  18 +-
 drivers/gpu/drm/omapdrm/dss/omapdss.h         |   2 +
 drivers/gpu/drm/omapdrm/dss/output.c          |  26 +-
 drivers/gpu/drm/omapdrm/omap_connector.c      |  25 +-
 drivers/gpu/drm/omapdrm/omap_connector.h      |   1 -
 drivers/gpu/drm/omapdrm/omap_crtc.c           |   2 +-
 drivers/gpu/drm/omapdrm/omap_drv.c            |  82 +++--
 drivers/gpu/drm/omapdrm/omap_encoder.c        | 109 ++++---
 drivers/gpu/drm/panel/panel-simple.c          |  29 ++
 15 files changed, 260 insertions(+), 733 deletions(-)
 delete mode 100644 drivers/gpu/drm/omapdrm/displays/connector-dvi.c
 delete mode 100644 drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
 delete mode 100644 drivers/gpu/drm/omapdrm/displays/panel-dpi.c

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list