Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/bridge: use atomic enable/disable callbacks for panel bridge

Use atomic variants for panel bridge callback functions such that
certain states like self-refresh can be accessed as part of
enable/disable sequence.

Signed-off-by: Sankeerth Billakanti <quic_sbillaka@quicinc.com>
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Patchwork: https://patchwork.freedesktop.org/patch/524720/
Link: https://lore.kernel.org/r/1677774797-31063-3-git-send-email-quic_vpolimer@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

authored by

Vinod Polimera and committed by
Dmitry Baryshkov
b67e0f53 7b9a9e35

+12 -8
+12 -8
drivers/gpu/drm/bridge/panel.c
··· 109 109 drm_connector_cleanup(connector); 110 110 } 111 111 112 - static void panel_bridge_pre_enable(struct drm_bridge *bridge) 112 + static void panel_bridge_atomic_pre_enable(struct drm_bridge *bridge, 113 + struct drm_bridge_state *old_bridge_state) 113 114 { 114 115 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); 115 116 116 117 drm_panel_prepare(panel_bridge->panel); 117 118 } 118 119 119 - static void panel_bridge_enable(struct drm_bridge *bridge) 120 + static void panel_bridge_atomic_enable(struct drm_bridge *bridge, 121 + struct drm_bridge_state *old_bridge_state) 120 122 { 121 123 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); 122 124 123 125 drm_panel_enable(panel_bridge->panel); 124 126 } 125 127 126 - static void panel_bridge_disable(struct drm_bridge *bridge) 128 + static void panel_bridge_atomic_disable(struct drm_bridge *bridge, 129 + struct drm_bridge_state *old_bridge_state) 127 130 { 128 131 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); 129 132 130 133 drm_panel_disable(panel_bridge->panel); 131 134 } 132 135 133 - static void panel_bridge_post_disable(struct drm_bridge *bridge) 136 + static void panel_bridge_atomic_post_disable(struct drm_bridge *bridge, 137 + struct drm_bridge_state *old_bridge_state) 134 138 { 135 139 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); 136 140 ··· 163 159 static const struct drm_bridge_funcs panel_bridge_bridge_funcs = { 164 160 .attach = panel_bridge_attach, 165 161 .detach = panel_bridge_detach, 166 - .pre_enable = panel_bridge_pre_enable, 167 - .enable = panel_bridge_enable, 168 - .disable = panel_bridge_disable, 169 - .post_disable = panel_bridge_post_disable, 162 + .atomic_pre_enable = panel_bridge_atomic_pre_enable, 163 + .atomic_enable = panel_bridge_atomic_enable, 164 + .atomic_disable = panel_bridge_atomic_disable, 165 + .atomic_post_disable = panel_bridge_atomic_post_disable, 170 166 .get_modes = panel_bridge_get_modes, 171 167 .atomic_reset = drm_atomic_helper_bridge_reset, 172 168 .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,