forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/gpu/drm/ttm/ttm_memory.c
....@@ -41,6 +41,9 @@
4141
4242 #define TTM_MEMORY_ALLOC_RETRIES 4
4343
44
+struct ttm_mem_global ttm_mem_glob;
45
+EXPORT_SYMBOL(ttm_mem_glob);
46
+
4447 struct ttm_mem_zone {
4548 struct kobject kobj;
4649 struct ttm_mem_global *glob;
....@@ -78,7 +81,7 @@
7881 struct ttm_mem_zone *zone =
7982 container_of(kobj, struct ttm_mem_zone, kobj);
8083
81
- pr_info("Zone %7s: Used memory at exit: %llu kiB\n",
84
+ pr_info("Zone %7s: Used memory at exit: %llu KiB\n",
8285 zone->name, (unsigned long long)zone->used_mem >> 10);
8386 kfree(zone);
8487 }
....@@ -256,7 +259,7 @@
256259 return false;
257260 }
258261
259
-/**
262
+/*
260263 * At this point we only support a single shrink callback.
261264 * Extend this if needed, perhaps using a linked list of callbacks.
262265 * Note that this function is reentrant:
....@@ -272,7 +275,7 @@
272275
273276 while (ttm_zones_above_swap_target(glob, from_wq, extra)) {
274277 spin_unlock(&glob->lock);
275
- ret = ttm_bo_swapout(glob->bo_glob, ctx);
278
+ ret = ttm_bo_swapout(&ttm_bo_glob, ctx);
276279 spin_lock(&glob->lock);
277280 if (unlikely(ret != 0))
278281 break;
....@@ -445,7 +448,7 @@
445448 #endif
446449 for (i = 0; i < glob->num_zones; ++i) {
447450 zone = glob->zones[i];
448
- pr_info("Zone %7s: Available graphics memory: %llu kiB\n",
451
+ pr_info("Zone %7s: Available graphics memory: %llu KiB\n",
449452 zone->name, (unsigned long long)zone->max_mem >> 10);
450453 }
451454 ttm_page_alloc_init(glob, glob->zone_kernel->max_mem/(2*PAGE_SIZE));
....@@ -455,12 +458,11 @@
455458 ttm_mem_global_release(glob);
456459 return ret;
457460 }
458
-EXPORT_SYMBOL(ttm_mem_global_init);
459461
460462 void ttm_mem_global_release(struct ttm_mem_global *glob)
461463 {
462
- unsigned int i;
463464 struct ttm_mem_zone *zone;
465
+ unsigned int i;
464466
465467 /* let the page allocator first stop the shrink work. */
466468 ttm_page_alloc_fini();
....@@ -473,11 +475,11 @@
473475 zone = glob->zones[i];
474476 kobject_del(&zone->kobj);
475477 kobject_put(&zone->kobj);
476
- }
478
+ }
477479 kobject_del(&glob->kobj);
478480 kobject_put(&glob->kobj);
481
+ memset(glob, 0, sizeof(*glob));
479482 }
480
-EXPORT_SYMBOL(ttm_mem_global_release);
481483
482484 static void ttm_check_swapping(struct ttm_mem_global *glob)
483485 {
....@@ -521,7 +523,7 @@
521523 void ttm_mem_global_free(struct ttm_mem_global *glob,
522524 uint64_t amount)
523525 {
524
- return ttm_mem_global_free_zone(glob, NULL, amount);
526
+ return ttm_mem_global_free_zone(glob, glob->zone_kernel, amount);
525527 }
526528 EXPORT_SYMBOL(ttm_mem_global_free);
527529
....@@ -552,7 +554,6 @@
552554
553555 return false;
554556 }
555
-EXPORT_SYMBOL(ttm_check_under_lowerlimit);
556557
557558 static int ttm_mem_global_reserve(struct ttm_mem_global *glob,
558559 struct ttm_mem_zone *single_zone,
....@@ -620,10 +621,10 @@
620621 {
621622 /**
622623 * Normal allocations of kernel memory are registered in
623
- * all zones.
624
+ * the kernel zone.
624625 */
625626
626
- return ttm_mem_global_alloc_zone(glob, NULL, memory, ctx);
627
+ return ttm_mem_global_alloc_zone(glob, glob->zone_kernel, memory, ctx);
627628 }
628629 EXPORT_SYMBOL(ttm_mem_global_alloc);
629630
....@@ -680,9 +681,3 @@
680681 return 0;
681682 }
682683 EXPORT_SYMBOL(ttm_round_pot);
683
-
684
-uint64_t ttm_get_kernel_zone_memory_size(struct ttm_mem_global *glob)
685
-{
686
- return glob->zone_kernel->max_mem;
687
-}
688
-EXPORT_SYMBOL(ttm_get_kernel_zone_memory_size);