disp: msm: avoid minidump region addition for mdss register dumps

This change enables minidump for register dumps, debug bus collection
based on CONFIG_QCOM_VA_MINIDUMP config. The minidump driver in 5.4 kernel
needs physical contiguous memory allocation as a requirement. The
minidump collection failure is seen with commit fdf36d7124
("disp: msm: use vzalloc for large allocations") and it uses
vzalloc to address memory allocation failure with order 5. This
patch will disable minidump collection for regdumps, debug bus
to address minidump collection failure.

Change-Id: If5ff91ff95279ee2997765599dbeab16ac2dae60
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
This commit is contained in:
Jayaprakash Madisetty 2022-05-02 22:14:55 +05:30 • committed by Gerrit - the friendly Code Review server
commit 6104617fa0
2 changed files with 10 additions and 4 deletions

View file

@ -999,8 +999,10 @@ static void _sde_dbg_dump_sde_dbg_bus(struct sde_dbg_sde_debug_bus *bus)
bus->cmn.content_size = list_size / sizeof(u32);
}
#ifdef CONFIG_QCOM_VA_MINIDUMP
if (sde_mini_dump_add_region(bus->cmn.name, list_size, *dump_mem) < 0)
pr_err("minidump add %s failed\n", bus->cmn.name);
#endif
dump_addr = *dump_mem;
SDE_DBG_LOG_DUMP_ADDR(bus->cmn.name, dump_addr, list_size, 0);
@ -1047,8 +1049,10 @@ static void _sde_dbg_dump_dsi_dbg_bus(struct sde_dbg_sde_debug_bus *bus)
bus->cmn.content_size = list_size / sizeof(u32);
}
#ifdef CONFIG_QCOM_VA_MINIDUMP
if (sde_mini_dump_add_region(bus->cmn.name, list_size, *dump_mem) < 0)
pr_err("minidump add %s failed\n", bus->cmn.name);
#endif
dump_addr = *dump_mem;
@ -1098,10 +1102,12 @@ static void _sde_dump_array(struct sde_dbg_reg_base *blk_arr[],
pr_err("Failed to allocate memory for reg_dump_addr size:%d\n",
reg_dump_size);
#ifdef CONFIG_QCOM_VA_MINIDUMP
if (dbg_base->reg_dump_addr &&
sde_mini_dump_add_region("reg_dump",
reg_dump_size, dbg_base->reg_dump_addr) < 0)
pr_err("minidump add regdump failed\n");
#endif
if (dump_all)
sde_evtlog_dump_all(sde_dbg_base.evtlog);

View file

@ -220,7 +220,7 @@ struct sde_dbg_evtlog *sde_evtlog_init(void)
{
struct sde_dbg_evtlog *evtlog;
evtlog = vzalloc(sizeof(*evtlog));
evtlog = kzalloc(sizeof(*evtlog), GFP_KERNEL);
if (!evtlog)
return ERR_PTR(-ENOMEM);
@ -240,7 +240,7 @@ struct sde_dbg_reglog *sde_reglog_init(void)
{
struct sde_dbg_reglog *reglog;
reglog = vzalloc(sizeof(*reglog));
reglog = kzalloc(sizeof(*reglog), GFP_KERNEL);
if (!reglog)
return ERR_PTR(-ENOMEM);
@ -351,7 +351,7 @@ void sde_evtlog_destroy(struct sde_dbg_evtlog *evtlog)
list_del(&filter_node->list);
kfree(filter_node);
}
vfree(evtlog);
kfree(evtlog);
}
void sde_reglog_destroy(struct sde_dbg_reglog *reglog)
@ -359,5 +359,5 @@ void sde_reglog_destroy(struct sde_dbg_reglog *reglog)
if (!reglog)
return;
vfree(reglog);
kfree(reglog);
}