[PATCH v5 0/6] Support DRM bridges on NVIDIA Tegra

From: Dmitry Osipenko
Date: Sat Apr 18 2020 - 13:07:27 EST


Hello,

This series adds initial support for the DRM bridges to NVIDIA Tegra DRM
driver. This is required by newer device-trees where we model the LVDS
encoder bridge properly.

Changelog:

v5: - Added new patches that make drm_of_find_panel_or_bridge() more usable
if graph isn't defined in a device-tree:

of_graph: add of_graph_get_local_port()
drm/of: Make drm_of_find_panel_or_bridge() to check graph's presence

- Updated "Support DRM bridges" patch to use drm_of_find_panel_or_bridge()
directly and added WARN_ON(output->panel || output->bridge) sanity-check.

- Added new "Wrap directly-connected panel into DRM bridge" patch, as
was suggested by Laurent Pinchart.

v4: - Following review comments that were made by Laurent Pinchart to the v3,
we now create and use the "bridge connector".

v3: - Following recommendation from Sam Ravnborg, the new bridge attachment
model is now being used, i.e. we ask bridge to *not* create a connector
using the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag.

- The bridge is now created only for the RGB (LVDS) output, and only
when necessary. For now we don't need bridges for HDMI or DSI outputs.

- I noticed that we're leaking OF node in the panel's error code path,
this is fixed now by the new patch "Don't leak OF node on error".

v2: - Added the new "rgb: Don't register connector if bridge is used"
patch, which hides the unused connector provided by the Tegra DRM
driver when bridge is used, since bridge provides its own connector
to us.

- Please notice that the first "Support DRM bridges" patch was previously
sent out as a standalone v1 change.

Dmitry Osipenko (6):
of_graph: add of_graph_get_local_port()
drm/of: Make drm_of_find_panel_or_bridge() to check graph's presence
drm/tegra: output: Don't leak OF node on error
drm/tegra: output: Support DRM bridges
drm/tegra: output: rgb: Support LVDS encoder bridge
drm/tegra: output: rgb: Wrap directly-connected panel into DRM bridge

drivers/gpu/drm/drm_of.c | 13 +++++-
drivers/gpu/drm/tegra/drm.h | 2 +
drivers/gpu/drm/tegra/output.c | 21 +++++++--
drivers/gpu/drm/tegra/rgb.c | 85 +++++++++++++++++++++-------------
drivers/of/property.c | 32 +++++++++----
include/linux/of_graph.h | 7 +++
6 files changed, 114 insertions(+), 46 deletions(-)

--
2.26.0