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

Commit 8a9b7675 authored by Krishna Manikandan's avatar Krishna Manikandan Committed by Gerrit - the friendly Code Review server
Browse files

drm/msm/sde: avoid unnecessary logs while dumping debug information



When recovery is enabled, debug information dumped
can result in rt throttling. Add support to limit
the debug information so that unnecessary logs
can be avoided.

Change-Id: Ia0d6febc86c9ccf4e7ded91295dd02ee448dabba
Signed-off-by: default avatarKrishna Manikandan <mkrishn@codeaurora.org>
parent 01cea546
Loading
Loading
Loading
Loading
+25 −13
Original line number Diff line number Diff line
@@ -3450,7 +3450,7 @@ static void _sde_dump_reg(const char *dump_name, u32 reg_dump_flag,

		if (dump_mem && *dump_mem) {
			dump_addr = *dump_mem;
			dev_info(sde_dbg_base.dev,
			dev_dbg(sde_dbg_base.dev,
				"%s: start_addr:0x%pK len:0x%x reg_offset=0x%lx\n",
				dump_name, dump_addr, len_padded,
				(unsigned long)(addr - base_addr));
@@ -3563,14 +3563,19 @@ static void _sde_dump_reg_by_ranges(struct sde_dbg_reg_base *dbg,
	char *addr;
	size_t len;
	struct sde_dbg_reg_range *range_node;
	bool in_log = false;

	if (!dbg || !(dbg->base || dbg->cb)) {
		pr_err("dbg base is null!\n");
		return;
	}

	dev_info(sde_dbg_base.dev, "%s:=========%s DUMP=========\n", __func__,
			dbg->name);
	in_log = reg_dump_flag & SDE_DBG_DUMP_IN_LOG;

	if (in_log)
		dev_info(sde_dbg_base.dev, "%s:========= %s DUMP=========\n",
			__func__, dbg->name);

	if (dbg->cb) {
		dbg->cb(dbg->cb_ptr);
	/* If there is a list to dump the registers by ranges, use the ranges */
@@ -3598,10 +3603,12 @@ static void _sde_dump_reg_by_ranges(struct sde_dbg_reg_base *dbg,
		}
	} else {
		/* If there is no list to dump ranges, dump all registers */
		if (in_log) {
			dev_info(sde_dbg_base.dev,
				"Ranges not found, will dump full registers\n");
		dev_info(sde_dbg_base.dev, "base:0x%pK len:0x%zx\n", dbg->base,
				dbg->max_offset);
			dev_info(sde_dbg_base.dev, "base:0x%pK len:0x%zx\n",
				dbg->base, dbg->max_offset);
		}
		addr = dbg->base;
		len = dbg->max_offset;
		_sde_dump_reg(dbg->name, reg_dump_flag, dbg->base, addr, len,
@@ -3723,6 +3730,7 @@ static void _sde_dbg_dump_sde_dbg_bus(struct sde_dbg_sde_debug_bus *bus)

		if (*dump_mem) {
			dump_addr = *dump_mem;
			if (in_log)
				dev_info(sde_dbg_base.dev,
					"%s: start_addr:0x%pK len:0x%x\n",
					__func__, dump_addr, list_size);
@@ -3884,6 +3892,7 @@ static void _sde_dbg_dump_vbif_dbg_bus(struct sde_dbg_vbif_debug_bus *bus)

		if (*dump_mem) {
			dump_addr = *dump_mem;
			if (in_log)
				dev_info(sde_dbg_base.dev,
					"%s: start_addr:0x%pK len:0x%x\n",
					__func__, dump_addr, list_size);
@@ -3989,13 +3998,16 @@ static void _sde_dump_array(struct sde_dbg_reg_base *blk_arr[],
		}
	}

	if (sde_dbg_base.enable_reg_dump & SDE_DBG_DUMP_IN_MEM)
		pr_info("=========Captured reg dump in memory=========\n");

	if (dump_dbgbus_sde)
		_sde_dbg_dump_sde_dbg_bus(&sde_dbg_base.dbgbus_sde);

	if (dump_dbgbus_vbif_rt)
		_sde_dbg_dump_vbif_dbg_bus(&sde_dbg_base.dbgbus_vbif_rt);

	if (sde_dbg_base.dsi_dbg_bus || dump_all)
	if (sde_dbg_base.dsi_dbg_bus)
		dsi_ctrl_debug_dump(sde_dbg_base.dbgbus_dsi.entries,
				    sde_dbg_base.dbgbus_dsi.size);