#include <linux/completion.h>
#include <linux/circ_buf.h>
#include <linux/list.h>
#include <soc/qcom/cmd-db.h>
#include "a6xx_gmu.h"
#include "a6xx_gmu.xml.h"
#include "a6xx_gpu.h"
#define HFI_MSG_ID(val) …
static const char * const a6xx_hfi_msg_id[] = …;
static int a6xx_hfi_queue_read(struct a6xx_gmu *gmu,
struct a6xx_hfi_queue *queue, u32 *data, u32 dwords)
{ … }
static int a6xx_hfi_queue_write(struct a6xx_gmu *gmu,
struct a6xx_hfi_queue *queue, u32 *data, u32 dwords)
{ … }
static int a6xx_hfi_wait_for_ack(struct a6xx_gmu *gmu, u32 id, u32 seqnum,
u32 *payload, u32 payload_size)
{ … }
static int a6xx_hfi_send_msg(struct a6xx_gmu *gmu, int id,
void *data, u32 size, u32 *payload, u32 payload_size)
{ … }
static int a6xx_hfi_send_gmu_init(struct a6xx_gmu *gmu, int boot_state)
{ … }
static int a6xx_hfi_get_fw_version(struct a6xx_gmu *gmu, u32 *version)
{ … }
static int a6xx_hfi_send_perf_table_v1(struct a6xx_gmu *gmu)
{ … }
static int a6xx_hfi_send_perf_table(struct a6xx_gmu *gmu)
{ … }
static void a618_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void a619_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void a640_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void a650_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void a690_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void a660_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void adreno_7c3_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void a730_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void a740_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static void a6xx_build_bw_table(struct a6xx_hfi_msg_bw_table *msg)
{ … }
static int a6xx_hfi_send_bw_table(struct a6xx_gmu *gmu)
{ … }
static int a6xx_hfi_send_test(struct a6xx_gmu *gmu)
{ … }
static int a6xx_hfi_send_start(struct a6xx_gmu *gmu)
{ … }
static int a6xx_hfi_send_core_fw_start(struct a6xx_gmu *gmu)
{ … }
int a6xx_hfi_set_freq(struct a6xx_gmu *gmu, int index)
{ … }
int a6xx_hfi_send_prep_slumber(struct a6xx_gmu *gmu)
{ … }
static int a6xx_hfi_start_v1(struct a6xx_gmu *gmu, int boot_state)
{ … }
int a6xx_hfi_start(struct a6xx_gmu *gmu, int boot_state)
{ … }
void a6xx_hfi_stop(struct a6xx_gmu *gmu)
{ … }
static void a6xx_hfi_queue_init(struct a6xx_hfi_queue *queue,
struct a6xx_hfi_queue_header *header, void *virt, u64 iova,
u32 id)
{ … }
void a6xx_hfi_init(struct a6xx_gmu *gmu)
{ … }