diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/mm')
-rw-r--r-- | drivers/gpu/nvgpu/common/mm/mm.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/mm/mm.c b/drivers/gpu/nvgpu/common/mm/mm.c index 88e3baa8..6c8f2cdf 100644 --- a/drivers/gpu/nvgpu/common/mm/mm.c +++ b/drivers/gpu/nvgpu/common/mm/mm.c | |||
@@ -198,6 +198,10 @@ static void nvgpu_remove_mm_support(struct mm_gk20a *mm) | |||
198 | nvgpu_semaphore_sea_destroy(g); | 198 | nvgpu_semaphore_sea_destroy(g); |
199 | nvgpu_vidmem_destroy(g); | 199 | nvgpu_vidmem_destroy(g); |
200 | nvgpu_pd_cache_fini(g); | 200 | nvgpu_pd_cache_fini(g); |
201 | |||
202 | if (g->ops.fifo.deinit_pdb_cache_war) { | ||
203 | g->ops.fifo.deinit_pdb_cache_war(g); | ||
204 | } | ||
201 | } | 205 | } |
202 | 206 | ||
203 | /* pmu vm, share channel_vm interfaces */ | 207 | /* pmu vm, share channel_vm interfaces */ |
@@ -501,6 +505,27 @@ static int nvgpu_init_mm_setup_sw(struct gk20a *g) | |||
501 | return 0; | 505 | return 0; |
502 | } | 506 | } |
503 | 507 | ||
508 | static int nvgpu_init_mm_pdb_cache_war(struct gk20a *g) | ||
509 | { | ||
510 | int err; | ||
511 | |||
512 | if (g->ops.fifo.init_pdb_cache_war) { | ||
513 | err = g->ops.fifo.init_pdb_cache_war(g); | ||
514 | if (err) { | ||
515 | return err; | ||
516 | } | ||
517 | } | ||
518 | |||
519 | if (g->ops.fb.apply_pdb_cache_war) { | ||
520 | err = g->ops.fb.apply_pdb_cache_war(g); | ||
521 | if (err) { | ||
522 | return err; | ||
523 | } | ||
524 | } | ||
525 | |||
526 | return 0; | ||
527 | } | ||
528 | |||
504 | int nvgpu_init_mm_support(struct gk20a *g) | 529 | int nvgpu_init_mm_support(struct gk20a *g) |
505 | { | 530 | { |
506 | u32 err; | 531 | u32 err; |
@@ -510,6 +535,11 @@ int nvgpu_init_mm_support(struct gk20a *g) | |||
510 | return err; | 535 | return err; |
511 | } | 536 | } |
512 | 537 | ||
538 | err = nvgpu_init_mm_pdb_cache_war(g); | ||
539 | if (err) { | ||
540 | return err; | ||
541 | } | ||
542 | |||
513 | err = nvgpu_init_mm_setup_sw(g); | 543 | err = nvgpu_init_mm_setup_sw(g); |
514 | if (err) { | 544 | if (err) { |
515 | return err; | 545 | return err; |