diff options
author | David S. Miller <davem@davemloft.net> | 2017-02-07 16:29:30 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-07 16:29:30 -0500 |
commit | 3efa70d78f218e4c9276b0bac0545e5184c1c47b (patch) | |
tree | f4abe2f05e173023d2a262afd4aebb1e89fe6985 /drivers/gpu/drm/i915/intel_atomic_plane.c | |
parent | 76e0e70e6452b971a69cc9794ff4a6715c11f7f2 (diff) | |
parent | 926af6273fc683cd98cd0ce7bf0d04a02eed6742 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
The conflict was an interaction between a bug fix in the
netvsc driver in 'net' and an optimization of the RX path
in 'net-next'.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_atomic_plane.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_atomic_plane.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c index dbe9fb41ae53..8d3e515f27ba 100644 --- a/drivers/gpu/drm/i915/intel_atomic_plane.c +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c | |||
@@ -85,6 +85,8 @@ intel_plane_duplicate_state(struct drm_plane *plane) | |||
85 | 85 | ||
86 | __drm_atomic_helper_plane_duplicate_state(plane, state); | 86 | __drm_atomic_helper_plane_duplicate_state(plane, state); |
87 | 87 | ||
88 | intel_state->vma = NULL; | ||
89 | |||
88 | return state; | 90 | return state; |
89 | } | 91 | } |
90 | 92 | ||
@@ -100,6 +102,24 @@ void | |||
100 | intel_plane_destroy_state(struct drm_plane *plane, | 102 | intel_plane_destroy_state(struct drm_plane *plane, |
101 | struct drm_plane_state *state) | 103 | struct drm_plane_state *state) |
102 | { | 104 | { |
105 | struct i915_vma *vma; | ||
106 | |||
107 | vma = fetch_and_zero(&to_intel_plane_state(state)->vma); | ||
108 | |||
109 | /* | ||
110 | * FIXME: Normally intel_cleanup_plane_fb handles destruction of vma. | ||
111 | * We currently don't clear all planes during driver unload, so we have | ||
112 | * to be able to unpin vma here for now. | ||
113 | * | ||
114 | * Normally this can only happen during unload when kmscon is disabled | ||
115 | * and userspace doesn't attempt to set a framebuffer at all. | ||
116 | */ | ||
117 | if (vma) { | ||
118 | mutex_lock(&plane->dev->struct_mutex); | ||
119 | intel_unpin_fb_vma(vma); | ||
120 | mutex_unlock(&plane->dev->struct_mutex); | ||
121 | } | ||
122 | |||
103 | drm_atomic_helper_plane_destroy_state(plane, state); | 123 | drm_atomic_helper_plane_destroy_state(plane, state); |
104 | } | 124 | } |
105 | 125 | ||