aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm
diff options
context:
space:
mode:
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>2015-03-03 09:22:31 -0500
committerDave Airlie <airlied@redhat.com>2015-03-04 18:49:02 -0500
commitd136dfeec84bfe3e4238bacd23f21e161268deac (patch)
tree0b12433e23cbf549e0698269535a166f8f6bbf2f /drivers/gpu/drm/msm
parent7547af91868f0ea940abc25460accc4025c5ce0a (diff)
drm: Pass in new and old plane state to prepare_fb and cleanup_fb
Use cases like rotation require these hooks to have some context so they know how to prepare and cleanup the frame buffer correctly. For i915 specifically, object backing pages need to be mapped differently for different rotation modes and the driver needs to know which mapping to instantiate and which to tear down when transitioning between them. v2: Made passed in states const. (Daniel Vetter) [airlied: add mdp5 and atmel fixups] Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: dri-devel@lists.freedesktop.org Reviewed-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/msm')
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c6
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
index cde25009203a..dbc068988377 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
@@ -83,7 +83,8 @@ static const struct drm_plane_funcs mdp4_plane_funcs = {
83}; 83};
84 84
85static int mdp4_plane_prepare_fb(struct drm_plane *plane, 85static int mdp4_plane_prepare_fb(struct drm_plane *plane,
86 struct drm_framebuffer *fb) 86 struct drm_framebuffer *fb,
87 const struct drm_plane_state *new_state)
87{ 88{
88 struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane); 89 struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane);
89 struct mdp4_kms *mdp4_kms = get_kms(plane); 90 struct mdp4_kms *mdp4_kms = get_kms(plane);
@@ -93,7 +94,8 @@ static int mdp4_plane_prepare_fb(struct drm_plane *plane,
93} 94}
94 95
95static void mdp4_plane_cleanup_fb(struct drm_plane *plane, 96static void mdp4_plane_cleanup_fb(struct drm_plane *plane,
96 struct drm_framebuffer *fb) 97 struct drm_framebuffer *fb,
98 const struct drm_plane_state *old_state)
97{ 99{
98 struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane); 100 struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane);
99 struct mdp4_kms *mdp4_kms = get_kms(plane); 101 struct mdp4_kms *mdp4_kms = get_kms(plane);
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
index 05cf9ab2a876..6bd48e246283 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
@@ -156,7 +156,8 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
156}; 156};
157 157
158static int mdp5_plane_prepare_fb(struct drm_plane *plane, 158static int mdp5_plane_prepare_fb(struct drm_plane *plane,
159 struct drm_framebuffer *fb) 159 struct drm_framebuffer *fb,
160 const struct drm_plane_state *new_state)
160{ 161{
161 struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane); 162 struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
162 struct mdp5_kms *mdp5_kms = get_kms(plane); 163 struct mdp5_kms *mdp5_kms = get_kms(plane);
@@ -166,7 +167,8 @@ static int mdp5_plane_prepare_fb(struct drm_plane *plane,
166} 167}
167 168
168static void mdp5_plane_cleanup_fb(struct drm_plane *plane, 169static void mdp5_plane_cleanup_fb(struct drm_plane *plane,
169 struct drm_framebuffer *fb) 170 struct drm_framebuffer *fb,
171 const struct drm_plane_state *old_state)
170{ 172{
171 struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane); 173 struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
172 struct mdp5_kms *mdp5_kms = get_kms(plane); 174 struct mdp5_kms *mdp5_kms = get_kms(plane);