diff options
author | Tvrtko Ursulin <tvrtko.ursulin@intel.com> | 2015-03-03 14:22:31 +0000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-03-05 09:49:02 +1000 |
commit | d136dfeec84bfe3e4238bacd23f21e161268deac (patch) | |
tree | 0b12433e23cbf549e0698269535a166f8f6bbf2f /include/drm/drm_plane_helper.h | |
parent | 7547af91868f0ea940abc25460accc4025c5ce0a (diff) | |
download | linux-stable-d136dfeec84bfe3e4238bacd23f21e161268deac.tar.gz linux-stable-d136dfeec84bfe3e4238bacd23f21e161268deac.tar.bz2 linux-stable-d136dfeec84bfe3e4238bacd23f21e161268deac.zip |
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 'include/drm/drm_plane_helper.h')
-rw-r--r-- | include/drm/drm_plane_helper.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/drm/drm_plane_helper.h b/include/drm/drm_plane_helper.h index 31c11d36fae6..72ddab02ebd9 100644 --- a/include/drm/drm_plane_helper.h +++ b/include/drm/drm_plane_helper.h @@ -59,9 +59,11 @@ extern int drm_crtc_init(struct drm_device *dev, */ struct drm_plane_helper_funcs { int (*prepare_fb)(struct drm_plane *plane, - struct drm_framebuffer *fb); + struct drm_framebuffer *fb, + const struct drm_plane_state *new_state); void (*cleanup_fb)(struct drm_plane *plane, - struct drm_framebuffer *fb); + struct drm_framebuffer *fb, + const struct drm_plane_state *old_state); int (*atomic_check)(struct drm_plane *plane, struct drm_plane_state *state); |