linux/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 */

#ifndef _A6XX_CRASH_DUMP_H_
#define _A6XX_CRASH_DUMP_H_

#include "a6xx.xml.h"

#define A6XX_NUM_CONTEXTS
#define A6XX_NUM_SHADER_BANKS

static const u32 a6xx_gras_cluster[] =;

static const u32 a6xx_ps_cluster_rac[] =;

static const u32 a6xx_ps_cluster_rbp[] =;

static const u32 a6xx_ps_cluster[] =;

static const u32 a6xx_fe_cluster[] =;

static const u32 a660_fe_cluster[] =;

static const u32 a6xx_pc_vs_cluster[] =;

#define CLUSTER_FE
#define CLUSTER_SP_VS
#define CLUSTER_PC_VS
#define CLUSTER_GRAS
#define CLUSTER_SP_PS
#define CLUSTER_PS
#define CLUSTER_VPC_PS
#define CLUSTER_NONE

#define CLUSTER(_id, _reg, _sel_reg, _sel_val)

static const struct a6xx_cluster {} a6xx_clusters[] =;

static const u32 a6xx_sp_vs_hlsq_cluster[] =;

static const u32 a6xx_sp_vs_sp_cluster[] =;

static const u32 a6xx_hlsq_duplicate_cluster[] =;

static const u32 a6xx_hlsq_2d_duplicate_cluster[] =;

static const u32 a6xx_sp_duplicate_cluster[] =;

static const u32 a6xx_tp_duplicate_cluster[] =;

static const u32 a6xx_sp_ps_hlsq_cluster[] =;

static const u32 a6xx_sp_ps_hlsq_2d_cluster[] =;

static const u32 a6xx_sp_ps_sp_cluster[] =;

static const u32 a6xx_sp_ps_sp_2d_cluster[] =;

static const u32 a6xx_sp_ps_tp_cluster[] =;

static const u32 a6xx_sp_ps_tp_2d_cluster[] =;

#define CLUSTER_DBGAHB(_id, _base, _type, _reg)

static const struct a6xx_dbgahb_cluster {} a6xx_dbgahb_clusters[] =;

static const u32 a6xx_hlsq_registers[] =;

static const u32 a6xx_sp_registers[] =;

static const u32 a6xx_tp_registers[] =;

struct a6xx_registers {};

#define HLSQ_DBG_REGS(_base, _type, _array)

static const struct a6xx_registers a6xx_hlsq_reglist[] =;

#define SHADER(_type, _size)

static const struct a6xx_shader_block {} a6xx_shader_blocks[] =;

static const u32 a6xx_rb_rac_registers[] =;

static const u32 a6xx_rb_rbp_registers[] =;

static const u32 a6xx_registers[] =;

static const u32 a660_registers[] =;

#define REGS(_array, _sel_reg, _sel_val)

static const struct a6xx_registers a6xx_reglist[] =;

static const u32 a6xx_ahb_registers[] =;

static const u32 a6xx_vbif_registers[] =;

static const u32 a6xx_gbif_registers[] =;

static const struct a6xx_registers a6xx_ahb_reglist =;

static const struct a6xx_registers a6xx_vbif_reglist =;

static const struct a6xx_registers a6xx_gbif_reglist =;

static const u32 a6xx_gmu_gx_registers[] =;

static const u32 a6xx_gmu_cx_registers[] =;

static const u32 a6xx_gmu_cx_rscc_registers[] =;

static const struct a6xx_registers a6xx_gmu_reglist[] =;

static u32 a6xx_get_cp_roq_size(struct msm_gpu *gpu);
static u32 a7xx_get_cp_roq_size(struct msm_gpu *gpu);

struct a6xx_indexed_registers {};

static const struct a6xx_indexed_registers a6xx_indexed_reglist[] =;

static const struct a6xx_indexed_registers a7xx_indexed_reglist[] =;

static const struct a6xx_indexed_registers a6xx_cp_mempool_indexed =;

static const struct a6xx_indexed_registers a7xx_cp_bv_mempool_indexed[] =;

#define DEBUGBUS(_id, _count)

static const struct a6xx_debugbus_block {} a6xx_debugbus_blocks[] =;

static const struct a6xx_debugbus_block a6xx_gbif_debugbus_block =;

static const struct a6xx_debugbus_block a6xx_cx_debugbus_blocks[] =;

static const struct a6xx_debugbus_block a650_debugbus_blocks[] =;

static const u32 a7xx_gbif_debugbus_blocks[] =;

static const struct a6xx_debugbus_block a7xx_cx_debugbus_blocks[] =;

#define STATE_NON_CONTEXT
#define STATE_TOGGLE_CTXT
#define STATE_FORCE_CTXT_0
#define STATE_FORCE_CTXT_1

struct gen7_sel_reg {};

struct gen7_cluster_registers {};

struct gen7_sptp_cluster_registers {};

struct gen7_shader_block {};

struct gen7_reg_list {};

/* adreno_gen7_x_y_snapshot.h defines which debugbus blocks a given family has, but the
 * list of debugbus blocks is global on a7xx.
 */

#define A7XX_DEBUGBUS(_id, _count)
static const struct a6xx_debugbus_block a7xx_debugbus_blocks[] =;

#define A7XX_NAME(enumval)
static const char *a7xx_statetype_names[] =;

static const char *a7xx_pipe_names[] =;

static const char *a7xx_cluster_names[] =;

#endif