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

Commit 60ac681f authored by Abhijith Desai's avatar Abhijith Desai
Browse files

msm: mdss: Add support to dump mdp and vbif registers



Add support to dump the needed MDP and VBIF registers
along with XLOG dump.

Change-Id: Ia6444473f7a777f5599ca5c207bb742b86ce766d
Signed-off-by: default avatarAbhijith Desai <desaia@codeaurora.org>
parent 8ec8dda6
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -1969,6 +1969,8 @@ static int mdp3_debug_init(struct platform_device *pdev)
	int rc;
	struct mdss_data_type *mdata;
	struct mdss_debug_data *mdd;
	struct mdss_debug_base *mdp_dbg_blk = NULL;
	struct mdss_debug_base *vbif_dbg_blk = NULL;

	mdata = devm_kzalloc(&pdev->dev, sizeof(*mdata), GFP_KERNEL);
	if (!mdata)
@@ -1997,8 +1999,27 @@ static int mdp3_debug_init(struct platform_device *pdev)
	debugfs_create_file("stat", 0644, mdd->root, mdp3_res,
				&mdp3_debug_dump_stats_fops);

	rc = mdss_debug_register_base(NULL, mdp3_res->mdp_base,
					mdp3_res->mdp_reg_size, NULL);
	/* MDP Debug base registration */
	rc = mdss_debug_register_base("mdp", mdp3_res->mdp_base,
					mdp3_res->mdp_reg_size, &mdp_dbg_blk);
	if (rc)
		return rc;

	mdss_debug_register_dump_range(pdev, mdp_dbg_blk, "qcom,regs-dump-mdp",
		"qcom,regs-dump-names-mdp", "qcom,regs-dump-xin-id-mdp");


	/* VBIF Debug base registration */
	if (mdp3_res->vbif_base) {
		rc = mdss_debug_register_base("vbif", mdp3_res->vbif_base,
					mdp3_res->vbif_reg_size, &vbif_dbg_blk);
		if (rc)
			return rc;

		mdss_debug_register_dump_range(pdev, vbif_dbg_blk,
			 "qcom,regs-dump-vbif", "qcom,regs-dump-names-vbif",
						 "qcom,regs-dump-xin-id-vbif");
	}

	return rc;
}
+4 −4
Original line number Diff line number Diff line
@@ -486,8 +486,8 @@ void mdss_dump_reg(const char *dump_name, u32 reg_dump_flag, char *addr,
		}
	}

	if (!from_isr)
		mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON);
	if (!from_isr && mdata->debug_inf.debug_enable_clock)
		mdata->debug_inf.debug_enable_clock(MDP_BLOCK_POWER_ON);

	for (i = 0; i < len; i++) {
		u32 x0, x4, x8, xc;
@@ -511,8 +511,8 @@ void mdss_dump_reg(const char *dump_name, u32 reg_dump_flag, char *addr,
		addr += 16;
	}

	if (!from_isr)
		mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF);
	if (!from_isr && mdata->debug_inf.debug_enable_clock)
		mdata->debug_inf.debug_enable_clock(MDP_BLOCK_POWER_OFF);
}

static void mdss_dump_reg_by_ranges(struct mdss_debug_base *dbg,