summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/panfrost/pan_bo.c
diff options
context:
space:
mode:
authorBoris Brezillon <[email protected]>2019-09-14 09:45:37 +0200
committerBoris Brezillon <[email protected]>2019-09-18 10:28:39 +0200
commit29d0e5c1776cf430f0fd7d262df55670a5ff8d05 (patch)
tree162bd8e2b71316be68070797ae2989bcbab8fa2b /src/gallium/drivers/panfrost/pan_bo.c
parent0500c9e5145e651566b0204c3b62984919ba2450 (diff)
panfrost: Move panfrost_bo_{reference,unreference}() to pan_bo.c
This way we have all BO related functions placed in the same source file. Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/gallium/drivers/panfrost/pan_bo.c')
-rw-r--r--src/gallium/drivers/panfrost/pan_bo.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_bo.c b/src/gallium/drivers/panfrost/pan_bo.c
index 22476f09566..9b0e8d943b4 100644
--- a/src/gallium/drivers/panfrost/pan_bo.c
+++ b/src/gallium/drivers/panfrost/pan_bo.c
@@ -29,6 +29,7 @@
#include <pthread.h>
#include "drm-uapi/panfrost_drm.h"
+#include "pan_resource.h"
#include "pan_screen.h"
#include "pan_util.h"
#include "pandecode/decode.h"
@@ -319,6 +320,25 @@ panfrost_bo_release(struct panfrost_screen *screen, struct panfrost_bo *bo,
ralloc_free(bo);
}
+void
+panfrost_bo_reference(struct panfrost_bo *bo)
+{
+ if (bo)
+ pipe_reference(NULL, &bo->reference);
+}
+
+void
+panfrost_bo_unreference(struct pipe_screen *screen, struct panfrost_bo *bo)
+{
+ if (!bo)
+ return;
+
+ /* When the reference count goes to zero, we need to cleanup */
+
+ if (pipe_reference(&bo->reference, NULL))
+ panfrost_bo_release(pan_screen(screen), bo, true);
+}
+
struct panfrost_bo *
panfrost_bo_import(struct panfrost_screen *screen, int fd)
{