[PATCH v7 00/12] drm: Add support for bus-format negotiation
Boris Brezillon
boris.brezillon at collabora.com
Wed Jan 22 11:16:48 UTC 2020
Hello,
This patch series aims at adding support for runtime bus-format
negotiation between all elements of the
'encoder -> bridges -> connector/display' section of the pipeline.
In order to support that, we need drm bridges to fully take part in the
atomic state validation process, which requires adding a
drm_bridge_state and a new drm_bridge_funcs.atomic_check() hook.
Once those basic building blocks are in place, we can add new hooks to
allow bus format negotiation (those are called just before
->atomic_check()). The bus format selection is done at runtime by
testing all possible combinations across the whole bridge chain until
one is reported to work.
v7 has refactored to address the drm -> drm_kms_helper -> drm circular
dep issue we had on v6.
A more detailed changelog is provided in each patch.
This patch series is also available here [1].
Thanks,
Boris
[1]https://github.com/bbrezillon/linux-0day/commits/drm-bridge-busfmt-v7
Boris Brezillon (12):
drm/bridge: Add a drm_bridge_state object
drm/bridge: Patch atomic hooks to take a drm_bridge_state
drm/rcar-du: Plug atomic state hooks to the default implementation
drm/bridge: analogix: Plug atomic state hooks to the default
implementation
drm/bridge: Add an ->atomic_check() hook
drm/bridge: Add the necessary bits to support bus format negotiation
drm/imx: pd: Use bus format/flags provided by the bridge when
available
drm/bridge: lvds-codec: Implement basic bus format negotiation
dt-bindings: display: bridge: lvds-codec: Add new bus-width prop
drm/bridge: panel: Propage bus format/flags
drm/panel: simple: Fix the lt089ac29000 bus_format
ARM: dts: imx: imx51-zii-rdu1: Fix the display pipeline definition
.../bindings/display/bridge/lvds-codec.yaml | 8 +
arch/arm/boot/dts/imx51-zii-rdu1.dts | 24 +-
.../drm/bridge/analogix/analogix_dp_core.c | 44 +-
drivers/gpu/drm/bridge/lvds-codec.c | 64 ++-
drivers/gpu/drm/bridge/panel.c | 4 +
drivers/gpu/drm/drm_atomic.c | 117 +++++
drivers/gpu/drm/drm_atomic_helper.c | 73 +++-
drivers/gpu/drm/drm_atomic_state_helper.c | 131 ++++++
drivers/gpu/drm/drm_bridge.c | 407 +++++++++++++++++-
drivers/gpu/drm/imx/parallel-display.c | 176 ++++++--
drivers/gpu/drm/panel/panel-simple.c | 2 +-
drivers/gpu/drm/rcar-du/rcar_lvds.c | 11 +-
include/drm/drm_atomic.h | 76 ++++
include/drm/drm_atomic_helper.h | 8 +
include/drm/drm_atomic_state_helper.h | 13 +
include/drm/drm_bridge.h | 172 +++++++-
16 files changed, 1249 insertions(+), 81 deletions(-)
--
2.24.1
More information about the dri-devel
mailing list