msm: eva: Add SSR counter

Support configurable number of SSR tolerance before calling
BUG_ON in SMMU fault scenario.

Change-Id: I19dabbeaa1cf5be86f42a6ace62ef5da12743e79
Signed-off-by: George Shen <sqiao@codeaurora.org>
This commit is contained in:
George Shen
2021-07-21 17:30:08 -07:00
parent 30223d90a7
commit 72eb20af3d
10 changed files with 256 additions and 66 deletions

View File

@@ -358,6 +358,33 @@ static int _dsp_dbg_get(void *data, u64 *val)
DEFINE_DEBUGFS_ATTRIBUTE(dsp_debug_fops, _dsp_dbg_get, _dsp_dbg_set, "%llu\n");
static int _max_ssr_set(void *data, u64 val)
{
struct msm_cvp_core *core;
core = list_first_entry(&cvp_driver->cores, struct msm_cvp_core, list);
if (core) {
if (val < 1) {
dprintk(CVP_WARN,
"Invalid max_ssr_allowed value %llx\n", val);
return 0;
}
core->resources.max_ssr_allowed = (unsigned int)val;
}
return 0;
}
static int _max_ssr_get(void *data, u64 *val)
{
struct msm_cvp_core *core;
core = list_first_entry(&cvp_driver->cores, struct msm_cvp_core, list);
if (core)
*val = core->resources.max_ssr_allowed;
return 0;
}
DEFINE_DEBUGFS_ATTRIBUTE(max_ssr_fops, _max_ssr_get, _max_ssr_set, "%llu\n");
struct dentry *msm_cvp_debugfs_init_core(struct msm_cvp_core *core,
struct dentry *parent)
@@ -397,6 +424,12 @@ struct dentry *msm_cvp_debugfs_init_core(struct msm_cvp_core *core,
goto failed_create_dir;
}
if (!debugfs_create_file("max_ssr_allowed", 0644, dir,
NULL, &max_ssr_fops)) {
dprintk(CVP_ERR, "debugfs_create: max_ssr_allowed fail\n");
goto failed_create_dir;
}
failed_create_dir:
return dir;
}
@@ -512,7 +545,7 @@ struct dentry *msm_cvp_debugfs_init_inst(struct msm_cvp_inst *inst,
dprintk(CVP_ERR, "Invalid params, inst: %pK\n", inst);
goto exit;
}
snprintf(debugfs_name, MAX_DEBUGFS_NAME, "inst_%p", inst);
snprintf(debugfs_name, MAX_DEBUGFS_NAME, "inst_%pK", inst);
idata = kzalloc(sizeof(*idata), GFP_KERNEL);
if (!idata) {