From: Dor Askayo Date: Sat, 12 Aug 2023 19:29:30 +0000 (+0300) Subject: nouveau: add interface to make buffer objects global X-Git-Tag: libdrm-2.4.116~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=18644eb64f4e4da583b9f0a43c9f97756cd5aef0;p=platform%2Fupstream%2Flibdrm.git nouveau: add interface to make buffer objects global This is useful for when GEM handles are exported and may be shared between multiple buffer objects without going through other libdrm interfaces. Signed-off-by: Dor Askayo Reviewed-by: Karol Herbst --- diff --git a/nouveau/nouveau-symbols.txt b/nouveau/nouveau-symbols.txt index 598465f..7e9b103 100644 --- a/nouveau/nouveau-symbols.txt +++ b/nouveau/nouveau-symbols.txt @@ -1,3 +1,4 @@ +nouveau_bo_make_global nouveau_bo_map nouveau_bo_name_get nouveau_bo_name_ref diff --git a/nouveau/nouveau.c b/nouveau/nouveau.c index 7b4efde..62914a3 100644 --- a/nouveau/nouveau.c +++ b/nouveau/nouveau.c @@ -711,7 +711,7 @@ nouveau_bo_wrap_locked(struct nouveau_device *dev, uint32_t handle, } static void -nouveau_bo_make_global(struct nouveau_bo_priv *nvbo) +nouveau_nvbo_make_global(struct nouveau_bo_priv *nvbo) { if (!nvbo->head.next) { struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); @@ -722,6 +722,14 @@ nouveau_bo_make_global(struct nouveau_bo_priv *nvbo) } } +drm_public void +nouveau_bo_make_global(struct nouveau_bo *bo) +{ + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + + nouveau_nvbo_make_global(nvbo); +} + drm_public int nouveau_bo_wrap(struct nouveau_device *dev, uint32_t handle, struct nouveau_bo **pbo) @@ -780,7 +788,7 @@ nouveau_bo_name_get(struct nouveau_bo *bo, uint32_t *name) } nvbo->name = *name = req.name; - nouveau_bo_make_global(nvbo); + nouveau_nvbo_make_global(nvbo); } return 0; } @@ -830,7 +838,7 @@ nouveau_bo_set_prime(struct nouveau_bo *bo, int *prime_fd) if (ret) return ret; - nouveau_bo_make_global(nvbo); + nouveau_nvbo_make_global(nvbo); return 0; } diff --git a/nouveau/nouveau.h b/nouveau/nouveau.h index 0c632fe..a5119f9 100644 --- a/nouveau/nouveau.h +++ b/nouveau/nouveau.h @@ -137,6 +137,7 @@ struct nouveau_bo { int nouveau_bo_new(struct nouveau_device *, uint32_t flags, uint32_t align, uint64_t size, union nouveau_bo_config *, struct nouveau_bo **); +void nouveau_bo_make_global(struct nouveau_bo *); int nouveau_bo_wrap(struct nouveau_device *, uint32_t handle, struct nouveau_bo **); int nouveau_bo_name_ref(struct nouveau_device *v, uint32_t name,