aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3129-drm-amdgpu-add-an-asic-callback-to-determine-the-res.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3129-drm-amdgpu-add-an-asic-callback-to-determine-the-res.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3129-drm-amdgpu-add-an-asic-callback-to-determine-the-res.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3129-drm-amdgpu-add-an-asic-callback-to-determine-the-res.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3129-drm-amdgpu-add-an-asic-callback-to-determine-the-res.patch
new file mode 100644
index 00000000..ccaffd54
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3129-drm-amdgpu-add-an-asic-callback-to-determine-the-res.patch
@@ -0,0 +1,53 @@
+From c160c3bbea6beae78244a8b75e57b9350a04970b Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Tue, 23 Jul 2019 23:27:21 -0500
+Subject: [PATCH 3129/4256] drm/amdgpu: add an asic callback to determine the
+ reset method
+
+Sometimes the driver may have to behave differently depending
+on the method we are using to reset the GPU.
+
+Reviewed-by: Evan Quan <evan.quan@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index fcb92ec6b73d..ba666a4afdfe 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -538,6 +538,14 @@ struct amdgpu_allowed_register_entry {
+ bool grbm_indexed;
+ };
+
++enum amd_reset_method {
++ AMD_RESET_METHOD_LEGACY = 0,
++ AMD_RESET_METHOD_MODE0,
++ AMD_RESET_METHOD_MODE1,
++ AMD_RESET_METHOD_MODE2,
++ AMD_RESET_METHOD_BACO
++};
++
+ /*
+ * ASIC specific functions.
+ */
+@@ -549,6 +557,7 @@ struct amdgpu_asic_funcs {
+ u32 sh_num, u32 reg_offset, u32 *value);
+ void (*set_vga_state)(struct amdgpu_device *adev, bool state);
+ int (*reset)(struct amdgpu_device *adev);
++ enum amd_reset_method (*reset_method)(struct amdgpu_device *adev);
+ /* get the reference clock */
+ u32 (*get_xclk)(struct amdgpu_device *adev);
+ /* MM block clocks */
+@@ -1149,6 +1158,7 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
+ */
+ #define amdgpu_asic_set_vga_state(adev, state) (adev)->asic_funcs->set_vga_state((adev), (state))
+ #define amdgpu_asic_reset(adev) (adev)->asic_funcs->reset((adev))
++#define amdgpu_asic_reset_method(adev) (adev)->asic_funcs->reset_method((adev))
+ #define amdgpu_asic_get_xclk(adev) (adev)->asic_funcs->get_xclk((adev))
+ #define amdgpu_asic_set_uvd_clocks(adev, v, d) (adev)->asic_funcs->set_uvd_clocks((adev), (v), (d))
+ #define amdgpu_asic_set_vce_clocks(adev, ev, ec) (adev)->asic_funcs->set_vce_clocks((adev), (ev), (ec))
+--
+2.17.1
+