drm/amdgpu: add need_reset_on_init asic callback (v2)
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 1 Nov 2018 04:54:27 +0000 (23:54 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 14 Jan 2019 20:04:55 +0000 (15:04 -0500)
Used to determine if we need to reset the asic on init due
to the driver having been previously loaded or not shutdown
cleanly.  E.g., kexec or VM passthrough.

v2: rebase

Reviewed-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu.h

index 3b30bb2cdd21cd6ddbb2beaeac6a8432576a5604..88431ea883441754cf2dabeb9c038fb5d17b6393 100644 (file)
@@ -545,6 +545,8 @@ struct amdgpu_asic_funcs {
        /* PCIe bandwidth usage */
        void (*get_pcie_usage)(struct amdgpu_device *adev, uint64_t *count0,
                               uint64_t *count1);
+       /* do we need to reset the asic at init time (e.g., kexec) */
+       bool (*need_reset_on_init)(struct amdgpu_device *adev);
 };
 
 /*
@@ -1046,6 +1048,7 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
 #define amdgpu_asic_need_full_reset(adev) (adev)->asic_funcs->need_full_reset((adev))
 #define amdgpu_asic_init_doorbell_index(adev) (adev)->asic_funcs->init_doorbell_index((adev))
 #define amdgpu_asic_get_pcie_usage(adev, cnt0, cnt1) ((adev)->asic_funcs->get_pcie_usage((adev), (cnt0), (cnt1)))
+#define amdgpu_asic_need_reset_on_init(adev) (adev)->asic_funcs->need_reset_on_init((adev))
 
 /* Common functions */
 bool amdgpu_device_should_recover_gpu(struct amdgpu_device *adev);