summaryrefslogtreecommitdiff
path: root/include/drm
diff options
context:
space:
mode:
authorPaul Cercueil <paul@crapouillou.net>2021-05-23 20:04:14 +0300
committerPaul Cercueil <paul@crapouillou.net>2021-05-25 13:42:09 +0300
commitb09069046d6b7df1deea02cc14dc893e5e96630a (patch)
treeb18c2c66c36334625fb6c5c6ebda6450a5b92f11 /include/drm
parentcf8ccbc72d6109eddf6ae04196addf62cf716639 (diff)
downloadlinux-b09069046d6b7df1deea02cc14dc893e5e96630a.tar.xz
drm: Add and export function drm_fb_cma_sync_non_coherent
This function can be used by drivers that use damage clips and have CMA GEM objects backed by non-coherent memory. Calling this function in a plane's .atomic_update ensures that all the data in the backing memory have been written to RAM. v3: - Only sync data if using GEM objects backed by non-coherent memory. - Use a drm_device pointer instead of device pointer in prototype v5: - Rename to drm_fb_cma_sync_non_coherent - Invert loops for better cache locality - Only sync BOs that have the non-coherent flag - Move to drm_fb_cma_helper.c to avoid circular dependency Signed-off-by: Paul Cercueil <paul@crapouillou.net> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20210523170415.90410-3-paul@crapouillou.net
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drm_fb_cma_helper.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
index 795aea1d0a25..6447e34528f8 100644
--- a/include/drm/drm_fb_cma_helper.h
+++ b/include/drm/drm_fb_cma_helper.h
@@ -4,6 +4,7 @@
#include <linux/types.h>
+struct drm_device;
struct drm_framebuffer;
struct drm_plane_state;
@@ -14,5 +15,9 @@ dma_addr_t drm_fb_cma_get_gem_addr(struct drm_framebuffer *fb,
struct drm_plane_state *state,
unsigned int plane);
+void drm_fb_cma_sync_non_coherent(struct drm_device *drm,
+ struct drm_plane_state *old_state,
+ struct drm_plane_state *state);
+
#endif