mbox series

[00/16] drm/exynos: Convert driver to drm bridge

Message ID 20200903165717.1272492-1-m.tretter@pengutronix.de
Headers show
Series drm/exynos: Convert driver to drm bridge | expand

Message

Michael Tretter Sept. 3, 2020, 4:57 p.m. UTC
Hello,

the Exynos MIPI DSI Phy is also found on the i.MX8M Mini. However, on the
i.MX8M Mini, the bridge is driven by an LCDIF display controller instead of
the Exynos Decon. The driver for the LCDIF does not use the component
framework, but uses drm bridges.

This series converts the Exynos MIPI DSI into a drm bridge and makes it usable
with such drivers. Although the driver is converted, it still supports the
component framework API to stay compliant with the Exynos DRM driver.

Unfortunately, I don't have any Exynos SoC to actually test the series.  I
tested the driver with a few additional unfinished patches on the i.MX8M Mini
EVK, but somebody should definitely verify that the driver is still working on
Exynos hardware.

Patch 1 is a quick documentation fix.

Patches 2 to 6 implement the drm bridge interface.

Patches 7 to 12 rework the driver to make it easier to split platform specific
from common code.

Patches 13 and 14 add callbacks to handle the tearing effect interrupt and to
tell the Exynos DRM driver, if the MIPI DSI bridge is using command or video
mode. I am not too happy with these callbacks and any suggestion for a better
solution is very welcome.

Patches 15 and 16 finally split and move the drm bridge driver out of the
Exynos DRM driver.

Michael


Michael Tretter (16):
  drm/encoder: remove obsolete documentation of bridge
  drm/exynos: extract helper functions for probe
  drm/exynos: remove in_bridge_node from exynos_dsi
  drm/exynos: implement a drm bridge
  drm/exynos: convert encoder functions to bridge function
  drm/exynos: configure mode on drm bridge
  drm/exynos: get encoder from bridge whenever possible
  drm/exynos: use exynos_dsi as drvdata
  drm/exynos: call probe helper from bind
  drm/exynos: move dsi host registration to probe helper
  drm/exynos: shift register values to fields on write
  drm/exynos: use identifier instead of register offsets
  drm/exynos: add callback for tearing effect handler
  drm/exynos: add callback for enabling i80 mode
  drm/exynos: split out platform specific code
  drm/exynos: move bridge driver to bridges

 drivers/gpu/drm/bridge/Kconfig          |    7 +
 drivers/gpu/drm/bridge/Makefile         |    1 +
 drivers/gpu/drm/bridge/samsung-dsim.c   | 1797 ++++++++++++++++++++++
 drivers/gpu/drm/exynos/exynos_drm_dsi.c | 1843 ++---------------------
 include/drm/bridge/samsung-dsim.h       |   57 +
 include/drm/drm_encoder.h               |    1 -
 6 files changed, 1967 insertions(+), 1739 deletions(-)
 create mode 100644 drivers/gpu/drm/bridge/samsung-dsim.c
 create mode 100644 include/drm/bridge/samsung-dsim.h