diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3356-drm-amdgpu-add-amdgpu_mmhub_funcs-definition.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3356-drm-amdgpu-add-amdgpu_mmhub_funcs-definition.patch | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3356-drm-amdgpu-add-amdgpu_mmhub_funcs-definition.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3356-drm-amdgpu-add-amdgpu_mmhub_funcs-definition.patch new file mode 100644 index 00000000..aae06189 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3356-drm-amdgpu-add-amdgpu_mmhub_funcs-definition.patch @@ -0,0 +1,139 @@ +From 196e13b86631efa51c7aa8cef2a586b1e136b758 Mon Sep 17 00:00:00 2001 +From: Tao Zhou <tao.zhou1@amd.com> +Date: Tue, 6 Aug 2019 20:15:55 +0800 +Subject: [PATCH 3356/4256] drm/amdgpu: add amdgpu_mmhub_funcs definition + +add amdgpu_mmhub_funcs definition and initialize it, +prepare for mmhub ras enablement + +Signed-off-by: Tao Zhou <tao.zhou1@amd.com> +Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ + drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h | 31 +++++++++++++++++++++++ + drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 12 +++++++++ + drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 9 +++++++ + drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.h | 2 ++ + 5 files changed, 56 insertions(+) + create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +index 9ef363f02f8a..1bbe7589af7a 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +@@ -88,6 +88,7 @@ + #include "amdgpu_discovery.h" + #include "amdgpu_mes.h" + #include "amdgpu_umc.h" ++#include "amdgpu_mmhub.h" + + #define MAX_GPU_INSTANCE 16 + +@@ -1016,6 +1017,7 @@ struct amdgpu_device { + + const struct amdgpu_nbio_funcs *nbio_funcs; + const struct amdgpu_df_funcs *df_funcs; ++ const struct amdgpu_mmhub_funcs *mmhub_funcs; + + /* delayed work_func for deferring clockgating during resume */ + struct delayed_work delayed_init_work; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h +new file mode 100644 +index 000000000000..2d75ecfa199b +--- /dev/null ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h +@@ -0,0 +1,31 @@ ++/* ++ * Copyright (C) 2019 Advanced Micro Devices, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included ++ * in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ */ ++#ifndef __AMDGPU_MMHUB_H__ ++#define __AMDGPU_MMHUB_H__ ++ ++struct amdgpu_mmhub_funcs { ++ void (*ras_init)(struct amdgpu_device *adev); ++ void (*query_ras_error_count)(struct amdgpu_device *adev, ++ void *ras_error_status); ++}; ++ ++#endif ++ +diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +index 004ae69c8def..ca9c06b8e02c 100644 +--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +@@ -650,6 +650,17 @@ static void gmc_v9_0_set_umc_funcs(struct amdgpu_device *adev) + } + } + ++static void gmc_v9_0_set_mmhub_funcs(struct amdgpu_device *adev) ++{ ++ switch (adev->asic_type) { ++ case CHIP_VEGA20: ++ adev->mmhub_funcs = &mmhub_v1_0_funcs; ++ break; ++ default: ++ break; ++ } ++} ++ + static int gmc_v9_0_early_init(void *handle) + { + struct amdgpu_device *adev = (struct amdgpu_device *)handle; +@@ -657,6 +668,7 @@ static int gmc_v9_0_early_init(void *handle) + gmc_v9_0_set_gmc_funcs(adev); + gmc_v9_0_set_irq_funcs(adev); + gmc_v9_0_set_umc_funcs(adev); ++ gmc_v9_0_set_mmhub_funcs(adev); + + adev->gmc.shared_aperture_start = 0x2000000000000000ULL; + adev->gmc.shared_aperture_end = +diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c +index da214ca06cee..86b19a3e9b91 100644 +--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c +@@ -553,3 +553,12 @@ void mmhub_v1_0_get_clockgating(struct amdgpu_device *adev, u32 *flags) + if (data & ATC_L2_MISC_CG__MEM_LS_ENABLE_MASK) + *flags |= AMD_CG_SUPPORT_MC_LS; + } ++ ++static void mmhub_v1_0_query_ras_error_count(struct amdgpu_device *adev, ++ void *ras_error_status) ++{ ++} ++ ++const struct amdgpu_mmhub_funcs mmhub_v1_0_funcs = { ++ .query_ras_error_count = mmhub_v1_0_query_ras_error_count, ++}; +diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.h b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.h +index 0de0fdf98c00..c43319e8f945 100644 +--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.h ++++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.h +@@ -23,6 +23,8 @@ + #ifndef __MMHUB_V1_0_H__ + #define __MMHUB_V1_0_H__ + ++extern const struct amdgpu_mmhub_funcs mmhub_v1_0_funcs; ++ + u64 mmhub_v1_0_get_fb_location(struct amdgpu_device *adev); + int mmhub_v1_0_gart_enable(struct amdgpu_device *adev); + void mmhub_v1_0_gart_disable(struct amdgpu_device *adev); +-- +2.17.1 + |