#include <linux/firmware.h>
#include <linux/pci.h>
#include <drm/drm_cache.h>
#include "amdgpu.h"
#include "amdgpu_atomfirmware.h"
#include "gmc_v11_0.h"
#include "umc_v8_10.h"
#include "athub/athub_3_0_0_sh_mask.h"
#include "athub/athub_3_0_0_offset.h"
#include "dcn/dcn_3_2_0_offset.h"
#include "dcn/dcn_3_2_0_sh_mask.h"
#include "oss/osssys_6_0_0_offset.h"
#include "ivsrcid/vmc/irqsrcs_vmc_1_0.h"
#include "navi10_enum.h"
#include "soc15.h"
#include "soc15d.h"
#include "soc15_common.h"
#include "nbio_v4_3.h"
#include "gfxhub_v3_0.h"
#include "gfxhub_v3_0_3.h"
#include "gfxhub_v11_5_0.h"
#include "mmhub_v3_0.h"
#include "mmhub_v3_0_1.h"
#include "mmhub_v3_0_2.h"
#include "mmhub_v3_3.h"
#include "athub_v3_0.h"
static int gmc_v11_0_ecc_interrupt_state(struct amdgpu_device *adev,
struct amdgpu_irq_src *src,
unsigned int type,
enum amdgpu_interrupt_state state)
{ … }
static int
gmc_v11_0_vm_fault_interrupt_state(struct amdgpu_device *adev,
struct amdgpu_irq_src *src, unsigned int type,
enum amdgpu_interrupt_state state)
{ … }
static int gmc_v11_0_process_interrupt(struct amdgpu_device *adev,
struct amdgpu_irq_src *source,
struct amdgpu_iv_entry *entry)
{ … }
static const struct amdgpu_irq_src_funcs gmc_v11_0_irq_funcs = …;
static const struct amdgpu_irq_src_funcs gmc_v11_0_ecc_funcs = …;
static void gmc_v11_0_set_irq_funcs(struct amdgpu_device *adev)
{ … }
static bool gmc_v11_0_use_invalidate_semaphore(struct amdgpu_device *adev,
uint32_t vmhub)
{ … }
static bool gmc_v11_0_get_vmid_pasid_mapping_info(
struct amdgpu_device *adev,
uint8_t vmid, uint16_t *p_pasid)
{ … }
static void gmc_v11_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid,
uint32_t vmhub, uint32_t flush_type)
{ … }
static void gmc_v11_0_flush_gpu_tlb_pasid(struct amdgpu_device *adev,
uint16_t pasid, uint32_t flush_type,
bool all_hub, uint32_t inst)
{ … }
static uint64_t gmc_v11_0_emit_flush_gpu_tlb(struct amdgpu_ring *ring,
unsigned int vmid, uint64_t pd_addr)
{ … }
static void gmc_v11_0_emit_pasid_mapping(struct amdgpu_ring *ring, unsigned int vmid,
unsigned int pasid)
{ … }
static uint64_t gmc_v11_0_map_mtype(struct amdgpu_device *adev, uint32_t flags)
{ … }
static void gmc_v11_0_get_vm_pde(struct amdgpu_device *adev, int level,
uint64_t *addr, uint64_t *flags)
{ … }
static void gmc_v11_0_get_vm_pte(struct amdgpu_device *adev,
struct amdgpu_bo_va_mapping *mapping,
uint64_t *flags)
{ … }
static unsigned int gmc_v11_0_get_vbios_fb_size(struct amdgpu_device *adev)
{ … }
static const struct amdgpu_gmc_funcs gmc_v11_0_gmc_funcs = …;
static void gmc_v11_0_set_gmc_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v11_0_set_umc_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v11_0_set_mmhub_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v11_0_set_gfxhub_funcs(struct amdgpu_device *adev)
{ … }
static int gmc_v11_0_early_init(void *handle)
{ … }
static int gmc_v11_0_late_init(void *handle)
{ … }
static void gmc_v11_0_vram_gtt_location(struct amdgpu_device *adev,
struct amdgpu_gmc *mc)
{ … }
static int gmc_v11_0_mc_init(struct amdgpu_device *adev)
{ … }
static int gmc_v11_0_gart_init(struct amdgpu_device *adev)
{ … }
static int gmc_v11_0_sw_init(void *handle)
{ … }
static void gmc_v11_0_gart_fini(struct amdgpu_device *adev)
{ … }
static int gmc_v11_0_sw_fini(void *handle)
{ … }
static void gmc_v11_0_init_golden_registers(struct amdgpu_device *adev)
{ … }
static int gmc_v11_0_gart_enable(struct amdgpu_device *adev)
{ … }
static int gmc_v11_0_hw_init(void *handle)
{ … }
static void gmc_v11_0_gart_disable(struct amdgpu_device *adev)
{ … }
static int gmc_v11_0_hw_fini(void *handle)
{ … }
static int gmc_v11_0_suspend(void *handle)
{ … }
static int gmc_v11_0_resume(void *handle)
{ … }
static bool gmc_v11_0_is_idle(void *handle)
{ … }
static int gmc_v11_0_wait_for_idle(void *handle)
{ … }
static int gmc_v11_0_soft_reset(void *handle)
{ … }
static int gmc_v11_0_set_clockgating_state(void *handle,
enum amd_clockgating_state state)
{ … }
static void gmc_v11_0_get_clockgating_state(void *handle, u64 *flags)
{ … }
static int gmc_v11_0_set_powergating_state(void *handle,
enum amd_powergating_state state)
{ … }
const struct amd_ip_funcs gmc_v11_0_ip_funcs = …;
const struct amdgpu_ip_block_version gmc_v11_0_ip_block = …;