aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0299-drm-amdgpu-initialize-GDS-GWS-OA-domains-even-when-t.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0299-drm-amdgpu-initialize-GDS-GWS-OA-domains-even-when-t.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0299-drm-amdgpu-initialize-GDS-GWS-OA-domains-even-when-t.patch90
1 files changed, 90 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0299-drm-amdgpu-initialize-GDS-GWS-OA-domains-even-when-t.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0299-drm-amdgpu-initialize-GDS-GWS-OA-domains-even-when-t.patch
new file mode 100644
index 00000000..697b5397
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0299-drm-amdgpu-initialize-GDS-GWS-OA-domains-even-when-t.patch
@@ -0,0 +1,90 @@
+From b346613d6545d25061b6311466c56003676c7c1f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Fri, 14 Sep 2018 20:59:27 +0200
+Subject: [PATCH 0299/2940] drm/amdgpu: initialize GDS/GWS/OA domains even when
+ they are zero sized
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Stops crashing on SI.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 48 ++++++++++---------------
+ 1 file changed, 18 insertions(+), 30 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+index 3a328e92c039..3752d070c405 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+@@ -2053,34 +2053,25 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
+ amdgpu_ssg_init(adev);
+
+ /* Initialize various on-chip memory pools */
+- /* GDS Memory */
+- if (adev->gds.mem.total_size) {
+- r = ttm_bo_init_mm(&adev->mman.bdev, AMDGPU_PL_GDS,
+- adev->gds.mem.total_size);
+- if (r) {
+- DRM_ERROR("Failed initializing GDS heap.\n");
+- return r;
+- }
++ r = ttm_bo_init_mm(&adev->mman.bdev, AMDGPU_PL_GDS,
++ adev->gds.mem.total_size);
++ if (r) {
++ DRM_ERROR("Failed initializing GDS heap.\n");
++ return r;
+ }
+
+- /* GWS */
+- if (adev->gds.gws.total_size) {
+- r = ttm_bo_init_mm(&adev->mman.bdev, AMDGPU_PL_GWS,
+- adev->gds.gws.total_size);
+- if (r) {
+- DRM_ERROR("Failed initializing gws heap.\n");
+- return r;
+- }
++ r = ttm_bo_init_mm(&adev->mman.bdev, AMDGPU_PL_GWS,
++ adev->gds.gws.total_size);
++ if (r) {
++ DRM_ERROR("Failed initializing gws heap.\n");
++ return r;
+ }
+
+- /* OA */
+- if (adev->gds.oa.total_size) {
+- r = ttm_bo_init_mm(&adev->mman.bdev, AMDGPU_PL_OA,
+- adev->gds.oa.total_size);
+- if (r) {
+- DRM_ERROR("Failed initializing oa heap.\n");
+- return r;
+- }
++ r = ttm_bo_init_mm(&adev->mman.bdev, AMDGPU_PL_OA,
++ adev->gds.oa.total_size);
++ if (r) {
++ DRM_ERROR("Failed initializing oa heap.\n");
++ return r;
+ }
+
+ /* Register debugfs entries for amdgpu_ttm */
+@@ -2119,12 +2110,9 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
+ amdgpu_direct_gma_fini(adev);
+ ttm_bo_clean_mm(&adev->mman.bdev, TTM_PL_VRAM);
+ ttm_bo_clean_mm(&adev->mman.bdev, TTM_PL_TT);
+- if (adev->gds.mem.total_size)
+- ttm_bo_clean_mm(&adev->mman.bdev, AMDGPU_PL_GDS);
+- if (adev->gds.gws.total_size)
+- ttm_bo_clean_mm(&adev->mman.bdev, AMDGPU_PL_GWS);
+- if (adev->gds.oa.total_size)
+- ttm_bo_clean_mm(&adev->mman.bdev, AMDGPU_PL_OA);
++ ttm_bo_clean_mm(&adev->mman.bdev, AMDGPU_PL_GDS);
++ ttm_bo_clean_mm(&adev->mman.bdev, AMDGPU_PL_GWS);
++ ttm_bo_clean_mm(&adev->mman.bdev, AMDGPU_PL_OA);
+ ttm_bo_device_release(&adev->mman.bdev);
+ amdgpu_ttm_global_fini(adev);
+ adev->mman.initialized = false;
+--
+2.17.1
+