aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3313-drm-amdgpu-discovery-move-common-discovery-code-out-.patch
diff options
context:
space:
mode:
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-.patch120
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
+