msm: eva: Added required register dump in case of sys error
Waiting for SYS_ERROR from FW. Change-Id: I3e25e2bdbe2d1464ef70e29298ea69567f07f340 Signed-off-by: Palak Joshi <quic_palakash@quicinc.com>
This commit is contained in:
@@ -3496,29 +3496,11 @@ static int __response_handler(struct iris_hfi_device *device)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (device->intr_status & CVP_FATAL_INTR_BMSK) {
|
if (device->intr_status & CVP_FATAL_INTR_BMSK) {
|
||||||
struct cvp_hfi_sfr_struct *vsfr = (struct cvp_hfi_sfr_struct *)
|
|
||||||
device->sfr.align_virtual_addr;
|
|
||||||
struct msm_cvp_cb_info info = {
|
|
||||||
.response_type = HAL_SYS_WATCHDOG_TIMEOUT,
|
|
||||||
.response.cmd = {
|
|
||||||
.device_id = 0,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (vsfr)
|
|
||||||
dprintk(CVP_ERR, "SFR Message from FW: %s\n",
|
|
||||||
vsfr->rg_data);
|
|
||||||
if (device->intr_status & CVP_WRAPPER_INTR_MASK_CPU_NOC_BMSK)
|
if (device->intr_status & CVP_WRAPPER_INTR_MASK_CPU_NOC_BMSK)
|
||||||
dprintk(CVP_ERR, "Received Xtensa NOC error\n");
|
dprintk(CVP_ERR, "Received Xtensa NOC error\n");
|
||||||
|
|
||||||
if (device->intr_status & CVP_WRAPPER_INTR_MASK_CORE_NOC_BMSK)
|
if (device->intr_status & CVP_WRAPPER_INTR_MASK_CORE_NOC_BMSK)
|
||||||
dprintk(CVP_ERR, "Received CVP core NOC error\n");
|
dprintk(CVP_ERR, "Received CVP core NOC error\n");
|
||||||
|
|
||||||
if (device->intr_status & CVP_WRAPPER_INTR_MASK_A2HWD_BMSK)
|
|
||||||
dprintk(CVP_ERR, "Received CVP watchdog timeout\n");
|
|
||||||
|
|
||||||
packets[packet_count++] = info;
|
|
||||||
goto exit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bleed the msg queue dry of packets */
|
/* Bleed the msg queue dry of packets */
|
||||||
@@ -3594,7 +3576,6 @@ static int __response_handler(struct iris_hfi_device *device)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
|
||||||
__flush_debug_queue(device, raw_packet);
|
__flush_debug_queue(device, raw_packet);
|
||||||
return packet_count;
|
return packet_count;
|
||||||
}
|
}
|
||||||
|
@@ -600,11 +600,11 @@ void handle_sys_error(enum hal_command_response cmd, void *data)
|
|||||||
core, cmd, core->ssr_count);
|
core, cmd, core->ssr_count);
|
||||||
mutex_lock(&core->clk_lock);
|
mutex_lock(&core->clk_lock);
|
||||||
hfi_device = ops_tbl->hfi_device_data;
|
hfi_device = ops_tbl->hfi_device_data;
|
||||||
|
call_hfi_op(ops_tbl, flush_debug_queue, ops_tbl->hfi_device_data);
|
||||||
if (hfi_device->error == CVP_ERR_NOC_ERROR) {
|
if (hfi_device->error == CVP_ERR_NOC_ERROR) {
|
||||||
dprintk(CVP_WARN, "Got NOC error");
|
dprintk(CVP_WARN, "Got NOC error");
|
||||||
msm_cvp_noc_error_info(core);
|
msm_cvp_noc_error_info(core);
|
||||||
}
|
}
|
||||||
call_hfi_op(ops_tbl, flush_debug_queue, ops_tbl->hfi_device_data);
|
|
||||||
list_for_each_entry(inst, &core->instances, list) {
|
list_for_each_entry(inst, &core->instances, list) {
|
||||||
cvp_print_inst(CVP_WARN, inst);
|
cvp_print_inst(CVP_WARN, inst);
|
||||||
if (inst->state != MSM_CVP_CORE_INVALID) {
|
if (inst->state != MSM_CVP_CORE_INVALID) {
|
||||||
|
Reference in New Issue
Block a user