From: Karol Herbst Date: Tue, 31 May 2022 23:04:08 +0000 (+0200) Subject: novueau/bo: add nouveau_ws_bo_wait X-Git-Tag: upstream/23.3.3~4601 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cd46cf852b36c455bca3561feed919ffe63070a2;p=platform%2Fupstream%2Fmesa.git novueau/bo: add nouveau_ws_bo_wait Part-of: --- diff --git a/src/nouveau/winsys/nouveau_bo.c b/src/nouveau/winsys/nouveau_bo.c index d9b4044..6a3c46b 100644 --- a/src/nouveau/winsys/nouveau_bo.c +++ b/src/nouveau/winsys/nouveau_bo.c @@ -73,3 +73,15 @@ nouveau_ws_bo_map(struct nouveau_ws_bo *bo, enum nouveau_ws_bo_map_flags flags) return res; } + +bool +nouveau_ws_bo_wait(struct nouveau_ws_bo *bo, enum nouveau_ws_bo_map_flags flags) +{ + struct drm_nouveau_gem_cpu_prep req = {}; + + req.handle = bo->handle; + if (flags & NOUVEAU_WS_BO_WR) + req.flags |= NOUVEAU_GEM_CPU_PREP_WRITE; + + return !drmCommandWrite(bo->fd, DRM_NOUVEAU_GEM_CPU_PREP, &req, sizeof(req)); +} diff --git a/src/nouveau/winsys/nouveau_bo.h b/src/nouveau/winsys/nouveau_bo.h index 55cca39..93925ac 100644 --- a/src/nouveau/winsys/nouveau_bo.h +++ b/src/nouveau/winsys/nouveau_bo.h @@ -31,6 +31,7 @@ struct nouveau_ws_bo { struct nouveau_ws_bo *nouveau_ws_bo_new(struct nouveau_ws_device *, uint64_t size, uint64_t align, enum nouveau_ws_bo_flags); void nouveau_ws_bo_destroy(struct nouveau_ws_bo *); void *nouveau_ws_bo_map(struct nouveau_ws_bo *, enum nouveau_ws_bo_map_flags); +bool nouveau_ws_bo_wait(struct nouveau_ws_bo *, enum nouveau_ws_bo_map_flags flags); static inline void nouveau_ws_bo_ref(struct nouveau_ws_bo *bo)