summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2016-08-16 20:10:31 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-09-20 17:56:42 -0400
commitaa14efa2b4b7d52b3b9563ab536ca617e5e11d2e (patch)
treeec3dfaa95bb379ed3e3e498b0b0324aff94720aa /drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c
parentd16415ac264777e00546ee3435818c5ee94baba0 (diff)
gpu: nvgpu: Carveout support for the page allocator
Implement carveout support by just calling through to the buddy allocator's carveout support. Jira DNVGPU-84 Change-Id: I1940873394a4cbff0152f1b6c9c4fd659e0076e1 Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: http://git-master/r/1203392 (cherry picked from commit 499ee0407bf525e161a14cfb8bbbc101ac934329) Reviewed-on: http://git-master/r/1223454 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c b/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c
index 07e3d823..42eb9a14 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c
@@ -57,6 +57,22 @@ static u64 gk20a_page_alloc_end(struct gk20a_allocator *a)
57 return gk20a_alloc_end(&va->source_allocator); 57 return gk20a_alloc_end(&va->source_allocator);
58} 58}
59 59
60static int gk20a_page_reserve_co(struct gk20a_allocator *a,
61 struct gk20a_alloc_carveout *co)
62{
63 struct gk20a_page_allocator *va = a->priv;
64
65 return gk20a_alloc_reserve_carveout(&va->source_allocator, co);
66}
67
68static void gk20a_page_release_co(struct gk20a_allocator *a,
69 struct gk20a_alloc_carveout *co)
70{
71 struct gk20a_page_allocator *va = a->priv;
72
73 gk20a_alloc_release_carveout(&va->source_allocator, co);
74}
75
60static int __insert_page_alloc(struct gk20a_page_allocator *a, 76static int __insert_page_alloc(struct gk20a_page_allocator *a,
61 struct gk20a_page_alloc *alloc) 77 struct gk20a_page_alloc *alloc)
62{ 78{
@@ -469,6 +485,9 @@ static const struct gk20a_allocator_ops page_ops = {
469 .alloc_fixed = gk20a_page_alloc_fixed, 485 .alloc_fixed = gk20a_page_alloc_fixed,
470 .free_fixed = gk20a_page_free_fixed, 486 .free_fixed = gk20a_page_free_fixed,
471 487
488 .reserve_carveout = gk20a_page_reserve_co,
489 .release_carveout = gk20a_page_release_co,
490
472 .base = gk20a_page_alloc_base, 491 .base = gk20a_page_alloc_base,
473 .length = gk20a_page_alloc_length, 492 .length = gk20a_page_alloc_length,
474 .end = gk20a_page_alloc_end, 493 .end = gk20a_page_alloc_end,