diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 9d92ca157677..9da14436a373 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -109,6 +109,8 @@  #include "amdgpu_mca.h"  #include "amdgpu_ras.h"  #include "amdgpu_xcp.h" +#include "amdgpu_seq64.h" +#include "amdgpu_reg_state.h"  #define MAX_GPU_INSTANCE		64 @@ -250,6 +252,10 @@ extern int amdgpu_seamless;  extern int amdgpu_user_partt_mode;  extern int amdgpu_agp; +extern int amdgpu_wbrf; + +extern int fw_bo_location; +  #define AMDGPU_VM_MAX_NUM_CTX			4096  #define AMDGPU_SG_THRESHOLD			(256*1024*1024)  #define AMDGPU_WAIT_IDLE_TIMEOUT_IN_MS	        3000 @@ -468,6 +474,7 @@ struct amdgpu_fpriv {  	struct amdgpu_vm	vm;  	struct amdgpu_bo_va	*prt_va;  	struct amdgpu_bo_va	*csa_va; +	struct amdgpu_bo_va	*seq64_va;  	struct mutex		bo_list_lock;  	struct idr		bo_list_handles;  	struct amdgpu_ctx_mgr	ctx_mgr; @@ -506,6 +513,31 @@ struct amdgpu_allowed_register_entry {  	bool grbm_indexed;  }; +/** + * enum amd_reset_method - Methods for resetting AMD GPU devices + * + * @AMD_RESET_METHOD_NONE: The device will not be reset. + * @AMD_RESET_LEGACY: Method reserved for SI, CIK and VI ASICs. + * @AMD_RESET_MODE0: Reset the entire ASIC. Not currently available for the + *                   any device. + * @AMD_RESET_MODE1: Resets all IP blocks on the ASIC (SDMA, GFX, VCN, etc.) + *                   individually. Suitable only for some discrete GPU, not + *                   available for all ASICs. + * @AMD_RESET_MODE2: Resets a lesser level of IPs compared to MODE1. Which IPs + *                   are reset depends on the ASIC. Notably doesn't reset IPs + *                   shared with the CPU on APUs or the memory controllers (so + *                   VRAM is not lost). Not available on all ASICs. + * @AMD_RESET_BACO: BACO (Bus Alive, Chip Off) method powers off and on the card + *                  but without powering off the PCI bus. Suitable only for + *                  discrete GPUs. + * @AMD_RESET_PCI: Does a full bus reset using core Linux subsystem PCI reset + *                 and does a secondary bus reset or FLR, depending on what the + *                 underlying hardware supports. + * + * Methods available for AMD GPU driver for resetting the device. Not all + * methods are suitable for every device. User can override the method using + * module parameter `reset_method`. + */  enum amd_reset_method {  	AMD_RESET_METHOD_NONE = -1,  	AMD_RESET_METHOD_LEGACY = 0, @@ -585,6 +617,10 @@ struct amdgpu_asic_funcs {  				  const struct amdgpu_video_codecs **codecs);  	/* encode "> 32bits" smn addressing */  	u64 (*encode_ext_smn_addressing)(int ext_id); + +	ssize_t (*get_reg_state)(struct amdgpu_device *adev, +				 enum amdgpu_reg_state reg_state, void *buf, +				 size_t max_size);  };  /* @@ -757,6 +793,7 @@ struct amdgpu_mqd_prop {  	uint64_t eop_gpu_addr;  	uint32_t hqd_pipe_priority;  	uint32_t hqd_queue_priority; +	bool allow_tunneling;  	bool hqd_active;  }; @@ -986,6 +1023,9 @@ struct amdgpu_device {  	/* GDS */  	struct amdgpu_gds		gds; +	/* for userq and VM fences */ +	struct amdgpu_seq64		seq64; +  	/* KFD */  	struct amdgpu_kfd_dev		kfd; | 
