diff --git a/src/etnaviv/drm/etnaviv_bo.c b/src/etnaviv/drm/etnaviv_bo.c index 5cbc088b241..ceb22dc5d73 100644 --- a/src/etnaviv/drm/etnaviv_bo.c +++ b/src/etnaviv/drm/etnaviv_bo.c @@ -43,6 +43,14 @@ static void set_name(struct etna_bo *bo, uint32_t name) _mesa_hash_table_insert(bo->dev->name_table, &bo->name, bo); } +int etna_bo_is_idle(struct etna_bo *bo) +{ + return etna_bo_cpu_prep(bo, + DRM_ETNA_PREP_READ | + DRM_ETNA_PREP_WRITE | + DRM_ETNA_PREP_NOSYNC) == 0; +} + /* Called under etna_drm_table_lock */ void _etna_bo_del(struct etna_bo *bo) { diff --git a/src/etnaviv/drm/etnaviv_bo_cache.c b/src/etnaviv/drm/etnaviv_bo_cache.c index 91fb17383c4..3635170604b 100644 --- a/src/etnaviv/drm/etnaviv_bo_cache.c +++ b/src/etnaviv/drm/etnaviv_bo_cache.c @@ -110,14 +110,6 @@ static struct etna_bo_bucket *get_bucket(struct etna_bo_cache *cache, uint32_t s return NULL; } -static int is_idle(struct etna_bo *bo) -{ - return etna_bo_cpu_prep(bo, - DRM_ETNA_PREP_READ | - DRM_ETNA_PREP_WRITE | - DRM_ETNA_PREP_NOSYNC) == 0; -} - static struct etna_bo *find_in_bucket(struct etna_bo_bucket *bucket, uint32_t flags) { struct etna_bo *bo = NULL, *tmp; @@ -133,7 +125,7 @@ static struct etna_bo *find_in_bucket(struct etna_bo_bucket *bucket, uint32_t fl continue; /* check if the first BO with matching flags is idle */ - if (is_idle(bo)) { + if (etna_bo_is_idle(bo)) { list_delinit(&bo->list); goto out_unlock; } diff --git a/src/etnaviv/drm/etnaviv_drmif.h b/src/etnaviv/drm/etnaviv_drmif.h index f7cc47f9915..ac65d6185a2 100644 --- a/src/etnaviv/drm/etnaviv_drmif.h +++ b/src/etnaviv/drm/etnaviv_drmif.h @@ -133,6 +133,7 @@ uint32_t etna_bo_gpu_va(struct etna_bo *bo); void * etna_bo_map(struct etna_bo *bo); int etna_bo_cpu_prep(struct etna_bo *bo, uint32_t op); void etna_bo_cpu_fini(struct etna_bo *bo); +int etna_bo_is_idle(struct etna_bo *bo); /* cmd stream functions: