drm/i915: Use crtc->state for duplication.
In async mode crtc->config can be updated after the locks are released,
resulting in the wrong state being duplicated.
Note that this also removes a spurious assignment of crtc_state->crtc
introduced in
commit f0c60574eb
Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Date: Tue Apr 21 17:12:58 2015 +0300
drm/i915: Call drm helpers when duplicating crtc and plane states
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
bca8013ec2
commit
f2a066f3de
|
@ -85,22 +85,14 @@ intel_connector_atomic_get_property(struct drm_connector *connector,
|
|||
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))
|
||||
crtc_state = kzalloc(sizeof(*crtc_state), GFP_KERNEL);
|
||||
else
|
||||
crtc_state = kmemdup(intel_crtc->config,
|
||||
sizeof(*intel_crtc->config), GFP_KERNEL);
|
||||
|
||||
crtc_state = kmemdup(crtc->state, sizeof(*crtc_state), GFP_KERNEL);
|
||||
if (!crtc_state)
|
||||
return NULL;
|
||||
|
||||
__drm_atomic_helper_crtc_duplicate_state(crtc, &crtc_state->base);
|
||||
|
||||
crtc_state->base.crtc = crtc;
|
||||
|
||||
return &crtc_state->base;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue