diff options
-rw-r--r-- | armada_bufmgr.c | 13 | ||||
-rw-r--r-- | armada_bufmgr.h | 3 | ||||
-rw-r--r-- | debian/changelog | 3 |
3 files changed, 18 insertions, 1 deletions
diff --git a/armada_bufmgr.c b/armada_bufmgr.c index 99eddbf..938138f 100644 --- a/armada_bufmgr.c +++ b/armada_bufmgr.c @@ -595,6 +595,19 @@ int drm_armada_bo_subdata(struct drm_armada_bo *dbo, unsigned long offset, return drmIoctl(fd, DRM_IOCTL_ARMADA_GEM_PWRITE, &arg); } +int drm_armada_cache_reap(struct drm_armada_bufmgr *mgr) +{ + struct timespec time; + + if (!DRMLISTEMPTY(&mgr->cache.head)) { + clock_gettime(CLOCK_MONOTONIC, &time); + + armada_bo_cache_clean(&mgr->cache, time.tv_sec); + } + + return !DRMLISTEMPTY(&mgr->cache.head); +} + int drm_armada_init(int fd, struct drm_armada_bufmgr **mgrp) { struct drm_armada_bufmgr *mgr; diff --git a/armada_bufmgr.h b/armada_bufmgr.h index 4acc774..f4772fd 100644 --- a/armada_bufmgr.h +++ b/armada_bufmgr.h @@ -1,6 +1,8 @@ #ifndef DRM_ARMADA_GEM_H #define DRM_ARMADA_GEM_H +#include <stdint.h> + enum drm_armada_bo_type { DRM_ARMADA_BO_DUMB, DRM_ARMADA_BO_LINEAR, @@ -18,6 +20,7 @@ struct drm_armada_bo { enum drm_armada_bo_type type; }; +int drm_armada_cache_reap(struct drm_armada_bufmgr *mgr); int drm_armada_init(int fd, struct drm_armada_bufmgr **mgr); void drm_armada_fini(struct drm_armada_bufmgr *); diff --git a/debian/changelog b/debian/changelog index 93c57b8..c6aa895 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ libdrm-armada (2.0.3-1) unstable; urgency=low * Add drm_armada_bo_create_size() + * Add drm_armada_cache_reap() - -- Russell King <rmk_cubox@arm.linux.org.uk> Sat, 20 Sep 2014 23:07:21 +0100 + -- Russell King <rmk_cubox@arm.linux.org.uk> Sat, 12 Oct 2014 19:31:04 +0100 libdrm-armada (2.0.2-1) unstable; urgency=low |