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. No fundamental changes in this v9. Just a few clarifications in the bridge atomic hooks/helpers doc, and we also moved the drm_atomic_private_obj_init() call back to drm_bridge_attach(). This patch series is also available here [1]. Thanks, Boris [1]https://github.com/bbrezillon/linux-0day/commits/drm-bridge-busfmt-v9 Boris Brezillon (12): drm/bridge: Add a drm_bridge_state object drm/rcar-du: Plug atomic state hooks to the default implementation drm/bridge: analogix: Plug atomic state hooks to the default implementation drm/bridge: Patch atomic hooks to take a drm_bridge_state 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 | 116 +++++ drivers/gpu/drm/drm_atomic_helper.c | 73 ++- drivers/gpu/drm/drm_atomic_state_helper.c | 103 +++++ drivers/gpu/drm/drm_bridge.c | 437 +++++++++++++++++- 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 | 179 ++++++- 16 files changed, 1257 insertions(+), 81 deletions(-) -- 2.24.1