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

Commit 530762b1 authored by Shivendra Kakrania's avatar Shivendra Kakrania
Browse files

msm: vidc: Enable error recovery by default



Error recovery is enabled by default & it will get triggered
for all sys error reported by video firmware.

For debugging purpose it can be disabled as:
    1. disable error recovery for noc error:
       echo 1 > /d/msm_vidc/disable_err_recovery
    2. disable error recovery for non-noc error:
       echo 2 > /d/msm_vidc/disable_err_recovery
    3. disable error recovery for all cases
       echo 3 > /d/msm_vidc/disable_err_recovery

Change-Id: Ie260485842704d3e278ded8c6d1722bc19c80f6f
Signed-off-by: default avatarShivendra Kakrania <shiven@codeaurora.org>
parent cb5bcb74
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2231,8 +2231,12 @@ static void handle_sys_error(enum hal_command_response cmd, void *data)

	/* handle the hw error before core released to get full debug info */
	msm_vidc_handle_hw_error(core);
	if (response->status == VIDC_ERR_NOC_ERROR) {
		d_vpr_e("Got NOC error");
	if ((response->status == VIDC_ERR_NOC_ERROR &&
		(msm_vidc_err_recovery_disable &
			VIDC_DISABLE_NOC_ERR_RECOV)) ||
		(msm_vidc_err_recovery_disable &
			VIDC_DISABLE_NON_NOC_ERR_RECOV)) {
		d_vpr_e("Got unrecoverable video fw error");
		MSM_VIDC_ERROR(true);
	}

+4 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ bool msm_vidc_thermal_mitigation_disabled = !true;
int msm_vidc_clock_voting = !1;
bool msm_vidc_syscache_disable = !true;
bool msm_vidc_cvp_usage = true;
int msm_vidc_err_recovery_disable = !1;

#define MAX_DBG_BUF_SIZE 4096

@@ -239,7 +240,9 @@ struct dentry *msm_vidc_debugfs_init_drv(void)
			&msm_vidc_syscache_disable) &&
	__debugfs_create(bool, "cvp_usage", &msm_vidc_cvp_usage) &&
	__debugfs_create(bool, "lossless_encoding",
			&msm_vidc_lossless_encode);
			&msm_vidc_lossless_encode) &&
	__debugfs_create(u32, "disable_err_recovery",
			&msm_vidc_err_recovery_disable);

#undef __debugfs_create

+6 −0
Original line number Diff line number Diff line
@@ -61,6 +61,11 @@ enum msm_vidc_debugfs_event {
	MSM_VIDC_DEBUGFS_EVENT_FBD,
};

enum vidc_err_recovery_disable {
	VIDC_DISABLE_NOC_ERR_RECOV     = 0x0001,
	VIDC_DISABLE_NON_NOC_ERR_RECOV = 0x0002
};

extern int msm_vidc_debug;
extern int msm_vidc_fw_debug_mode;
extern bool msm_vidc_fw_coverage;
@@ -69,6 +74,7 @@ extern int msm_vidc_clock_voting;
extern bool msm_vidc_syscache_disable;
extern bool msm_vidc_lossless_encode;
extern bool msm_vidc_cvp_usage;
extern int msm_vidc_err_recovery_disable;

struct log_cookie {
	u32 used;