#include <linux/firmware.h>
#include <linux/module.h>
#include <linux/vmalloc.h>
#include <drm/drm_drv.h>
#include "amdgpu.h"
#include "amdgpu_psp.h"
#include "amdgpu_ras.h"
#include "amdgpu_ucode.h"
#include "soc15_common.h"
#include "psp_v11_0.h"
#include "mp/mp_11_0_offset.h"
#include "mp/mp_11_0_sh_mask.h"
#include "gc/gc_9_0_offset.h"
#include "sdma0/sdma0_4_0_offset.h"
#include "nbio/nbio_7_4_offset.h"
#include "oss/osssys_4_0_offset.h"
#include "oss/osssys_4_0_sh_mask.h"
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
#define smnMP1_FIRMWARE_FLAGS …
#define mmRLC_GPM_UCODE_ADDR_NV10 …
#define mmRLC_GPM_UCODE_DATA_NV10 …
#define mmSDMA0_UCODE_ADDR_NV10 …
#define mmSDMA0_UCODE_DATA_NV10 …
#define MEM_TRAIN_SEND_MSG_TIMEOUT_US …
#define USBC_PD_POLLING_LIMIT_S …
#define GFX_CMD_USB_PD_USE_LFB …
static int psp_v11_0_init_microcode(struct psp_context *psp)
{ … }
static int psp_v11_0_wait_for_bootloader(struct psp_context *psp)
{ … }
static bool psp_v11_0_is_sos_alive(struct psp_context *psp)
{ … }
static int psp_v11_0_bootloader_load_component(struct psp_context *psp,
struct psp_bin_desc *bin_desc,
enum psp_bootloader_cmd bl_cmd)
{ … }
static int psp_v11_0_bootloader_load_kdb(struct psp_context *psp)
{ … }
static int psp_v11_0_bootloader_load_spl(struct psp_context *psp)
{ … }
static int psp_v11_0_bootloader_load_sysdrv(struct psp_context *psp)
{ … }
static int psp_v11_0_bootloader_load_sos(struct psp_context *psp)
{ … }
static int psp_v11_0_ring_stop(struct psp_context *psp,
enum psp_ring_type ring_type)
{ … }
static int psp_v11_0_ring_create(struct psp_context *psp,
enum psp_ring_type ring_type)
{ … }
static int psp_v11_0_ring_destroy(struct psp_context *psp,
enum psp_ring_type ring_type)
{ … }
static int psp_v11_0_mode1_reset(struct psp_context *psp)
{ … }
static int psp_v11_0_memory_training_send_msg(struct psp_context *psp, int msg)
{ … }
static int psp_v11_0_memory_training(struct psp_context *psp, uint32_t ops)
{ … }
static uint32_t psp_v11_0_ring_get_wptr(struct psp_context *psp)
{ … }
static void psp_v11_0_ring_set_wptr(struct psp_context *psp, uint32_t value)
{ … }
static int psp_v11_0_load_usbc_pd_fw(struct psp_context *psp, uint64_t fw_pri_mc_addr)
{ … }
static int psp_v11_0_read_usbc_pd_fw(struct psp_context *psp, uint32_t *fw_ver)
{ … }
static const struct psp_funcs psp_v11_0_funcs = …;
void psp_v11_0_set_psp_funcs(struct psp_context *psp)
{ … }