move amdgpu_discovery_reg_base_init() from navi1*_reg_base_init() to a
common function nv_reg_base_init().

Signed-off-by: Xiaojie Yuan <xiaojie.y...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c | 14 +---------
 drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c | 14 +---------
 drivers/gpu/drm/amd/amdgpu/nv.c              | 29 ++++++++++++++++++--
 3 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c 
b/drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c
index 55014ce8670a..a56c93620e78 100644
--- a/drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c
+++ b/drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c
@@ -29,20 +29,8 @@
 
 int navi10_reg_base_init(struct amdgpu_device *adev)
 {
-       int r, i;
+       int i;
 
-       if (amdgpu_discovery) {
-               r = amdgpu_discovery_reg_base_init(adev);
-               if (r) {
-                       DRM_WARN("failed to init reg base from ip discovery 
table, "
-                                       "fallback to legacy init method\n");
-                       goto legacy_init;
-               }
-
-               return 0;
-       }
-
-legacy_init:
        for (i = 0 ; i < MAX_INSTANCE ; ++i) {
                adev->reg_offset[GC_HWIP][i] = (uint32_t 
*)(&(GC_BASE.instance[i]));
                adev->reg_offset[HDP_HWIP][i] = (uint32_t 
*)(&(HDP_BASE.instance[i]));
diff --git a/drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c 
b/drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c
index 864668a7f1d2..3b5f0f65e096 100644
--- a/drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c
+++ b/drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c
@@ -29,20 +29,8 @@
 
 int navi14_reg_base_init(struct amdgpu_device *adev)
 {
-       int r, i;
+       int i;
 
-       if (amdgpu_discovery) {
-               r = amdgpu_discovery_reg_base_init(adev);
-               if (r) {
-                       DRM_WARN("failed to init reg base from ip discovery 
table, "
-                                       "fallback to legacy init method\n");
-                       goto legacy_init;
-               }
-
-               return 0;
-       }
-
-legacy_init:
        for (i = 0 ; i < MAX_INSTANCE ; ++i) {
                adev->reg_offset[GC_HWIP][i] = (uint32_t 
*)(&(GC_BASE.instance[i]));
                adev->reg_offset[HDP_HWIP][i] = (uint32_t 
*)(&(HDP_BASE.instance[i]));
diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c
index 9614c65fa292..9e3d8d4a0d86 100644
--- a/drivers/gpu/drm/amd/amdgpu/nv.c
+++ b/drivers/gpu/drm/amd/amdgpu/nv.c
@@ -375,9 +375,22 @@ static const struct amdgpu_ip_block_version 
nv_common_ip_block =
        .funcs = &nv_common_ip_funcs,
 };
 
-int nv_set_ip_blocks(struct amdgpu_device *adev)
+static int nv_reg_base_init(struct amdgpu_device *adev)
 {
-       /* Set IP register base before any HW register access */
+       int r;
+
+       if (amdgpu_discovery) {
+               r = amdgpu_discovery_reg_base_init(adev);
+               if (r) {
+                       DRM_WARN("failed to init reg base from ip discovery 
table, "
+                                       "fallback to legacy init method\n");
+                       goto legacy_init;
+               }
+
+               return 0;
+       }
+
+legacy_init:
        switch (adev->asic_type) {
        case CHIP_NAVI10:
                navi10_reg_base_init(adev);
@@ -392,6 +405,18 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
                return -EINVAL;
        }
 
+       return 0;
+}
+
+int nv_set_ip_blocks(struct amdgpu_device *adev)
+{
+       int r;
+
+       /* Set IP register base before any HW register access */
+       r = nv_reg_base_init(adev);
+       if (r)
+               return r;
+
        adev->nbio_funcs = &nbio_v2_3_funcs;
 
        adev->nbio_funcs->detect_hw_virt(adev);
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to