#include <linux/firmware.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <drm/radeon_drm.h>
#include "atom.h"
#include "cayman_blit_shaders.h"
#include "clearstate_cayman.h"
#include "evergreen.h"
#include "ni.h"
#include "ni_reg.h"
#include "nid.h"
#include "radeon.h"
#include "radeon_asic.h"
#include "radeon_audio.h"
#include "radeon_ucode.h"
u32 tn_smc_rreg(struct radeon_device *rdev, u32 reg)
{ … }
void tn_smc_wreg(struct radeon_device *rdev, u32 reg, u32 v)
{ … }
static const u32 tn_rlc_save_restore_register_list[] = …;
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(…) …;
static const u32 cayman_golden_registers2[] = …;
static const u32 cayman_golden_registers[] = …;
static const u32 dvst_golden_registers2[] = …;
static const u32 dvst_golden_registers[] = …;
static const u32 scrapper_golden_registers[] = …;
static void ni_init_golden_registers(struct radeon_device *rdev)
{ … }
#define BTC_IO_MC_REGS_SIZE …
static const u32 barts_io_mc_regs[BTC_IO_MC_REGS_SIZE][2] = …;
static const u32 turks_io_mc_regs[BTC_IO_MC_REGS_SIZE][2] = …;
static const u32 caicos_io_mc_regs[BTC_IO_MC_REGS_SIZE][2] = …;
static const u32 cayman_io_mc_regs[BTC_IO_MC_REGS_SIZE][2] = …;
int ni_mc_load_microcode(struct radeon_device *rdev)
{ … }
int ni_init_microcode(struct radeon_device *rdev)
{ … }
int cayman_get_allowed_info_register(struct radeon_device *rdev,
u32 reg, u32 *val)
{ … }
int tn_get_temp(struct radeon_device *rdev)
{ … }
static void cayman_gpu_init(struct radeon_device *rdev)
{ … }
void cayman_pcie_gart_tlb_flush(struct radeon_device *rdev)
{ … }
static int cayman_pcie_gart_enable(struct radeon_device *rdev)
{ … }
static void cayman_pcie_gart_disable(struct radeon_device *rdev)
{ … }
static void cayman_pcie_gart_fini(struct radeon_device *rdev)
{ … }
void cayman_cp_int_cntl_setup(struct radeon_device *rdev,
int ring, u32 cp_int_cntl)
{ … }
void cayman_fence_ring_emit(struct radeon_device *rdev,
struct radeon_fence *fence)
{ … }
void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
{ … }
static void cayman_cp_enable(struct radeon_device *rdev, bool enable)
{ … }
u32 cayman_gfx_get_rptr(struct radeon_device *rdev,
struct radeon_ring *ring)
{ … }
u32 cayman_gfx_get_wptr(struct radeon_device *rdev,
struct radeon_ring *ring)
{ … }
void cayman_gfx_set_wptr(struct radeon_device *rdev,
struct radeon_ring *ring)
{ … }
static int cayman_cp_load_microcode(struct radeon_device *rdev)
{ … }
static int cayman_cp_start(struct radeon_device *rdev)
{ … }
static void cayman_cp_fini(struct radeon_device *rdev)
{ … }
static int cayman_cp_resume(struct radeon_device *rdev)
{ … }
u32 cayman_gpu_check_soft_reset(struct radeon_device *rdev)
{ … }
static void cayman_gpu_soft_reset(struct radeon_device *rdev, u32 reset_mask)
{ … }
int cayman_asic_reset(struct radeon_device *rdev, bool hard)
{ … }
bool cayman_gfx_is_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
{ … }
static void cayman_uvd_init(struct radeon_device *rdev)
{ … }
static void cayman_uvd_start(struct radeon_device *rdev)
{ … }
static void cayman_uvd_resume(struct radeon_device *rdev)
{ … }
static void cayman_vce_init(struct radeon_device *rdev)
{ … }
static void cayman_vce_start(struct radeon_device *rdev)
{ … }
static void cayman_vce_resume(struct radeon_device *rdev)
{ … }
static int cayman_startup(struct radeon_device *rdev)
{ … }
int cayman_resume(struct radeon_device *rdev)
{ … }
int cayman_suspend(struct radeon_device *rdev)
{ … }
int cayman_init(struct radeon_device *rdev)
{ … }
void cayman_fini(struct radeon_device *rdev)
{ … }
int cayman_vm_init(struct radeon_device *rdev)
{ … }
void cayman_vm_fini(struct radeon_device *rdev)
{ … }
void cayman_vm_decode_fault(struct radeon_device *rdev,
u32 status, u32 addr)
{ … }
void cayman_vm_flush(struct radeon_device *rdev, struct radeon_ring *ring,
unsigned vm_id, uint64_t pd_addr)
{ … }
int tn_set_vce_clocks(struct radeon_device *rdev, u32 evclk, u32 ecclk)
{ … }