The display-connector bridge is the last bridge in the chain on platforms using drm_bridge_connector, and is responsible for the physical connector interface.
Implement the atomic_sro_readout_state hook and wire up the default drm_atomic_helper_bridge_compare_state() as the compare hook. Signed-off-by: Maxime Ripard <[email protected]> --- drivers/gpu/drm/bridge/display-connector.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c index f7a5bfd9c075..ebd2691a88fe 100644 --- a/drivers/gpu/drm/bridge/display-connector.c +++ b/drivers/gpu/drm/bridge/display-connector.c @@ -13,10 +13,11 @@ #include <linux/platform_device.h> #include <linux/regulator/consumer.h> #include <linux/workqueue.h> #include <drm/drm_atomic_helper.h> +#include <drm/drm_atomic_sro_helper.h> #include <drm/drm_bridge.h> #include <drm/drm_edid.h> struct display_connector { struct drm_bridge bridge; @@ -204,10 +205,22 @@ static u32 *display_connector_get_input_bus_fmts(struct drm_bridge *bridge, return prev_bridge->funcs->atomic_get_input_bus_fmts(prev_bridge, prev_bridge_state, crtc_state, conn_state, output_fmt, num_input_fmts); } +static int +display_connector_readout_state(struct drm_bridge *bridge, + struct drm_atomic_sro_state *state, + struct drm_bridge_state *bridge_state, + struct drm_crtc_state *crtc_state, + struct drm_connector_state *conn_state) +{ + // TODO: Actually implement it + + return 0; +} + static const struct drm_bridge_funcs display_connector_bridge_funcs = { .attach = display_connector_attach, .detect = display_connector_bridge_detect, .hpd_enable = display_connector_hpd_enable, .hpd_disable = display_connector_hpd_disable, @@ -215,10 +228,12 @@ static const struct drm_bridge_funcs display_connector_bridge_funcs = { .atomic_get_output_bus_fmts = display_connector_get_output_bus_fmts, .atomic_get_input_bus_fmts = display_connector_get_input_bus_fmts, .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, .atomic_reset = drm_atomic_helper_bridge_reset, + .atomic_sro_readout_state = display_connector_readout_state, + .atomic_sro_compare_state = drm_atomic_helper_bridge_compare_state, }; static irqreturn_t display_connector_hpd_irq(int irq, void *arg) { struct display_connector *conn = arg; -- 2.54.0
