#include <linux/firmware.h>
#include "amdgpu.h"
#include "amdgpu_uvd.h"
#include "cikd.h"
#include "uvd/uvd_4_2_d.h"
#include "uvd/uvd_4_2_sh_mask.h"
#include "oss/oss_2_0_d.h"
#include "oss/oss_2_0_sh_mask.h"
#include "bif/bif_4_1_d.h"
#include "smu/smu_7_0_1_d.h"
#include "smu/smu_7_0_1_sh_mask.h"
static void uvd_v4_2_mc_resume(struct amdgpu_device *adev);
static void uvd_v4_2_set_ring_funcs(struct amdgpu_device *adev);
static void uvd_v4_2_set_irq_funcs(struct amdgpu_device *adev);
static int uvd_v4_2_start(struct amdgpu_device *adev);
static void uvd_v4_2_stop(struct amdgpu_device *adev);
static int uvd_v4_2_set_clockgating_state(void *handle,
enum amd_clockgating_state state);
static void uvd_v4_2_set_dcm(struct amdgpu_device *adev,
bool sw_mode);
static uint64_t uvd_v4_2_ring_get_rptr(struct amdgpu_ring *ring)
{ … }
static uint64_t uvd_v4_2_ring_get_wptr(struct amdgpu_ring *ring)
{ … }
static void uvd_v4_2_ring_set_wptr(struct amdgpu_ring *ring)
{ … }
static int uvd_v4_2_early_init(void *handle)
{ … }
static int uvd_v4_2_sw_init(void *handle)
{ … }
static int uvd_v4_2_sw_fini(void *handle)
{ … }
static void uvd_v4_2_enable_mgcg(struct amdgpu_device *adev,
bool enable);
static int uvd_v4_2_hw_init(void *handle)
{ … }
static int uvd_v4_2_hw_fini(void *handle)
{ … }
static int uvd_v4_2_prepare_suspend(void *handle)
{ … }
static int uvd_v4_2_suspend(void *handle)
{ … }
static int uvd_v4_2_resume(void *handle)
{ … }
static int uvd_v4_2_start(struct amdgpu_device *adev)
{ … }
static void uvd_v4_2_stop(struct amdgpu_device *adev)
{ … }
static void uvd_v4_2_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq,
unsigned flags)
{ … }
static int uvd_v4_2_ring_test_ring(struct amdgpu_ring *ring)
{ … }
static void uvd_v4_2_ring_emit_ib(struct amdgpu_ring *ring,
struct amdgpu_job *job,
struct amdgpu_ib *ib,
uint32_t flags)
{ … }
static void uvd_v4_2_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count)
{ … }
static void uvd_v4_2_mc_resume(struct amdgpu_device *adev)
{ … }
static void uvd_v4_2_enable_mgcg(struct amdgpu_device *adev,
bool enable)
{ … }
static void uvd_v4_2_set_dcm(struct amdgpu_device *adev,
bool sw_mode)
{ … }
static bool uvd_v4_2_is_idle(void *handle)
{ … }
static int uvd_v4_2_wait_for_idle(void *handle)
{ … }
static int uvd_v4_2_soft_reset(void *handle)
{ … }
static int uvd_v4_2_set_interrupt_state(struct amdgpu_device *adev,
struct amdgpu_irq_src *source,
unsigned type,
enum amdgpu_interrupt_state state)
{ … }
static int uvd_v4_2_process_interrupt(struct amdgpu_device *adev,
struct amdgpu_irq_src *source,
struct amdgpu_iv_entry *entry)
{ … }
static int uvd_v4_2_set_clockgating_state(void *handle,
enum amd_clockgating_state state)
{ … }
static int uvd_v4_2_set_powergating_state(void *handle,
enum amd_powergating_state state)
{ … }
static const struct amd_ip_funcs uvd_v4_2_ip_funcs = …;
static const struct amdgpu_ring_funcs uvd_v4_2_ring_funcs = …;
static void uvd_v4_2_set_ring_funcs(struct amdgpu_device *adev)
{ … }
static const struct amdgpu_irq_src_funcs uvd_v4_2_irq_funcs = …;
static void uvd_v4_2_set_irq_funcs(struct amdgpu_device *adev)
{ … }
const struct amdgpu_ip_block_version uvd_v4_2_ip_block = …;