[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