summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
index 7e94ec11c57e..2d838b1b2b11 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
@@ -31,6 +31,8 @@
#include "ta_ras_if.h"
#include "ta_rap_if.h"
#include "ta_secureDisplay_if.h"
+#include <linux/bitops.h>
+#include "amdgpu_ptl.h"
#define PSP_FENCE_BUFFER_SIZE 0x1000
#define PSP_CMD_BUFFER_SIZE 0x1000
@@ -358,6 +360,29 @@ struct spirom_bo {
};
#endif
+enum psp_ptl_cmd {
+ PSP_PTL_PERF_MON_QUERY = 0xA0000000,
+ PSP_PTL_PERF_MON_SET = 0xA0000001,
+};
+
+enum psp_ptl_format_type {
+ GFX_FTYPE_I8 = 0x00000000,
+ GFX_FTYPE_F16 = 0x00000001,
+ GFX_FTYPE_BF16 = 0x00000002,
+ GFX_FTYPE_F32 = 0x00000003,
+ GFX_FTYPE_F64 = 0x00000004,
+ GFX_FTYPE_F8 = 0x00000005,
+ GFX_FTYPE_VECTOR = 0x00000006,
+ GFX_FTYPE_INVALID = 0xFFFFFFFF,
+};
+
+struct psp_ptl_perf_req {
+ enum psp_ptl_cmd req;
+ uint32_t ptl_state;
+ uint32_t pref_format1;
+ uint32_t pref_format2;
+};
+
struct psp_context {
struct amdgpu_device *adev;
struct psp_ring km_ring;
@@ -448,6 +473,7 @@ struct psp_context {
#if defined(CONFIG_DEBUG_FS)
struct spirom_bo *spirom_dump_trip;
#endif
+ struct amdgpu_ptl ptl;
};
struct amdgpu_psp_funcs {
@@ -612,7 +638,7 @@ int psp_get_fw_attestation_records_addr(struct psp_context *psp,
int psp_update_fw_reservation(struct psp_context *psp);
int psp_load_fw_list(struct psp_context *psp,
struct amdgpu_firmware_info **ucode_list, int ucode_count);
-void psp_copy_fw(struct psp_context *psp, uint8_t *start_addr, uint32_t bin_size);
+int psp_copy_fw(struct psp_context *psp, uint8_t *start_addr, uint32_t bin_size);
int psp_spatial_partition(struct psp_context *psp, int mode);
int psp_memory_partition(struct psp_context *psp, int mode);
@@ -631,5 +657,4 @@ void amdgpu_psp_debugfs_init(struct amdgpu_device *adev);
int amdgpu_psp_get_fw_type(struct amdgpu_firmware_info *ucode,
enum psp_gfx_fw_type *type);
-
#endif