drm: Add and export function drm_fb_cma_sync_non_coherent
authorPaul Cercueil <paul@crapouillou.net>
Sun, 23 May 2021 17:04:14 +0000 (18:04 +0100)
committerPaul Cercueil <paul@crapouillou.net>
Tue, 25 May 2021 10:42:09 +0000 (11:42 +0100)
commitb09069046d6b7df1deea02cc14dc893e5e96630a
treeb18c2c66c36334625fb6c5c6ebda6450a5b92f11
parentcf8ccbc72d6109eddf6ae04196addf62cf716639
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
drivers/gpu/drm/drm_fb_cma_helper.c
include/drm/drm_fb_cma_helper.h