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>
This commit is contained in:
committed by
Dmitry Baryshkov
parent
7b9a9e35e4
commit
b67e0f530f
@@ -109,28 +109,32 @@ static void panel_bridge_detach(struct drm_bridge *bridge)
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
@@ -159,10 +163,10 @@ static void panel_bridge_debugfs_init(struct drm_bridge *bridge,
|
||||
static const struct drm_bridge_funcs panel_bridge_bridge_funcs = {
|
||||
.attach = panel_bridge_attach,
|
||||
.detach = panel_bridge_detach,
|
||||
.pre_enable = panel_bridge_pre_enable,
|
||||
.enable = panel_bridge_enable,
|
||||
.disable = panel_bridge_disable,
|
||||
.post_disable = panel_bridge_post_disable,
|
||||
.atomic_pre_enable = panel_bridge_atomic_pre_enable,
|
||||
.atomic_enable = panel_bridge_atomic_enable,
|
||||
.atomic_disable = panel_bridge_atomic_disable,
|
||||
.atomic_post_disable = panel_bridge_atomic_post_disable,
|
||||
.get_modes = panel_bridge_get_modes,
|
||||
.atomic_reset = drm_atomic_helper_bridge_reset,
|
||||
.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
|
||||
|
||||
Reference in New Issue
Block a user