diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3278-drm-amdgpu-psp-use-a-function-pointer-structure.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3278-drm-amdgpu-psp-use-a-function-pointer-structure.patch | 500 |
1 files changed, 500 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3278-drm-amdgpu-psp-use-a-function-pointer-structure.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3278-drm-amdgpu-psp-use-a-function-pointer-structure.patch new file mode 100644 index 00000000..2c39fd9f --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3278-drm-amdgpu-psp-use-a-function-pointer-structure.patch @@ -0,0 +1,500 @@ +From 253325dac5550ba449f82b0f2de18e51400c526a Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Tue, 23 Jan 2018 16:17:24 -0500 +Subject: [PATCH 3278/4131] drm/amdgpu/psp: use a function pointer structure +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This way we can make all of the IP specific functions static, +and we only need a single entry point into the PSP IP modules. + +Reviewed-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 23 +----------- + drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 41 ++++++++++++--------- + drivers/gpu/drm/amd/amdgpu/psp_v10_0.c | 56 +++++++++++++++++++--------- + drivers/gpu/drm/amd/amdgpu/psp_v10_0.h | 20 +--------- + drivers/gpu/drm/amd/amdgpu/psp_v3_1.c | 65 +++++++++++++++++++++++---------- + drivers/gpu/drm/amd/amdgpu/psp_v3_1.h | 24 +----------- + 6 files changed, 113 insertions(+), 116 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +index bec941a..b89873f1 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +@@ -51,29 +51,10 @@ static int psp_sw_init(void *handle) + + switch (adev->asic_type) { + case CHIP_VEGA10: +- psp->init_microcode = psp_v3_1_init_microcode; +- psp->bootloader_load_sysdrv = psp_v3_1_bootloader_load_sysdrv; +- psp->bootloader_load_sos = psp_v3_1_bootloader_load_sos; +- psp->prep_cmd_buf = psp_v3_1_prep_cmd_buf; +- psp->ring_init = psp_v3_1_ring_init; +- psp->ring_create = psp_v3_1_ring_create; +- psp->ring_stop = psp_v3_1_ring_stop; +- psp->ring_destroy = psp_v3_1_ring_destroy; +- psp->cmd_submit = psp_v3_1_cmd_submit; +- psp->compare_sram_data = psp_v3_1_compare_sram_data; +- psp->smu_reload_quirk = psp_v3_1_smu_reload_quirk; +- psp->mode1_reset = psp_v3_1_mode1_reset; ++ psp_v3_1_set_psp_funcs(psp); + break; + case CHIP_RAVEN: +- psp->init_microcode = psp_v10_0_init_microcode; +- psp->prep_cmd_buf = psp_v10_0_prep_cmd_buf; +- psp->ring_init = psp_v10_0_ring_init; +- psp->ring_create = psp_v10_0_ring_create; +- psp->ring_stop = psp_v10_0_ring_stop; +- psp->ring_destroy = psp_v10_0_ring_destroy; +- psp->cmd_submit = psp_v10_0_cmd_submit; +- psp->compare_sram_data = psp_v10_0_compare_sram_data; +- psp->mode1_reset = psp_v10_0_mode1_reset; ++ psp_v10_0_set_psp_funcs(psp); + break; + default: + return -EINVAL; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +index ce465455..cf28abc 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +@@ -33,6 +33,8 @@ + #define PSP_ASD_SHARED_MEM_SIZE 0x4000 + #define PSP_1_MEG 0x100000 + ++struct psp_context; ++ + enum psp_ring_type + { + PSP_RING_TYPE__INVALID = 0, +@@ -53,12 +55,8 @@ struct psp_ring + uint32_t ring_size; + }; + +-struct psp_context ++struct psp_funcs + { +- struct amdgpu_device *adev; +- struct psp_ring km_ring; +- struct psp_gfx_cmd_resp *cmd; +- + int (*init_microcode)(struct psp_context *psp); + int (*bootloader_load_sysdrv)(struct psp_context *psp); + int (*bootloader_load_sos)(struct psp_context *psp); +@@ -77,6 +75,15 @@ struct psp_context + enum AMDGPU_UCODE_ID ucode_type); + bool (*smu_reload_quirk)(struct psp_context *psp); + int (*mode1_reset)(struct psp_context *psp); ++}; ++ ++struct psp_context ++{ ++ struct amdgpu_device *adev; ++ struct psp_ring km_ring; ++ struct psp_gfx_cmd_resp *cmd; ++ ++ const struct psp_funcs *funcs; + + /* fence buffer */ + struct amdgpu_bo *fw_pri_bo; +@@ -123,25 +130,25 @@ struct amdgpu_psp_funcs { + enum AMDGPU_UCODE_ID); + }; + +-#define psp_prep_cmd_buf(ucode, type) (psp)->prep_cmd_buf((ucode), (type)) +-#define psp_ring_init(psp, type) (psp)->ring_init((psp), (type)) +-#define psp_ring_create(psp, type) (psp)->ring_create((psp), (type)) +-#define psp_ring_stop(psp, type) (psp)->ring_stop((psp), (type)) +-#define psp_ring_destroy(psp, type) ((psp)->ring_destroy((psp), (type))) ++#define psp_prep_cmd_buf(ucode, type) (psp)->funcs->prep_cmd_buf((ucode), (type)) ++#define psp_ring_init(psp, type) (psp)->funcs->ring_init((psp), (type)) ++#define psp_ring_create(psp, type) (psp)->funcs->ring_create((psp), (type)) ++#define psp_ring_stop(psp, type) (psp)->funcs->ring_stop((psp), (type)) ++#define psp_ring_destroy(psp, type) ((psp)->funcs->ring_destroy((psp), (type))) + #define psp_cmd_submit(psp, ucode, cmd_mc, fence_mc, index) \ +- (psp)->cmd_submit((psp), (ucode), (cmd_mc), (fence_mc), (index)) ++ (psp)->funcs->cmd_submit((psp), (ucode), (cmd_mc), (fence_mc), (index)) + #define psp_compare_sram_data(psp, ucode, type) \ +- (psp)->compare_sram_data((psp), (ucode), (type)) ++ (psp)->funcs->compare_sram_data((psp), (ucode), (type)) + #define psp_init_microcode(psp) \ +- ((psp)->init_microcode ? (psp)->init_microcode((psp)) : 0) ++ ((psp)->funcs->init_microcode ? (psp)->funcs->init_microcode((psp)) : 0) + #define psp_bootloader_load_sysdrv(psp) \ +- ((psp)->bootloader_load_sysdrv ? (psp)->bootloader_load_sysdrv((psp)) : 0) ++ ((psp)->funcs->bootloader_load_sysdrv ? (psp)->funcs->bootloader_load_sysdrv((psp)) : 0) + #define psp_bootloader_load_sos(psp) \ +- ((psp)->bootloader_load_sos ? (psp)->bootloader_load_sos((psp)) : 0) ++ ((psp)->funcs->bootloader_load_sos ? (psp)->funcs->bootloader_load_sos((psp)) : 0) + #define psp_smu_reload_quirk(psp) \ +- ((psp)->smu_reload_quirk ? (psp)->smu_reload_quirk((psp)) : false) ++ ((psp)->funcs->smu_reload_quirk ? (psp)->funcs->smu_reload_quirk((psp)) : false) + #define psp_mode1_reset(psp) \ +- ((psp)->mode1_reset ? (psp)->mode1_reset((psp)) : false) ++ ((psp)->funcs->mode1_reset ? (psp)->funcs->mode1_reset((psp)) : false) + + extern const struct amd_ip_funcs psp_ip_funcs; + +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c +index 3ccd148..320fb93 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c +@@ -91,7 +91,7 @@ psp_v10_0_get_fw_type(struct amdgpu_firmware_info *ucode, enum psp_gfx_fw_type * + return 0; + } + +-int psp_v10_0_init_microcode(struct psp_context *psp) ++static int psp_v10_0_init_microcode(struct psp_context *psp) + { + struct amdgpu_device *adev = psp->adev; + const char *chip_name; +@@ -137,7 +137,8 @@ int psp_v10_0_init_microcode(struct psp_context *psp) + return err; + } + +-int psp_v10_0_prep_cmd_buf(struct amdgpu_firmware_info *ucode, struct psp_gfx_cmd_resp *cmd) ++static int psp_v10_0_prep_cmd_buf(struct amdgpu_firmware_info *ucode, ++ struct psp_gfx_cmd_resp *cmd) + { + int ret; + uint64_t fw_mem_mc_addr = ucode->mc_addr; +@@ -156,7 +157,8 @@ int psp_v10_0_prep_cmd_buf(struct amdgpu_firmware_info *ucode, struct psp_gfx_cm + return ret; + } + +-int psp_v10_0_ring_init(struct psp_context *psp, enum psp_ring_type ring_type) ++static int psp_v10_0_ring_init(struct psp_context *psp, ++ enum psp_ring_type ring_type) + { + int ret = 0; + struct psp_ring *ring; +@@ -181,7 +183,8 @@ int psp_v10_0_ring_init(struct psp_context *psp, enum psp_ring_type ring_type) + return 0; + } + +-int psp_v10_0_ring_create(struct psp_context *psp, enum psp_ring_type ring_type) ++static int psp_v10_0_ring_create(struct psp_context *psp, ++ enum psp_ring_type ring_type) + { + int ret = 0; + unsigned int psp_ring_reg = 0; +@@ -212,7 +215,8 @@ int psp_v10_0_ring_create(struct psp_context *psp, enum psp_ring_type ring_type) + return ret; + } + +-int psp_v10_0_ring_stop(struct psp_context *psp, enum psp_ring_type ring_type) ++static int psp_v10_0_ring_stop(struct psp_context *psp, ++ enum psp_ring_type ring_type) + { + int ret = 0; + struct psp_ring *ring; +@@ -235,7 +239,8 @@ int psp_v10_0_ring_stop(struct psp_context *psp, enum psp_ring_type ring_type) + return ret; + } + +-int psp_v10_0_ring_destroy(struct psp_context *psp, enum psp_ring_type ring_type) ++static int psp_v10_0_ring_destroy(struct psp_context *psp, ++ enum psp_ring_type ring_type) + { + int ret = 0; + struct psp_ring *ring = &psp->km_ring; +@@ -252,10 +257,10 @@ int psp_v10_0_ring_destroy(struct psp_context *psp, enum psp_ring_type ring_type + return ret; + } + +-int psp_v10_0_cmd_submit(struct psp_context *psp, +- struct amdgpu_firmware_info *ucode, +- uint64_t cmd_buf_mc_addr, uint64_t fence_mc_addr, +- int index) ++static int psp_v10_0_cmd_submit(struct psp_context *psp, ++ struct amdgpu_firmware_info *ucode, ++ uint64_t cmd_buf_mc_addr, uint64_t fence_mc_addr, ++ int index) + { + unsigned int psp_write_ptr_reg = 0; + struct psp_gfx_rb_frame * write_frame = psp->km_ring.ring_mem; +@@ -302,9 +307,9 @@ int psp_v10_0_cmd_submit(struct psp_context *psp, + + static int + psp_v10_0_sram_map(struct amdgpu_device *adev, +- unsigned int *sram_offset, unsigned int *sram_addr_reg_offset, +- unsigned int *sram_data_reg_offset, +- enum AMDGPU_UCODE_ID ucode_id) ++ unsigned int *sram_offset, unsigned int *sram_addr_reg_offset, ++ unsigned int *sram_data_reg_offset, ++ enum AMDGPU_UCODE_ID ucode_id) + { + int ret = 0; + +@@ -387,9 +392,9 @@ psp_v10_0_sram_map(struct amdgpu_device *adev, + return ret; + } + +-bool psp_v10_0_compare_sram_data(struct psp_context *psp, +- struct amdgpu_firmware_info *ucode, +- enum AMDGPU_UCODE_ID ucode_type) ++static bool psp_v10_0_compare_sram_data(struct psp_context *psp, ++ struct amdgpu_firmware_info *ucode, ++ enum AMDGPU_UCODE_ID ucode_type) + { + int err = 0; + unsigned int fw_sram_reg_val = 0; +@@ -423,8 +428,25 @@ bool psp_v10_0_compare_sram_data(struct psp_context *psp, + } + + +-int psp_v10_0_mode1_reset(struct psp_context *psp) ++static int psp_v10_0_mode1_reset(struct psp_context *psp) + { + DRM_INFO("psp mode 1 reset not supported now! \n"); + return -EINVAL; + } ++ ++static const struct psp_funcs psp_v10_0_funcs = { ++ .init_microcode = psp_v10_0_init_microcode, ++ .prep_cmd_buf = psp_v10_0_prep_cmd_buf, ++ .ring_init = psp_v10_0_ring_init, ++ .ring_create = psp_v10_0_ring_create, ++ .ring_stop = psp_v10_0_ring_stop, ++ .ring_destroy = psp_v10_0_ring_destroy, ++ .cmd_submit = psp_v10_0_cmd_submit, ++ .compare_sram_data = psp_v10_0_compare_sram_data, ++ .mode1_reset = psp_v10_0_mode1_reset, ++}; ++ ++void psp_v10_0_set_psp_funcs(struct psp_context *psp) ++{ ++ psp->funcs = &psp_v10_0_funcs; ++} +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.h b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.h +index 451e830..20c2a94 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.h ++++ b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.h +@@ -27,24 +27,6 @@ + + #include "amdgpu_psp.h" + +-extern int psp_v10_0_init_microcode(struct psp_context *psp); +-extern int psp_v10_0_prep_cmd_buf(struct amdgpu_firmware_info *ucode, +- struct psp_gfx_cmd_resp *cmd); +-extern int psp_v10_0_ring_init(struct psp_context *psp, +- enum psp_ring_type ring_type); +-extern int psp_v10_0_ring_create(struct psp_context *psp, +- enum psp_ring_type ring_type); +-extern int psp_v10_0_ring_stop(struct psp_context *psp, +- enum psp_ring_type ring_type); +-extern int psp_v10_0_ring_destroy(struct psp_context *psp, +- enum psp_ring_type ring_type); +-extern int psp_v10_0_cmd_submit(struct psp_context *psp, +- struct amdgpu_firmware_info *ucode, +- uint64_t cmd_buf_mc_addr, uint64_t fence_mc_addr, +- int index); +-extern bool psp_v10_0_compare_sram_data(struct psp_context *psp, +- struct amdgpu_firmware_info *ucode, +- enum AMDGPU_UCODE_ID ucode_type); ++void psp_v10_0_set_psp_funcs(struct psp_context *psp); + +-extern int psp_v10_0_mode1_reset(struct psp_context *psp); + #endif +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c +index 19bd193..690b976 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c ++++ b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c +@@ -93,7 +93,7 @@ psp_v3_1_get_fw_type(struct amdgpu_firmware_info *ucode, enum psp_gfx_fw_type *t + return 0; + } + +-int psp_v3_1_init_microcode(struct psp_context *psp) ++static int psp_v3_1_init_microcode(struct psp_context *psp) + { + struct amdgpu_device *adev = psp->adev; + const char *chip_name; +@@ -161,7 +161,7 @@ int psp_v3_1_init_microcode(struct psp_context *psp) + return err; + } + +-int psp_v3_1_bootloader_load_sysdrv(struct psp_context *psp) ++static int psp_v3_1_bootloader_load_sysdrv(struct psp_context *psp) + { + int ret; + uint32_t psp_gfxdrv_command_reg = 0; +@@ -202,7 +202,7 @@ int psp_v3_1_bootloader_load_sysdrv(struct psp_context *psp) + return ret; + } + +-int psp_v3_1_bootloader_load_sos(struct psp_context *psp) ++static int psp_v3_1_bootloader_load_sos(struct psp_context *psp) + { + int ret; + unsigned int psp_gfxdrv_command_reg = 0; +@@ -243,7 +243,8 @@ int psp_v3_1_bootloader_load_sos(struct psp_context *psp) + return ret; + } + +-int psp_v3_1_prep_cmd_buf(struct amdgpu_firmware_info *ucode, struct psp_gfx_cmd_resp *cmd) ++static int psp_v3_1_prep_cmd_buf(struct amdgpu_firmware_info *ucode, ++ struct psp_gfx_cmd_resp *cmd) + { + int ret; + uint64_t fw_mem_mc_addr = ucode->mc_addr; +@@ -262,7 +263,8 @@ int psp_v3_1_prep_cmd_buf(struct amdgpu_firmware_info *ucode, struct psp_gfx_cmd + return ret; + } + +-int psp_v3_1_ring_init(struct psp_context *psp, enum psp_ring_type ring_type) ++static int psp_v3_1_ring_init(struct psp_context *psp, ++ enum psp_ring_type ring_type) + { + int ret = 0; + struct psp_ring *ring; +@@ -287,7 +289,8 @@ int psp_v3_1_ring_init(struct psp_context *psp, enum psp_ring_type ring_type) + return 0; + } + +-int psp_v3_1_ring_create(struct psp_context *psp, enum psp_ring_type ring_type) ++static int psp_v3_1_ring_create(struct psp_context *psp, ++ enum psp_ring_type ring_type) + { + int ret = 0; + unsigned int psp_ring_reg = 0; +@@ -318,7 +321,8 @@ int psp_v3_1_ring_create(struct psp_context *psp, enum psp_ring_type ring_type) + return ret; + } + +-int psp_v3_1_ring_stop(struct psp_context *psp, enum psp_ring_type ring_type) ++static int psp_v3_1_ring_stop(struct psp_context *psp, ++ enum psp_ring_type ring_type) + { + int ret = 0; + struct psp_ring *ring; +@@ -341,7 +345,8 @@ int psp_v3_1_ring_stop(struct psp_context *psp, enum psp_ring_type ring_type) + return ret; + } + +-int psp_v3_1_ring_destroy(struct psp_context *psp, enum psp_ring_type ring_type) ++static int psp_v3_1_ring_destroy(struct psp_context *psp, ++ enum psp_ring_type ring_type) + { + int ret = 0; + struct psp_ring *ring = &psp->km_ring; +@@ -358,10 +363,10 @@ int psp_v3_1_ring_destroy(struct psp_context *psp, enum psp_ring_type ring_type) + return ret; + } + +-int psp_v3_1_cmd_submit(struct psp_context *psp, +- struct amdgpu_firmware_info *ucode, +- uint64_t cmd_buf_mc_addr, uint64_t fence_mc_addr, +- int index) ++static int psp_v3_1_cmd_submit(struct psp_context *psp, ++ struct amdgpu_firmware_info *ucode, ++ uint64_t cmd_buf_mc_addr, uint64_t fence_mc_addr, ++ int index) + { + unsigned int psp_write_ptr_reg = 0; + struct psp_gfx_rb_frame * write_frame = psp->km_ring.ring_mem; +@@ -410,9 +415,9 @@ int psp_v3_1_cmd_submit(struct psp_context *psp, + + static int + psp_v3_1_sram_map(struct amdgpu_device *adev, +- unsigned int *sram_offset, unsigned int *sram_addr_reg_offset, +- unsigned int *sram_data_reg_offset, +- enum AMDGPU_UCODE_ID ucode_id) ++ unsigned int *sram_offset, unsigned int *sram_addr_reg_offset, ++ unsigned int *sram_data_reg_offset, ++ enum AMDGPU_UCODE_ID ucode_id) + { + int ret = 0; + +@@ -495,9 +500,9 @@ psp_v3_1_sram_map(struct amdgpu_device *adev, + return ret; + } + +-bool psp_v3_1_compare_sram_data(struct psp_context *psp, +- struct amdgpu_firmware_info *ucode, +- enum AMDGPU_UCODE_ID ucode_type) ++static bool psp_v3_1_compare_sram_data(struct psp_context *psp, ++ struct amdgpu_firmware_info *ucode, ++ enum AMDGPU_UCODE_ID ucode_type) + { + int err = 0; + unsigned int fw_sram_reg_val = 0; +@@ -530,7 +535,7 @@ bool psp_v3_1_compare_sram_data(struct psp_context *psp, + return true; + } + +-bool psp_v3_1_smu_reload_quirk(struct psp_context *psp) ++static bool psp_v3_1_smu_reload_quirk(struct psp_context *psp) + { + struct amdgpu_device *adev = psp->adev; + uint32_t reg; +@@ -541,7 +546,7 @@ bool psp_v3_1_smu_reload_quirk(struct psp_context *psp) + return (reg & MP1_FIRMWARE_FLAGS__INTERRUPTS_ENABLED_MASK) ? true : false; + } + +-int psp_v3_1_mode1_reset(struct psp_context *psp) ++static int psp_v3_1_mode1_reset(struct psp_context *psp) + { + int ret; + uint32_t offset; +@@ -574,3 +579,23 @@ int psp_v3_1_mode1_reset(struct psp_context *psp) + + return 0; + } ++ ++static const struct psp_funcs psp_v3_1_funcs = { ++ .init_microcode = psp_v3_1_init_microcode, ++ .bootloader_load_sysdrv = psp_v3_1_bootloader_load_sysdrv, ++ .bootloader_load_sos = psp_v3_1_bootloader_load_sos, ++ .prep_cmd_buf = psp_v3_1_prep_cmd_buf, ++ .ring_init = psp_v3_1_ring_init, ++ .ring_create = psp_v3_1_ring_create, ++ .ring_stop = psp_v3_1_ring_stop, ++ .ring_destroy = psp_v3_1_ring_destroy, ++ .cmd_submit = psp_v3_1_cmd_submit, ++ .compare_sram_data = psp_v3_1_compare_sram_data, ++ .smu_reload_quirk = psp_v3_1_smu_reload_quirk, ++ .mode1_reset = psp_v3_1_mode1_reset, ++}; ++ ++void psp_v3_1_set_psp_funcs(struct psp_context *psp) ++{ ++ psp->funcs = &psp_v3_1_funcs; ++} +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.h b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.h +index b05dbad..e411e31 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.h ++++ b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.h +@@ -32,26 +32,6 @@ enum { PSP_BINARY_ALIGNMENT = 64 }; + enum { PSP_BOOTLOADER_1_MEG_ALIGNMENT = 0x100000 }; + enum { PSP_BOOTLOADER_8_MEM_ALIGNMENT = 0x800000 }; + +-extern int psp_v3_1_init_microcode(struct psp_context *psp); +-extern int psp_v3_1_bootloader_load_sysdrv(struct psp_context *psp); +-extern int psp_v3_1_bootloader_load_sos(struct psp_context *psp); +-extern int psp_v3_1_prep_cmd_buf(struct amdgpu_firmware_info *ucode, +- struct psp_gfx_cmd_resp *cmd); +-extern int psp_v3_1_ring_init(struct psp_context *psp, +- enum psp_ring_type ring_type); +-extern int psp_v3_1_ring_create(struct psp_context *psp, +- enum psp_ring_type ring_type); +-extern int psp_v3_1_ring_stop(struct psp_context *psp, +- enum psp_ring_type ring_type); +-extern int psp_v3_1_ring_destroy(struct psp_context *psp, +- enum psp_ring_type ring_type); +-extern int psp_v3_1_cmd_submit(struct psp_context *psp, +- struct amdgpu_firmware_info *ucode, +- uint64_t cmd_buf_mc_addr, uint64_t fence_mc_addr, +- int index); +-extern bool psp_v3_1_compare_sram_data(struct psp_context *psp, +- struct amdgpu_firmware_info *ucode, +- enum AMDGPU_UCODE_ID ucode_type); +-extern bool psp_v3_1_smu_reload_quirk(struct psp_context *psp); +-extern int psp_v3_1_mode1_reset(struct psp_context *psp); ++void psp_v3_1_set_psp_funcs(struct psp_context *psp); ++ + #endif +-- +2.7.4 + |