Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0e6e63d authored by George Shen's avatar George Shen
Browse files

msm: cvp: Print detail NOC error info



It helps debugging CVP NOC error.

Change-Id: I7f7e2b37ff7c404414e483f1ded36d3e521121d1
Signed-off-by: default avatarGeorge Shen <sqiao@codeaurora.org>
parent 2251e53c
Loading
Loading
Loading
Loading
+30 −1
Original line number Diff line number Diff line
@@ -4379,6 +4379,35 @@ static int iris_hfi_get_core_capabilities(void *dev)
static u32 cvp_arp_test_regs[16];
static u32 cvp_dma_test_regs[512];

static const char * const mid_names[16] = {
	"CVP_FW",
	"ARP_DATA",
	"CVP_OD_NON_PIXEL",
	"CVP_OD_ORIG_PIXEL",
	"CVP_OD_WR_PIXEL",
	"CVP_MPU_ORIG_PIXEL",
	"CVP_MPU_REF_PIXEL",
	"CVP_MPU_NON_PIXEL",
	"CVP_MPU_DFS",
	"CVP_FDU_NON_PIXEL",
	"CVP_FDU_PIXEL",
	"CVP_ICA_PIXEL",
	"Invalid",
	"Invalid",
	"Invalid",
	"Invalid"
};

static void __print_reg_details(u32 val)
{
	u32 mid, sid;

	mid = (val >> 5) & 0xF;
	sid = (val >> 2) & 0x7;
	dprintk(CVP_ERR, "CVP_NOC_CORE_ERL_MAIN_ERRLOG3_LOW:     %#x\n", val);
	dprintk(CVP_ERR, "Sub-client:%s, SID: %d\n", mid_names[mid], sid);
}

static void __noc_error_info_iris2(struct iris_hfi_device *device)
{
	u32 val = 0, regi, i;
@@ -4433,7 +4462,7 @@ static void __noc_error_info_iris2(struct iris_hfi_device *device)
	val = __read_register(device, CVP_NOC_CORE_ERR_ERRLOG2_HIGH_OFFS);
	dprintk(CVP_ERR, "CVP_NOC_CORE_ERL_MAIN_ERRLOG2_HIGH:     %#x\n", val);
	val = __read_register(device, CVP_NOC_CORE_ERR_ERRLOG3_LOW_OFFS);
	dprintk(CVP_ERR, "CVP_NOC_CORE_ERL_MAIN_ERRLOG3_LOW:     %#x\n", val);
	__print_reg_details(val);
	val = __read_register(device, CVP_NOC_CORE_ERR_ERRLOG3_HIGH_OFFS);
	dprintk(CVP_ERR, "CVP_NOC_CORE_ERL_MAIN_ERRLOG3_HIGH:     %#x\n", val);
#define CVP_SS_CLK_HALT 0x8