diff options
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.patch | 53 |
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 + |