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

Commit 0aac2e4e authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mdss: mdp: add debugfs node for danger/safe on mdss"

parents 68485b4b cffea744
Loading
Loading
Loading
Loading
+63 −0
Original line number Diff line number Diff line
@@ -1035,6 +1035,65 @@ static int mdss_debugfs_buffers_show(struct seq_file *s, void *v)
}
DEFINE_MDSS_DEBUGFS_SEQ_FOPS(mdss_debugfs_buffers);

static int __danger_safe_signal_status(struct seq_file *s, bool danger_status)
{
	struct mdss_data_type *mdata = (struct mdss_data_type *)s->private;
	u32 status;
	int i, j;

	mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON);
	if (danger_status) {
		seq_puts(s, "\nDanger signal status:\n");
		status = readl_relaxed(mdata->mdp_base +
			MDSS_MDP_DANGER_STATUS);
	} else {
		seq_puts(s, "\nSafe signal status:\n");
		status = readl_relaxed(mdata->mdp_base +
			MDSS_MDP_SAFE_STATUS);
	}
	mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF);

	seq_printf(s, "MDP     :  0x%lx\n",
		DANGER_SAFE_STATUS(status, MDP_DANGER_SAFE_BIT_OFFSET));

	for (i = 0, j = VIG_DANGER_SAFE_BIT_OFFSET; i < mdata->nvig_pipes;
			i++, j += 2)
		seq_printf(s, "VIG%d    :  0x%lx  \t", i,
			DANGER_SAFE_STATUS(status, j));
	seq_puts(s, "\n");

	for (i = 0, j = RGB_DANGER_SAFE_BIT_OFFSET; i < mdata->nrgb_pipes;
			i++, j += 2)
		seq_printf(s, "RGB%d    :  0x%lx  \t", i,
			DANGER_SAFE_STATUS(status, j));
	seq_puts(s, "\n");
	for (i = 0, j = DMA_DANGER_SAFE_BIT_OFFSET; i < mdata->ndma_pipes;
			i++, j += 2)
		seq_printf(s, "DMA%d    :  0x%lx  \t", i,
			DANGER_SAFE_STATUS(status, j));
	seq_puts(s, "\n");

	for (i = 0, j = CURSOR_DANGER_SAFE_BIT_OFFSET; i < mdata->ncursor_pipes;
			i++, j += 2)
		seq_printf(s, "CURSOR%d :  0x%lx  \t", i,
			DANGER_SAFE_STATUS(status, j));
	seq_puts(s, "\n");

	return 0;
}

static int mdss_debugfs_danger_stats_show(struct seq_file *s, void *v)
{
	return __danger_safe_signal_status(s, true);
}
DEFINE_MDSS_DEBUGFS_SEQ_FOPS(mdss_debugfs_danger_stats);

static int mdss_debugfs_safe_stats_show(struct seq_file *s, void *v)
{
	return __danger_safe_signal_status(s, false);
}
DEFINE_MDSS_DEBUGFS_SEQ_FOPS(mdss_debugfs_safe_stats);

static void __stats_ctl_dump(struct mdss_mdp_ctl *ctl, struct seq_file *s)
{
	if (!ctl->ref_cnt)
@@ -1106,6 +1165,10 @@ int mdss_mdp_debugfs_init(struct mdss_data_type *mdata)
			&mdss_debugfs_buffers_fops);
	debugfs_create_file("stat", 0644, mdd->root, mdata,
			&mdss_debugfs_stats_fops);
	debugfs_create_file("danger_stat", 0644, mdd->root, mdata,
			&mdss_debugfs_danger_stats_fops);
	debugfs_create_file("safe_stat", 0644, mdd->root, mdata,
			&mdss_debugfs_safe_stats_fops);
	debugfs_create_bool("serialize_wait4pp", 0644, mdd->root,
		(u32 *)&mdata->serialize_wait4pp);
	debugfs_create_bool("enable_gate", 0644, mdd->root,
+8 −0
Original line number Diff line number Diff line
@@ -21,6 +21,14 @@
#include "mdss.h"
#include "mdss_mdp.h"

#define MDP_DANGER_SAFE_BIT_OFFSET	0
#define VIG_DANGER_SAFE_BIT_OFFSET	4
#define RGB_DANGER_SAFE_BIT_OFFSET	12
#define DMA_DANGER_SAFE_BIT_OFFSET	20
#define CURSOR_DANGER_SAFE_BIT_OFFSET	24

#define DANGER_SAFE_STATUS(X, Y) (((X) & (BIT(Y) | BIT((Y)+1))) >> (Y))

static inline const char *mdss_mdp_pipetype2str(u32 ptype)
{
	static const char const *strings[] = {
+2 −0
Original line number Diff line number Diff line
@@ -51,6 +51,8 @@
#define MDSS_MDP_REG_VIDEO_INTF_UNDERFLOW_CTL		0x002E0
#define MDSS_MDP_REG_SPLIT_DISPLAY_EN			0x002F4
#define MDSS_MDP_REG_SPLIT_DISPLAY_UPPER_PIPE_CTRL	0x002F8
#define MDSS_MDP_DANGER_STATUS				0x00360
#define MDSS_MDP_SAFE_STATUS				0x00364
#define MDSS_MDP_REG_SPLIT_DISPLAY_LOWER_PIPE_CTRL	0x003F0
#define MDSS_MDP_REG_DCE_SEL				0x00450