diff options
author | Matt Roper <matthew.d.roper@intel.com> | 2015-01-21 19:35:47 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-01-27 03:57:18 -0500 |
commit | 1356837e55e273c9178c13f5fbddf086da285283 (patch) | |
tree | 6c8f72f0a9b6f041c1c338f090b4cb8d775661e1 /drivers/gpu/drm/i915/intel_atomic.c | |
parent | 2545e4a6c8f5ae819635403390d940b595c26241 (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.c | 35 |
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 | */ | ||
213 | struct drm_crtc_state * | ||
214 | intel_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 | */ | ||
232 | void | ||
233 | intel_crtc_destroy_state(struct drm_crtc *crtc, | ||
234 | struct drm_crtc_state *state) | ||
235 | { | ||
236 | drm_atomic_helper_crtc_destroy_state(crtc, state); | ||
237 | } | ||