diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c index f8e557885..15d5b7325 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c @@ -59,6 +59,14 @@ u64 gk20a_alloc_end(struct gk20a_allocator *a) return 0; } +u64 gk20a_alloc_space(struct gk20a_allocator *a) +{ + if (a->ops->space) + return a->ops->space(a); + + return 0; +} + u64 gk20a_alloc(struct gk20a_allocator *a, u64 len) { return a->ops->alloc(a, len); diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h index 40388ef8e..dc065ffac 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h @@ -61,6 +61,7 @@ struct gk20a_allocator_ops { u64 (*length)(struct gk20a_allocator *allocator); u64 (*end)(struct gk20a_allocator *allocator); int (*inited)(struct gk20a_allocator *allocator); + u64 (*space)(struct gk20a_allocator *allocator); /* Destructor. */ void (*fini)(struct gk20a_allocator *allocator); @@ -223,6 +224,7 @@ u64 gk20a_alloc_base(struct gk20a_allocator *a); u64 gk20a_alloc_length(struct gk20a_allocator *a); u64 gk20a_alloc_end(struct gk20a_allocator *a); u64 gk20a_alloc_initialized(struct gk20a_allocator *a); +u64 gk20a_alloc_space(struct gk20a_allocator *a); void gk20a_alloc_destroy(struct gk20a_allocator *allocator);