diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3313-drm-amdgpu-discovery-move-common-discovery-code-out-.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3313-drm-amdgpu-discovery-move-common-discovery-code-out-.patch | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3313-drm-amdgpu-discovery-move-common-discovery-code-out-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3313-drm-amdgpu-discovery-move-common-discovery-code-out-.patch new file mode 100644 index 00000000..169c7899 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3313-drm-amdgpu-discovery-move-common-discovery-code-out-.patch @@ -0,0 +1,120 @@ +From 62e450325b03d6997bdb6958994562385aec0036 Mon Sep 17 00:00:00 2001 +From: Xiaojie Yuan <xiaojie.yuan@amd.com> +Date: Mon, 5 Aug 2019 16:19:45 +0800 +Subject: [PATCH 3313/4256] drm/amdgpu/discovery: move common discovery code + out of navi1*_reg_base_init() + +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.yuan@amd.com> +Reviewed-by: Hawking Zhang <Hawking.Zhang@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 1e2edb561ab9..280ae6ee6ada 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.17.1 + |