From: Alex Hung <[email protected]>

[WHAT]
dm_allocate_gpu_mem() and dm_free_gpu_mem() are generic DM service
helpers that wrap amdgpu_bo_create_kernel()/amdgpu_bo_free_kernel()
and track allocations on adev->dm.da_list. Move them out of
amdgpu_dm.c into amdgpu_dm_services.c alongside the other dm_* service
callbacks.

Both are already public and declared in amdgpu_dm.h; their callers in
amdgpu_dm_dmub.c and amdgpu_dm_helpers.c are unaffected. No functional
change.

Reviewed-by: Bhawanpreet Lakha <[email protected]>
Signed-off-by: Alex Hung <[email protected]>
Signed-off-by: Fangzhi Zuo <[email protected]>
Tested-by: Dan Wheeler <[email protected]>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 53 -------------------
 .../display/amdgpu_dm/amdgpu_dm_services.c    | 53 +++++++++++++++++++
 2 files changed, 53 insertions(+), 53 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index d49f0cd3b113..dfc16f5e415a 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -411,59 +411,6 @@ static void mmhub_read_system_context(struct amdgpu_device 
*adev, struct dc_phy_
 
 }
 
-void*
-dm_allocate_gpu_mem(
-               struct amdgpu_device *adev,
-               enum dc_gpu_mem_alloc_type type,
-               size_t size,
-               long long *addr)
-{
-       struct dal_allocation *da;
-       u32 domain = (type == DC_MEM_ALLOC_TYPE_GART) ?
-               AMDGPU_GEM_DOMAIN_GTT : AMDGPU_GEM_DOMAIN_VRAM;
-       int ret;
-
-       da = kzalloc_obj(struct dal_allocation);
-       if (!da)
-               return NULL;
-
-       ret = amdgpu_bo_create_kernel(adev, size, PAGE_SIZE,
-                                     domain, &da->bo,
-                                     &da->gpu_addr, &da->cpu_ptr);
-
-       *addr = da->gpu_addr;
-
-       if (ret) {
-               kfree(da);
-               return NULL;
-       }
-
-       /* add da to list in dm */
-       list_add(&da->list, &adev->dm.da_list);
-
-       return da->cpu_ptr;
-}
-
-void
-dm_free_gpu_mem(
-               struct amdgpu_device *adev,
-               enum dc_gpu_mem_alloc_type type,
-               void *pvMem)
-{
-       struct dal_allocation *da;
-
-       /* walk the da list in DM */
-       list_for_each_entry(da, &adev->dm.da_list, list) {
-               if (pvMem == da->cpu_ptr) {
-                       amdgpu_bo_free_kernel(&da->bo, &da->gpu_addr, 
&da->cpu_ptr);
-                       list_del(&da->list);
-                       kfree(da);
-                       break;
-               }
-       }
-
-}
-
 static int amdgpu_dm_init_power_module(struct amdgpu_display_manager *dm)
 {
        struct mod_power_init_params init_data[MAX_NUM_EDP];
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c
index dbdda6ed12d4..6dbc8d1b4ecd 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c
@@ -96,3 +96,56 @@ bool dm_query_extended_brightness_caps(struct dc_context 
*ctx,
        return true;
 }
 EXPORT_IF_KUNIT(dm_query_extended_brightness_caps);
+
+void*
+dm_allocate_gpu_mem(
+               struct amdgpu_device *adev,
+               enum dc_gpu_mem_alloc_type type,
+               size_t size,
+               long long *addr)
+{
+       struct dal_allocation *da;
+       u32 domain = (type == DC_MEM_ALLOC_TYPE_GART) ?
+               AMDGPU_GEM_DOMAIN_GTT : AMDGPU_GEM_DOMAIN_VRAM;
+       int ret;
+
+       da = kzalloc_obj(*da);
+       if (!da)
+               return NULL;
+
+       ret = amdgpu_bo_create_kernel(adev, size, PAGE_SIZE,
+                                     domain, &da->bo,
+                                     &da->gpu_addr, &da->cpu_ptr);
+
+       *addr = da->gpu_addr;
+
+       if (ret) {
+               kfree(da);
+               return NULL;
+       }
+
+       /* add da to list in dm */
+       list_add(&da->list, &adev->dm.da_list);
+
+       return da->cpu_ptr;
+}
+
+void
+dm_free_gpu_mem(
+               struct amdgpu_device *adev,
+               enum dc_gpu_mem_alloc_type type,
+               void *pvMem)
+{
+       struct dal_allocation *da;
+
+       /* walk the da list in DM */
+       list_for_each_entry(da, &adev->dm.da_list, list) {
+               if (pvMem == da->cpu_ptr) {
+                       amdgpu_bo_free_kernel(&da->bo, &da->gpu_addr, 
&da->cpu_ptr);
+                       list_del(&da->list);
+                       kfree(da);
+                       break;
+               }
+       }
+
+}
-- 
2.53.0

Reply via email to