[RFC PATCH 0/6] drm/bridge: Add mux input selection bridge

Guido Günther
2020-05-15T13:12:29Z

This bridge driver allows to select the input to a downstream bridge (or panel)
via device tree.

It can be useful to separate the pixel source selection from the actual bridge
processing the pixel data. E.g. NXP's imx8mq has two display controllers. Both
can feed the pixel data to the NWL DSI IP core. The input selection is done via
a separate mux register elsewhere on the chip, so separating this out avoids SoC
specific code in such drivers.

The current implementation allows to select the input source via device tree.
The long term goal is to allow to switch the input source at run time. This
can be useful to e.g. use the less power hungry display controller for normal
operation but switch to a the other display controller when running full screen
games (since it can detile textures more efficiently).

This was initially suggested by Laurent Pinchart¹. It is similar in spirit to
the video-mux in the media subsystem but for DRM bridges.

Besides the actual driver this series includes the necessary bits to demo the
usage for the Librem5 devkit.

The series is based on linux-next as of next-20200512.

¹ https://lore.kernel.org/dri-devel/20200415021908.GH19819@pendragon.ideasonboard.com/

Guido Günther (6):
dt-bindings: display/bridge: Add binding for input mux bridge
drm/bridge: Add mux-input bridge
dt-bindings: display/bridge/nwl-dsi: Drop mux handling
drm/bridge/nwl-dsi: Drop mux handling
arm64: dts: imx8mq: Add NWL dsi controller
arm64: dts: imx8mq-librem5-devkit: Enable MIPI DSI panel

.../display/bridge/mux-input-bridge.yaml | 123 +++++++++
.../bindings/display/bridge/nwl-dsi.yaml | 6 -
.../dts/freescale/imx8mq-librem5-devkit.dts | 81 ++++++
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 31 +++
drivers/gpu/drm/bridge/Kconfig | 10 +-
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/mux-input.c | 238 ++++++++++++++++++
drivers/gpu/drm/bridge/nwl-dsi.c | 61 -----
8 files changed, 483 insertions(+), 68 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/bridge/mux-input-bridge.yaml
create mode 100644 drivers/gpu/drm/bridge/mux-input.c

--
2.26.1