aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0858-drm-amdgpu-Doorbell-index-initialization-for-ASICs-b.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0858-drm-amdgpu-Doorbell-index-initialization-for-ASICs-b.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0858-drm-amdgpu-Doorbell-index-initialization-for-ASICs-b.patch91
1 files changed, 91 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0858-drm-amdgpu-Doorbell-index-initialization-for-ASICs-b.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0858-drm-amdgpu-Doorbell-index-initialization-for-ASICs-b.patch
new file mode 100644
index 00000000..15aad9c8
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0858-drm-amdgpu-Doorbell-index-initialization-for-ASICs-b.patch
@@ -0,0 +1,91 @@
+From 13b11ea6e6430c736c8cd1e6bf3d65e4ba9235ad Mon Sep 17 00:00:00 2001
+From: Oak Zeng <ozeng@amd.com>
+Date: Mon, 19 Nov 2018 09:51:20 -0600
+Subject: [PATCH 0858/2940] drm/amdgpu: Doorbell index initialization for ASICs
+ before vega10
+
+Initialize doorbell index for asics vi and cik
+
+v2: Use enum definition instead of hardcoded number
+
+Signed-off-by: Oak Zeng <ozeng@amd.com>
+Suggested-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Suggested-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/cik.c | 1 +
+ drivers/gpu/drm/amd/amdgpu/cik.h | 1 +
+ drivers/gpu/drm/amd/amdgpu/vi.c | 19 +++++++++++++++++++
+ drivers/gpu/drm/amd/amdgpu/vi.h | 1 +
+ 4 files changed, 22 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
+index f41f5f57e9f3..71c50d8900e3 100644
+--- a/drivers/gpu/drm/amd/amdgpu/cik.c
++++ b/drivers/gpu/drm/amd/amdgpu/cik.c
+@@ -1755,6 +1755,7 @@ static const struct amdgpu_asic_funcs cik_asic_funcs =
+ .flush_hdp = &cik_flush_hdp,
+ .invalidate_hdp = &cik_invalidate_hdp,
+ .need_full_reset = &cik_need_full_reset,
++ .init_doorbell_index = &legacy_doorbell_index_init,
+ };
+
+ static int cik_common_early_init(void *handle)
+diff --git a/drivers/gpu/drm/amd/amdgpu/cik.h b/drivers/gpu/drm/amd/amdgpu/cik.h
+index e49c6f15a0a0..54c625a2e570 100644
+--- a/drivers/gpu/drm/amd/amdgpu/cik.h
++++ b/drivers/gpu/drm/amd/amdgpu/cik.h
+@@ -30,4 +30,5 @@ void cik_srbm_select(struct amdgpu_device *adev,
+ u32 me, u32 pipe, u32 queue, u32 vmid);
+ int cik_set_ip_blocks(struct amdgpu_device *adev);
+
++void legacy_doorbell_index_init(struct amdgpu_device *adev);
+ #endif
+diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
+index 07880d35e9de..ff2906c215fa 100644
+--- a/drivers/gpu/drm/amd/amdgpu/vi.c
++++ b/drivers/gpu/drm/amd/amdgpu/vi.c
+@@ -955,6 +955,7 @@ static const struct amdgpu_asic_funcs vi_asic_funcs =
+ .flush_hdp = &vi_flush_hdp,
+ .invalidate_hdp = &vi_invalidate_hdp,
+ .need_full_reset = &vi_need_full_reset,
++ .init_doorbell_index = &legacy_doorbell_index_init,
+ };
+
+ #define CZ_REV_BRISTOL(rev) \
+@@ -1712,3 +1713,21 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)
+
+ return 0;
+ }
++
++void legacy_doorbell_index_init(struct amdgpu_device *adev)
++{
++ adev->doorbell_index.kiq = AMDGPU_DOORBELL_KIQ;
++ adev->doorbell_index.mec_ring0 = AMDGPU_DOORBELL_MEC_RING0;
++ adev->doorbell_index.mec_ring1 = AMDGPU_DOORBELL_MEC_RING1;
++ adev->doorbell_index.mec_ring2 = AMDGPU_DOORBELL_MEC_RING2;
++ adev->doorbell_index.mec_ring3 = AMDGPU_DOORBELL_MEC_RING3;
++ adev->doorbell_index.mec_ring4 = AMDGPU_DOORBELL_MEC_RING4;
++ adev->doorbell_index.mec_ring5 = AMDGPU_DOORBELL_MEC_RING5;
++ adev->doorbell_index.mec_ring6 = AMDGPU_DOORBELL_MEC_RING6;
++ adev->doorbell_index.mec_ring7 = AMDGPU_DOORBELL_MEC_RING7;
++ adev->doorbell_index.gfx_ring0 = AMDGPU_DOORBELL_GFX_RING0;
++ adev->doorbell_index.sdma_engine0 = AMDGPU_DOORBELL_sDMA_ENGINE0;
++ adev->doorbell_index.sdma_engine1 = AMDGPU_DOORBELL_sDMA_ENGINE1;
++ adev->doorbell_index.ih = AMDGPU_DOORBELL_IH;
++ adev->doorbell_index.max_assignment = AMDGPU_DOORBELL_MAX_ASSIGNMENT;
++}
+diff --git a/drivers/gpu/drm/amd/amdgpu/vi.h b/drivers/gpu/drm/amd/amdgpu/vi.h
+index 0429fe332269..8de0772f986c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/vi.h
++++ b/drivers/gpu/drm/amd/amdgpu/vi.h
+@@ -30,4 +30,5 @@ void vi_srbm_select(struct amdgpu_device *adev,
+ u32 me, u32 pipe, u32 queue, u32 vmid);
+ int vi_set_ip_blocks(struct amdgpu_device *adev);
+
++void legacy_doorbell_index_init(struct amdgpu_device *adev);
+ #endif
+--
+2.17.1
+