#include <linux/firmware.h>
#include <linux/pci.h>
#include <drm/drm_cache.h>
#include "amdgpu.h"
#include "gmc_v9_0.h"
#include "amdgpu_atomfirmware.h"
#include "amdgpu_gem.h"
#include "gc/gc_9_0_sh_mask.h"
#include "dce/dce_12_0_offset.h"
#include "dce/dce_12_0_sh_mask.h"
#include "vega10_enum.h"
#include "mmhub/mmhub_1_0_offset.h"
#include "athub/athub_1_0_sh_mask.h"
#include "athub/athub_1_0_offset.h"
#include "oss/osssys_4_0_offset.h"
#include "soc15.h"
#include "soc15d.h"
#include "soc15_common.h"
#include "umc/umc_6_0_sh_mask.h"
#include "gfxhub_v1_0.h"
#include "mmhub_v1_0.h"
#include "athub_v1_0.h"
#include "gfxhub_v1_1.h"
#include "gfxhub_v1_2.h"
#include "mmhub_v9_4.h"
#include "mmhub_v1_7.h"
#include "mmhub_v1_8.h"
#include "umc_v6_1.h"
#include "umc_v6_0.h"
#include "umc_v6_7.h"
#include "umc_v12_0.h"
#include "hdp_v4_0.h"
#include "mca_v3_0.h"
#include "ivsrcid/vmc/irqsrcs_vmc_1_0.h"
#include "amdgpu_ras.h"
#include "amdgpu_xgmi.h"
#define mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION …
#define mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION_BASE_IDX …
#define HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION__PRI_VIEWPORT_WIDTH__SHIFT …
#define HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION__PRI_VIEWPORT_HEIGHT__SHIFT …
#define HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION__PRI_VIEWPORT_WIDTH_MASK …
#define HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION__PRI_VIEWPORT_HEIGHT_MASK …
#define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0 …
#define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0_BASE_IDX …
#define mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION_DCN2 …
#define mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION_DCN2_BASE_IDX …
#define MAX_MEM_RANGES …
static const char * const gfxhub_client_ids[] = …;
static const char *mmhub_client_ids_raven[][2] = …;
static const char *mmhub_client_ids_renoir[][2] = …;
static const char *mmhub_client_ids_vega10[][2] = …;
static const char *mmhub_client_ids_vega12[][2] = …;
static const char *mmhub_client_ids_vega20[][2] = …;
static const char *mmhub_client_ids_arcturus[][2] = …;
static const char *mmhub_client_ids_aldebaran[][2] = …;
static const struct soc15_reg_golden golden_settings_mmhub_1_0_0[] = …;
static const struct soc15_reg_golden golden_settings_athub_1_0_0[] = …;
static const uint32_t ecc_umc_mcumc_ctrl_addrs[] = …;
static const uint32_t ecc_umc_mcumc_ctrl_mask_addrs[] = …;
static int gmc_v9_0_ecc_interrupt_state(struct amdgpu_device *adev,
struct amdgpu_irq_src *src,
unsigned int type,
enum amdgpu_interrupt_state state)
{ … }
static int gmc_v9_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_v9_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_v9_0_irq_funcs = …;
static const struct amdgpu_irq_src_funcs gmc_v9_0_ecc_funcs = …;
static void gmc_v9_0_set_irq_funcs(struct amdgpu_device *adev)
{ … }
static uint32_t gmc_v9_0_get_invalidate_req(unsigned int vmid,
uint32_t flush_type)
{ … }
static bool gmc_v9_0_use_invalidate_semaphore(struct amdgpu_device *adev,
uint32_t vmhub)
{ … }
static bool gmc_v9_0_get_atc_vmid_pasid_mapping_info(struct amdgpu_device *adev,
uint8_t vmid, uint16_t *p_pasid)
{ … }
static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid,
uint32_t vmhub, uint32_t flush_type)
{ … }
static void gmc_v9_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_v9_0_emit_flush_gpu_tlb(struct amdgpu_ring *ring,
unsigned int vmid, uint64_t pd_addr)
{ … }
static void gmc_v9_0_emit_pasid_mapping(struct amdgpu_ring *ring, unsigned int vmid,
unsigned int pasid)
{ … }
static uint64_t gmc_v9_0_map_mtype(struct amdgpu_device *adev, uint32_t flags)
{ … }
static void gmc_v9_0_get_vm_pde(struct amdgpu_device *adev, int level,
uint64_t *addr, uint64_t *flags)
{ … }
static void gmc_v9_0_get_coherence_flags(struct amdgpu_device *adev,
struct amdgpu_bo *bo,
struct amdgpu_bo_va_mapping *mapping,
uint64_t *flags)
{ … }
static void gmc_v9_0_get_vm_pte(struct amdgpu_device *adev,
struct amdgpu_bo_va_mapping *mapping,
uint64_t *flags)
{ … }
static void gmc_v9_0_override_vm_pte_flags(struct amdgpu_device *adev,
struct amdgpu_vm *vm,
uint64_t addr, uint64_t *flags)
{ … }
static unsigned int gmc_v9_0_get_vbios_fb_size(struct amdgpu_device *adev)
{ … }
static enum amdgpu_memory_partition
gmc_v9_0_get_memory_partition(struct amdgpu_device *adev, u32 *supp_modes)
{ … }
static enum amdgpu_memory_partition
gmc_v9_0_query_memory_partition(struct amdgpu_device *adev)
{ … }
static const struct amdgpu_gmc_funcs gmc_v9_0_gmc_funcs = …;
static void gmc_v9_0_set_gmc_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v9_0_set_umc_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v9_0_set_mmhub_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v9_0_set_mmhub_ras_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v9_0_set_gfxhub_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v9_0_set_hdp_ras_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v9_0_set_mca_ras_funcs(struct amdgpu_device *adev)
{ … }
static void gmc_v9_0_set_xgmi_ras_funcs(struct amdgpu_device *adev)
{ … }
static int gmc_v9_0_early_init(void *handle)
{ … }
static int gmc_v9_0_late_init(void *handle)
{ … }
static void gmc_v9_0_vram_gtt_location(struct amdgpu_device *adev,
struct amdgpu_gmc *mc)
{ … }
static int gmc_v9_0_mc_init(struct amdgpu_device *adev)
{ … }
static int gmc_v9_0_gart_init(struct amdgpu_device *adev)
{ … }
static void gmc_v9_0_save_registers(struct amdgpu_device *adev)
{ … }
static bool gmc_v9_0_validate_partition_info(struct amdgpu_device *adev)
{ … }
static bool gmc_v9_0_is_node_present(int *node_ids, int num_ids, int nid)
{ … }
static void
gmc_v9_0_init_acpi_mem_ranges(struct amdgpu_device *adev,
struct amdgpu_mem_partition_info *mem_ranges)
{ … }
static void
gmc_v9_0_init_sw_mem_ranges(struct amdgpu_device *adev,
struct amdgpu_mem_partition_info *mem_ranges)
{ … }
static int gmc_v9_0_init_mem_ranges(struct amdgpu_device *adev)
{ … }
static void gmc_v9_4_3_init_vram_info(struct amdgpu_device *adev)
{ … }
static int gmc_v9_0_sw_init(void *handle)
{ … }
static int gmc_v9_0_sw_fini(void *handle)
{ … }
static void gmc_v9_0_init_golden_registers(struct amdgpu_device *adev)
{ … }
void gmc_v9_0_restore_registers(struct amdgpu_device *adev)
{ … }
static int gmc_v9_0_gart_enable(struct amdgpu_device *adev)
{ … }
static int gmc_v9_0_hw_init(void *handle)
{ … }
static void gmc_v9_0_gart_disable(struct amdgpu_device *adev)
{ … }
static int gmc_v9_0_hw_fini(void *handle)
{ … }
static int gmc_v9_0_suspend(void *handle)
{ … }
static int gmc_v9_0_resume(void *handle)
{ … }
static bool gmc_v9_0_is_idle(void *handle)
{ … }
static int gmc_v9_0_wait_for_idle(void *handle)
{ … }
static int gmc_v9_0_soft_reset(void *handle)
{ … }
static int gmc_v9_0_set_clockgating_state(void *handle,
enum amd_clockgating_state state)
{ … }
static void gmc_v9_0_get_clockgating_state(void *handle, u64 *flags)
{ … }
static int gmc_v9_0_set_powergating_state(void *handle,
enum amd_powergating_state state)
{ … }
const struct amd_ip_funcs gmc_v9_0_ip_funcs = …;
const struct amdgpu_ip_block_version gmc_v9_0_ip_block = …;