[PATCH 1/2] flush
Chris Wilson
chris at chris-wilson.co.uk
Fri Oct 9 13:21:40 UTC 2020
---
drivers/gpu/drm/drm_gem_shmem_helper.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c
index fb11df7aced5..85a356f8ef35 100644
--- a/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ b/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -11,6 +11,7 @@
#include <linux/vmalloc.h>
#include <drm/drm.h>
+#include <drm/drm_cache.h>
#include <drm/drm_device.h>
#include <drm/drm_drv.h>
#include <drm/drm_gem_shmem_helper.h>
@@ -234,10 +235,20 @@ EXPORT_SYMBOL(drm_gem_shmem_put_pages);
int drm_gem_shmem_pin(struct drm_gem_object *obj)
{
struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+ int ret;
WARN_ON(shmem->base.import_attach);
- return drm_gem_shmem_get_pages(shmem);
+ ret = drm_gem_shmem_get_pages(shmem);
+ if (ret)
+ return ret;
+
+ /*
+ * Flush the object from the CPU cache so that PRIME importers can rely
+ * on coherent indirect access via the exported dma-address.
+ */
+ drm_clflush_pages(shmem->pages, shmem->base.size >> PAGE_SHIFT);
+ return 0;
}
EXPORT_SYMBOL(drm_gem_shmem_pin);
--
2.20.1
More information about the Intel-gfx-trybot
mailing list