Commit b67e0f53 authored by Vinod Polimera's avatar Vinod Polimera Committed by Dmitry Baryshkov

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: default avatarSankeerth Billakanti <quic_sbillaka@quicinc.com>
Signed-off-by: default avatarVinod Polimera <quic_vpolimer@quicinc.com>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarDaniel 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.comSigned-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
parent 7b9a9e35
...@@ -109,28 +109,32 @@ static void panel_bridge_detach(struct drm_bridge *bridge) ...@@ -109,28 +109,32 @@ static void panel_bridge_detach(struct drm_bridge *bridge)
drm_connector_cleanup(connector); drm_connector_cleanup(connector);
} }
static void panel_bridge_pre_enable(struct drm_bridge *bridge) static void panel_bridge_atomic_pre_enable(struct drm_bridge *bridge,
struct drm_bridge_state *old_bridge_state)
{ {
struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
drm_panel_prepare(panel_bridge->panel); drm_panel_prepare(panel_bridge->panel);
} }
static void panel_bridge_enable(struct drm_bridge *bridge) static void panel_bridge_atomic_enable(struct drm_bridge *bridge,
struct drm_bridge_state *old_bridge_state)
{ {
struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
drm_panel_enable(panel_bridge->panel); drm_panel_enable(panel_bridge->panel);
} }
static void panel_bridge_disable(struct drm_bridge *bridge) static void panel_bridge_atomic_disable(struct drm_bridge *bridge,
struct drm_bridge_state *old_bridge_state)
{ {
struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
drm_panel_disable(panel_bridge->panel); drm_panel_disable(panel_bridge->panel);
} }
static void panel_bridge_post_disable(struct drm_bridge *bridge) static void panel_bridge_atomic_post_disable(struct drm_bridge *bridge,
struct drm_bridge_state *old_bridge_state)
{ {
struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
...@@ -159,10 +163,10 @@ static void panel_bridge_debugfs_init(struct drm_bridge *bridge, ...@@ -159,10 +163,10 @@ static void panel_bridge_debugfs_init(struct drm_bridge *bridge,
static const struct drm_bridge_funcs panel_bridge_bridge_funcs = { static const struct drm_bridge_funcs panel_bridge_bridge_funcs = {
.attach = panel_bridge_attach, .attach = panel_bridge_attach,
.detach = panel_bridge_detach, .detach = panel_bridge_detach,
.pre_enable = panel_bridge_pre_enable, .atomic_pre_enable = panel_bridge_atomic_pre_enable,
.enable = panel_bridge_enable, .atomic_enable = panel_bridge_atomic_enable,
.disable = panel_bridge_disable, .atomic_disable = panel_bridge_atomic_disable,
.post_disable = panel_bridge_post_disable, .atomic_post_disable = panel_bridge_atomic_post_disable,
.get_modes = panel_bridge_get_modes, .get_modes = panel_bridge_get_modes,
.atomic_reset = drm_atomic_helper_bridge_reset, .atomic_reset = drm_atomic_helper_bridge_reset,
.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment