Am 29.07.20 um 19:34 schrieb Alex Deucher:
It's related to the memory manager so move it there.

Signed-off-by: Alex Deucher <[email protected]>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu.h           | 12 -----------
  drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c  |  4 ++--
  .../gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c  |  4 ++--
  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c       | 20 +++++++++----------
  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h       | 13 ++++++++++++
  drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c      |  6 +++---
  6 files changed, 30 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 44fd0ef7394f..81f6412eb54f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -649,16 +649,6 @@ struct amdgpu_atcs {
        struct amdgpu_atcs_functions functions;
  };
-/*
- * Firmware VRAM reservation
- */
-struct amdgpu_fw_vram_usage {
-       u64 start_offset;
-       u64 size;
-       struct amdgpu_bo *reserved_bo;
-       void *va;
-};
-
  /*
   * CGS
   */
@@ -942,8 +932,6 @@ struct amdgpu_device {
        struct delayed_work     delayed_init_work;
struct amdgpu_virt virt;
-       /* firmware VRAM reservation */
-       struct amdgpu_fw_vram_usage fw_vram_usage;
/* link all shadow bo */
        struct list_head                shadow_list;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
index 29f767e026e4..681f2ef739b1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
@@ -1786,9 +1786,9 @@ static int amdgpu_atombios_allocate_fb_scratch(struct 
amdgpu_device *adev)
                        (uint32_t)(ATOM_VRAM_BLOCK_SRIOV_MSG_SHARE_RESERVATION 
<<
                        ATOM_VRAM_OPERATION_FLAGS_SHIFT)) {
                        /* Firmware request VRAM reservation for SR-IOV */
-                       adev->fw_vram_usage.start_offset = (start_addr &
+                       adev->mman.fw_vram_usage.start_offset = (start_addr &
                                (~ATOM_VRAM_OPERATION_FLAGS_MASK)) << 10;
-                       adev->fw_vram_usage.size = size << 10;
+                       adev->mman.fw_vram_usage.size = size << 10;
                        /* Use the default scratch size */
                        usage_bytes = 0;
                } else {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
index 1279053324f9..07a835d42b72 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
@@ -89,9 +89,9 @@ int amdgpu_atomfirmware_allocate_fb_scratch(struct 
amdgpu_device *adev)
                        (uint32_t)(ATOM_VRAM_BLOCK_SRIOV_MSG_SHARE_RESERVATION 
<<
                        ATOM_VRAM_OPERATION_FLAGS_SHIFT)) {
                        /* Firmware request VRAM reservation for SR-IOV */
-                       adev->fw_vram_usage.start_offset = (start_addr &
+                       adev->mman.fw_vram_usage.start_offset = (start_addr &
                                (~ATOM_VRAM_OPERATION_FLAGS_MASK)) << 10;
-                       adev->fw_vram_usage.size = size << 10;
+                       adev->mman.fw_vram_usage.size = size << 10;
                        /* Use the default scratch size */
                        usage_bytes = 0;
                } else {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index ea9b5b39f640..f81a33f79517 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1766,8 +1766,8 @@ static struct ttm_bo_driver amdgpu_bo_driver = {
   */
  static void amdgpu_ttm_fw_reserve_vram_fini(struct amdgpu_device *adev)
  {
-       amdgpu_bo_free_kernel(&adev->fw_vram_usage.reserved_bo,
-               NULL, &adev->fw_vram_usage.va);
+       amdgpu_bo_free_kernel(&adev->mman.fw_vram_usage.reserved_bo,
+               NULL, &adev->mman.fw_vram_usage.va);
  }
/**
@@ -1781,19 +1781,19 @@ static int amdgpu_ttm_fw_reserve_vram_init(struct 
amdgpu_device *adev)
  {
        uint64_t vram_size = adev->gmc.visible_vram_size;
- adev->fw_vram_usage.va = NULL;
-       adev->fw_vram_usage.reserved_bo = NULL;
+       adev->mman.fw_vram_usage.va = NULL;
+       adev->mman.fw_vram_usage.reserved_bo = NULL;
- if (adev->fw_vram_usage.size == 0 ||
-           adev->fw_vram_usage.size > vram_size)
+       if (adev->mman.fw_vram_usage.size == 0 ||
+           adev->mman.fw_vram_usage.size > vram_size)
                return 0;
return amdgpu_bo_create_kernel_at(adev,
-                                         adev->fw_vram_usage.start_offset,
-                                         adev->fw_vram_usage.size,
+                                         adev->mman.fw_vram_usage.start_offset,
+                                         adev->mman.fw_vram_usage.size,
                                          AMDGPU_GEM_DOMAIN_VRAM,
-                                         &adev->fw_vram_usage.reserved_bo,
-                                         &adev->fw_vram_usage.va);
+                                         &adev->mman.fw_vram_usage.reserved_bo,
+                                         &adev->mman.fw_vram_usage.va);
  }
/*
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
index 6d7b83d967ce..95a513f7785f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
@@ -41,6 +41,16 @@
#define AMDGPU_POISON 0xd0bed0be +/*
+ * Firmware VRAM reservation
+ */
+struct amdgpu_fw_vram_usage {
+       u64 start_offset;
+       u64 size;
+       struct amdgpu_bo *reserved_bo;
+       void *va;
+};
+

Maybe we should even inline the structure while doing so. I don't see the need for a separate struct here.

Christian.

  struct amdgpu_mman {
        struct ttm_bo_device            bdev;
        bool                            mem_global_referenced;
@@ -70,6 +80,9 @@ struct amdgpu_mman {
        uint8_t                         *discovery_bin;
        uint32_t                        discovery_tmr_size;
        struct amdgpu_bo                *discovery_memory;
+
+       /* firmware VRAM reservation */
+       struct amdgpu_fw_vram_usage fw_vram_usage;
  };
struct amdgpu_copy_mem {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
index 5cae39d35c04..816e086f00d2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
@@ -401,7 +401,7 @@ static void amdgpu_virt_add_bad_page(struct amdgpu_device 
*adev,
        if (bp_block_size) {
                bp_cnt = bp_block_size / sizeof(uint64_t);
                for (bp_idx = 0; bp_idx < bp_cnt; bp_idx++) {
-                       retired_page = *(uint64_t *)(adev->fw_vram_usage.va +
+                       retired_page = *(uint64_t 
*)(adev->mman.fw_vram_usage.va +
                                        bp_block_offset + bp_idx * 
sizeof(uint64_t));
                        bp.retired_page = retired_page;
@@ -428,10 +428,10 @@ void amdgpu_virt_init_data_exchange(struct amdgpu_device *adev)
        adev->virt.fw_reserve.p_pf2vf = NULL;
        adev->virt.fw_reserve.p_vf2pf = NULL;
- if (adev->fw_vram_usage.va != NULL) {
+       if (adev->mman.fw_vram_usage.va != NULL) {
                adev->virt.fw_reserve.p_pf2vf =
                        (struct amd_sriov_msg_pf2vf_info_header *)(
-                       adev->fw_vram_usage.va + AMDGIM_DATAEXCHANGE_OFFSET);
+                       adev->mman.fw_vram_usage.va + 
AMDGIM_DATAEXCHANGE_OFFSET);
                AMDGPU_FW_VRAM_PF2VF_READ(adev, header.size, &pf2vf_size);
                AMDGPU_FW_VRAM_PF2VF_READ(adev, checksum, &checksum);
                AMDGPU_FW_VRAM_PF2VF_READ(adev, feature_flags, 
&adev->virt.gim_feature);

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to