#include <linux/debugfs.h>
#include <linux/firmware.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <drm/drm_device.h>
#include <drm/drm_vblank.h>
#include <drm/radeon_drm.h>
#include "atom.h"
#include "avivod.h"
#include "evergreen.h"
#include "r600.h"
#include "r600d.h"
#include "rv770.h"
#include "radeon.h"
#include "radeon_asic.h"
#include "radeon_audio.h"
#include "radeon_mode.h"
#include "radeon_ucode.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(…) …;
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(…) …;
static const u32 crtc_offsets[2] = …;
static void r600_debugfs_mc_info_init(struct radeon_device *rdev);
int r600_mc_wait_for_idle(struct radeon_device *rdev);
static void r600_gpu_init(struct radeon_device *rdev);
void r600_fini(struct radeon_device *rdev);
void r600_irq_disable(struct radeon_device *rdev);
static void r600_pcie_gen2_enable(struct radeon_device *rdev);
u32 r600_rcu_rreg(struct radeon_device *rdev, u32 reg)
{ … }
void r600_rcu_wreg(struct radeon_device *rdev, u32 reg, u32 v)
{ … }
u32 r600_uvd_ctx_rreg(struct radeon_device *rdev, u32 reg)
{ … }
void r600_uvd_ctx_wreg(struct radeon_device *rdev, u32 reg, u32 v)
{ … }
int r600_get_allowed_info_register(struct radeon_device *rdev,
u32 reg, u32 *val)
{ … }
u32 r600_get_xclk(struct radeon_device *rdev)
{ … }
int r600_set_uvd_clocks(struct radeon_device *rdev, u32 vclk, u32 dclk)
{ … }
void dce3_program_fmt(struct drm_encoder *encoder)
{ … }
int rv6xx_get_temp(struct radeon_device *rdev)
{ … }
void r600_pm_get_dynpm_state(struct radeon_device *rdev)
{ … }
void rs780_pm_init_profile(struct radeon_device *rdev)
{ … }
void r600_pm_init_profile(struct radeon_device *rdev)
{ … }
void r600_pm_misc(struct radeon_device *rdev)
{ … }
bool r600_gui_idle(struct radeon_device *rdev)
{ … }
bool r600_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd)
{ … }
void r600_hpd_set_polarity(struct radeon_device *rdev,
enum radeon_hpd_id hpd)
{ … }
void r600_hpd_init(struct radeon_device *rdev)
{ … }
void r600_hpd_fini(struct radeon_device *rdev)
{ … }
void r600_pcie_gart_tlb_flush(struct radeon_device *rdev)
{ … }
int r600_pcie_gart_init(struct radeon_device *rdev)
{ … }
static int r600_pcie_gart_enable(struct radeon_device *rdev)
{ … }
static void r600_pcie_gart_disable(struct radeon_device *rdev)
{ … }
static void r600_pcie_gart_fini(struct radeon_device *rdev)
{ … }
static void r600_agp_enable(struct radeon_device *rdev)
{ … }
int r600_mc_wait_for_idle(struct radeon_device *rdev)
{ … }
uint32_t rs780_mc_rreg(struct radeon_device *rdev, uint32_t reg)
{ … }
void rs780_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v)
{ … }
static void r600_mc_program(struct radeon_device *rdev)
{ … }
static void r600_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc)
{ … }
static int r600_mc_init(struct radeon_device *rdev)
{ … }
int r600_vram_scratch_init(struct radeon_device *rdev)
{ … }
void r600_vram_scratch_fini(struct radeon_device *rdev)
{ … }
void r600_set_bios_scratch_engine_hung(struct radeon_device *rdev, bool hung)
{ … }
static void r600_print_gpu_status_regs(struct radeon_device *rdev)
{ … }
static bool r600_is_display_hung(struct radeon_device *rdev)
{ … }
u32 r600_gpu_check_soft_reset(struct radeon_device *rdev)
{ … }
static void r600_gpu_soft_reset(struct radeon_device *rdev, u32 reset_mask)
{ … }
static void r600_gpu_pci_config_reset(struct radeon_device *rdev)
{ … }
int r600_asic_reset(struct radeon_device *rdev, bool hard)
{ … }
bool r600_gfx_is_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
{ … }
u32 r6xx_remap_render_backend(struct radeon_device *rdev,
u32 tiling_pipe_num,
u32 max_rb_num,
u32 total_max_rb_num,
u32 disabled_rb_mask)
{ … }
int r600_count_pipe_bits(uint32_t val)
{ … }
static void r600_gpu_init(struct radeon_device *rdev)
{ … }
u32 r600_pciep_rreg(struct radeon_device *rdev, u32 reg)
{ … }
void r600_pciep_wreg(struct radeon_device *rdev, u32 reg, u32 v)
{ … }
void r600_cp_stop(struct radeon_device *rdev)
{ … }
int r600_init_microcode(struct radeon_device *rdev)
{ … }
u32 r600_gfx_get_rptr(struct radeon_device *rdev,
struct radeon_ring *ring)
{ … }
u32 r600_gfx_get_wptr(struct radeon_device *rdev,
struct radeon_ring *ring)
{ … }
void r600_gfx_set_wptr(struct radeon_device *rdev,
struct radeon_ring *ring)
{ … }
static int r600_cp_load_microcode(struct radeon_device *rdev)
{ … }
int r600_cp_start(struct radeon_device *rdev)
{ … }
int r600_cp_resume(struct radeon_device *rdev)
{ … }
void r600_ring_init(struct radeon_device *rdev, struct radeon_ring *ring, unsigned ring_size)
{ … }
void r600_cp_fini(struct radeon_device *rdev)
{ … }
void r600_scratch_init(struct radeon_device *rdev)
{ … }
int r600_ring_test(struct radeon_device *rdev, struct radeon_ring *ring)
{ … }
void r600_fence_ring_emit(struct radeon_device *rdev,
struct radeon_fence *fence)
{ … }
bool r600_semaphore_ring_emit(struct radeon_device *rdev,
struct radeon_ring *ring,
struct radeon_semaphore *semaphore,
bool emit_wait)
{ … }
struct radeon_fence *r600_copy_cpdma(struct radeon_device *rdev,
uint64_t src_offset, uint64_t dst_offset,
unsigned num_gpu_pages,
struct dma_resv *resv)
{ … }
int r600_set_surface_reg(struct radeon_device *rdev, int reg,
uint32_t tiling_flags, uint32_t pitch,
uint32_t offset, uint32_t obj_size)
{ … }
void r600_clear_surface_reg(struct radeon_device *rdev, int reg)
{ … }
static void r600_uvd_init(struct radeon_device *rdev)
{ … }
static void r600_uvd_start(struct radeon_device *rdev)
{ … }
static void r600_uvd_resume(struct radeon_device *rdev)
{ … }
static int r600_startup(struct radeon_device *rdev)
{ … }
void r600_vga_set_state(struct radeon_device *rdev, bool state)
{ … }
int r600_resume(struct radeon_device *rdev)
{ … }
int r600_suspend(struct radeon_device *rdev)
{ … }
int r600_init(struct radeon_device *rdev)
{ … }
void r600_fini(struct radeon_device *rdev)
{ … }
void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
{ … }
int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring)
{ … }
void r600_ih_ring_init(struct radeon_device *rdev, unsigned ring_size)
{ … }
int r600_ih_ring_alloc(struct radeon_device *rdev)
{ … }
void r600_ih_ring_fini(struct radeon_device *rdev)
{ … }
void r600_rlc_stop(struct radeon_device *rdev)
{ … }
static void r600_rlc_start(struct radeon_device *rdev)
{ … }
static int r600_rlc_resume(struct radeon_device *rdev)
{ … }
static void r600_enable_interrupts(struct radeon_device *rdev)
{ … }
void r600_disable_interrupts(struct radeon_device *rdev)
{ … }
static void r600_disable_interrupt_state(struct radeon_device *rdev)
{ … }
int r600_irq_init(struct radeon_device *rdev)
{ … }
void r600_irq_suspend(struct radeon_device *rdev)
{ … }
void r600_irq_fini(struct radeon_device *rdev)
{ … }
int r600_irq_set(struct radeon_device *rdev)
{ … }
static void r600_irq_ack(struct radeon_device *rdev)
{ … }
void r600_irq_disable(struct radeon_device *rdev)
{ … }
static u32 r600_get_ih_wptr(struct radeon_device *rdev)
{ … }
int r600_irq_process(struct radeon_device *rdev)
{ … }
#if defined(CONFIG_DEBUG_FS)
static int r600_debugfs_mc_info_show(struct seq_file *m, void *unused)
{ … }
DEFINE_SHOW_ATTRIBUTE(…);
#endif
static void r600_debugfs_mc_info_init(struct radeon_device *rdev)
{ … }
void r600_mmio_hdp_flush(struct radeon_device *rdev)
{ … }
void r600_set_pcie_lanes(struct radeon_device *rdev, int lanes)
{ … }
int r600_get_pcie_lanes(struct radeon_device *rdev)
{ … }
static void r600_pcie_gen2_enable(struct radeon_device *rdev)
{ … }
uint64_t r600_get_gpu_clock_counter(struct radeon_device *rdev)
{ … }