aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_atomic.c
diff options
context:
space:
mode:
authorMatt Roper <matthew.d.roper@intel.com>2015-01-21 19:35:47 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-01-27 03:57:18 -0500
commit1356837e55e273c9178c13f5fbddf086da285283 (patch)
tree6c8f72f0a9b6f041c1c338f090b4cb8d775661e1 /drivers/gpu/drm/i915/intel_atomic.c
parent2545e4a6c8f5ae819635403390d940b595c26241 (diff)
drm/i915: Add crtc state duplication/destruction functions
The atomic helpers need these to prepare a new state object when starting a new atomic operation. Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_atomic.c')
-rw-r--r--drivers/gpu/drm/i915/intel_atomic.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_atomic.c b/drivers/gpu/drm/i915/intel_atomic.c
index 52ef6f4abe45..19a9dd5408f3 100644
--- a/drivers/gpu/drm/i915/intel_atomic.c
+++ b/drivers/gpu/drm/i915/intel_atomic.c
@@ -200,3 +200,38 @@ intel_connector_atomic_get_property(struct drm_connector *connector,
200 200
201 return -EINVAL; 201 return -EINVAL;
202} 202}
203
204/*
205 * intel_crtc_duplicate_state - duplicate crtc state
206 * @crtc: drm crtc
207 *
208 * Allocates and returns a copy of the crtc state (both common and
209 * Intel-specific) for the specified crtc.
210 *
211 * Returns: The newly allocated crtc state, or NULL on failure.
212 */
213struct drm_crtc_state *
214intel_crtc_duplicate_state(struct drm_crtc *crtc)
215{
216 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
217
218 if (WARN_ON(!intel_crtc->config))
219 return kzalloc(sizeof(*intel_crtc->config), GFP_KERNEL);
220
221 return kmemdup(intel_crtc->config, sizeof(*intel_crtc->config),
222 GFP_KERNEL);
223}
224
225/**
226 * intel_crtc_destroy_state - destroy crtc state
227 * @crtc: drm crtc
228 *
229 * Destroys the crtc state (both common and Intel-specific) for the
230 * specified crtc.
231 */
232void
233intel_crtc_destroy_state(struct drm_crtc *crtc,
234 struct drm_crtc_state *state)
235{
236 drm_atomic_helper_crtc_destroy_state(crtc, state);
237}