From: Leonardo Costa <[email protected]>

The input bus flags set at each bridge's timings are never actually
added to the bridge state and are not considered during modeset.

Implement the atomic_check function, to allow simple bridges to declare
their required input bus flags.

Existing bridges that configure specific flags (currently the ADV7123
and THS813* bridges, which set DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE) now
write them to their bridge state, and have them propagated to the
previous bridge in the pipeline.

Fixes: 0a01de65a741 ("drm/bridge: simple-bridge: Switch to atomic bridge 
callbacks")
Cc: [email protected]
Signed-off-by: Leonardo Costa <[email protected]>
---
 drivers/gpu/drm/bridge/simple-bridge.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/bridge/simple-bridge.c 
b/drivers/gpu/drm/bridge/simple-bridge.c
index 3fba7002322e9..848c2df2a276a 100644
--- a/drivers/gpu/drm/bridge/simple-bridge.c
+++ b/drivers/gpu/drm/bridge/simple-bridge.c
@@ -158,11 +158,23 @@ static void simple_bridge_disable(struct drm_bridge 
*bridge,
                regulator_disable(sbridge->vdd);
 }
 
+static int simple_bridge_atomic_check(struct drm_bridge *bridge,
+                                     struct drm_bridge_state *bridge_state,
+                                     struct drm_crtc_state *crtc_state,
+                                     struct drm_connector_state *conn_state)
+{
+       if (bridge->timings)
+               bridge_state->input_bus_cfg.flags = 
bridge->timings->input_bus_flags;
+
+       return 0;
+}
+
 static const struct drm_bridge_funcs simple_bridge_bridge_funcs = {
        .atomic_create_state = drm_atomic_helper_bridge_create_state,
        .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
        .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
        .attach         = simple_bridge_attach,
+       .atomic_check = simple_bridge_atomic_check,
        .atomic_enable = simple_bridge_enable,
        .atomic_disable = simple_bridge_disable,
 };

---
base-commit: 6c2cb8b8b843d216ab549b678a0d8831c43153e0
change-id: 20261001-v1-simple-bridge-atomic-check-e7b7eb8381e9

Best regards,
-- 
Leonardo Costa <[email protected]>

Reply via email to