Factor out a helper modesetting a pipe that accepts an existing atomic
state. This prepares for a follow-up change that needs to allocate its
own atomic state.

v2: Rebase on upstream drm_atomic_state -> drm_atomic_commit rename.

Signed-off-by: Imre Deak <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display.c | 30 ++++++++++++++------
 drivers/gpu/drm/i915/display/intel_display.h |  3 ++
 2 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 8e269b71f18e4..b15c28675d288 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5658,18 +5658,15 @@ int intel_modeset_all_pipes_late(struct 
intel_atomic_state *state,
        return 0;
 }
 
-int intel_modeset_commit_pipes(struct intel_display *display,
-                              u8 pipe_mask,
-                              struct drm_modeset_acquire_ctx *ctx)
+int intel_modeset_commit_pipes_for_atomic_state(struct intel_atomic_state 
*intel_state,
+                                               u8 pipe_mask,
+                                               struct drm_modeset_acquire_ctx 
*ctx)
 {
-       struct drm_atomic_commit *state;
+       struct drm_atomic_commit *state = &intel_state->base;
+       struct intel_display *display = to_intel_display(intel_state);
        struct intel_crtc *crtc;
        int ret;
 
-       state = drm_atomic_commit_alloc(display->drm);
-       if (!state)
-               return -ENOMEM;
-
        state->acquire_ctx = ctx;
        to_intel_atomic_state(state)->internal = true;
 
@@ -5687,6 +5684,23 @@ int intel_modeset_commit_pipes(struct intel_display 
*display,
 
        ret = drm_atomic_commit(state);
 out:
+       return ret;
+}
+
+int intel_modeset_commit_pipes(struct intel_display *display,
+                              u8 pipe_mask,
+                              struct drm_modeset_acquire_ctx *ctx)
+{
+       struct drm_atomic_commit *state;
+       int ret;
+
+       state = drm_atomic_commit_alloc(display->drm);
+       if (!state)
+               return -ENOMEM;
+
+       ret = 
intel_modeset_commit_pipes_for_atomic_state(to_intel_atomic_state(state),
+                                                         pipe_mask, ctx);
+
        drm_atomic_commit_put(state);
 
        return ret;
diff --git a/drivers/gpu/drm/i915/display/intel_display.h 
b/drivers/gpu/drm/i915/display/intel_display.h
index 1963dbc802217..98b589e8360d2 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -474,6 +474,9 @@ int intel_modeset_pipes_in_mask_early(struct 
intel_atomic_state *state,
                                      const char *reason, u8 pipe_mask);
 int intel_modeset_all_pipes_late(struct intel_atomic_state *state,
                                 const char *reason);
+int intel_modeset_commit_pipes_for_atomic_state(struct intel_atomic_state 
*state,
+                                               u8 pipe_mask,
+                                               struct drm_modeset_acquire_ctx 
*ctx);
 int intel_modeset_commit_pipes(struct intel_display *display,
                               u8 pipe_mask,
                               struct drm_modeset_acquire_ctx *ctx);
-- 
2.49.1

Reply via email to