[Intel-gfx] [PATCH 01/23] drm/i915: Set crtc backpointer when duplicating crtc state
Daniel Vetter
daniel at ffwll.ch
Wed Mar 4 07:24:20 PST 2015
On Tue, Mar 03, 2015 at 03:21:55PM +0200, Ander Conselvan de Oliveira wrote:
> In the path were there is no state to duplicate, the allocated crtc
> state wouldn't have the crtc backpointer initialized.
>
> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
> ---
> drivers/gpu/drm/i915/intel_atomic.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_atomic.c b/drivers/gpu/drm/i915/intel_atomic.c
> index 011b896..3903b90 100644
> --- a/drivers/gpu/drm/i915/intel_atomic.c
> +++ b/drivers/gpu/drm/i915/intel_atomic.c
> @@ -214,12 +214,18 @@ struct drm_crtc_state *
> intel_crtc_duplicate_state(struct drm_crtc *crtc)
> {
> struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
> + struct intel_crtc_state *crtc_state;
>
> if (WARN_ON(!intel_crtc->config))
> - return kzalloc(sizeof(*intel_crtc->config), GFP_KERNEL);
> + crtc_state = kzalloc(sizeof(*crtc_state), GFP_KERNEL);
> + else
> + crtc_state = kmemdup(intel_crtc->config,
> + sizeof(*intel_crtc->config), GFP_KERNEL);
>
> - return kmemdup(intel_crtc->config, sizeof(*intel_crtc->config),
> - GFP_KERNEL);
> + if (crtc_state)
> + crtc_state->base.crtc = crtc;
> +
> + return &crtc_state->base;
I think we should eventually extract another set of helpers to share the
core initialization code common with all drivers and the atomic helpers.
We've already screwed up this a few times when additions to the helper
state tracking haven't propagated to all drivers.
Last time I've tried this I got stuck on a good name for this function
though.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the Intel-gfx
mailing list