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

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

Merge "msm: mdss: update mdp capabilites with pipe status"

parents 31340d72 834d4c9d
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -1571,6 +1571,37 @@ static int mdss_mdp_get_cmdline_config(struct platform_device *pdev)
	return rc;
}

static void __update_sspp_info(struct mdss_mdp_pipe *pipe,
	int pipe_cnt, char *type, char *buf, int *cnt)
{
	int i;
	size_t len = PAGE_SIZE;

#define SPRINT(fmt, ...) \
		(*cnt += scnprintf(buf + *cnt, len - *cnt, fmt, ##__VA_ARGS__))

	for (i = 0; i < pipe_cnt; i++) {
		SPRINT("pipe_num:%d pipe_type:%s pipe_ndx:%d pipe_is_handoff:%d display_id:%d\n",
			pipe->num, type, pipe->ndx, pipe->is_handed_off,
			mdss_mdp_get_display_id(pipe));
		pipe++;
	}
#undef SPRINT
}

static void mdss_mdp_update_sspp_info(struct mdss_data_type *mdata,
	char *buf, int *cnt)
{
	__update_sspp_info(mdata->vig_pipes, mdata->nvig_pipes,
		"vig", buf, cnt);
	__update_sspp_info(mdata->rgb_pipes, mdata->nrgb_pipes,
		"rgb", buf, cnt);
	__update_sspp_info(mdata->dma_pipes, mdata->ndma_pipes,
		"dma", buf, cnt);
	__update_sspp_info(mdata->cursor_pipes, mdata->ncursor_pipes,
		"cursor", buf, cnt);
}

static ssize_t mdss_mdp_show_capabilities(struct device *dev,
		struct device_attribute *attr, char *buf)
{
@@ -1587,6 +1618,9 @@ static ssize_t mdss_mdp_show_capabilities(struct device *dev,

	SPRINT("mdp_version=5\n");
	SPRINT("hw_rev=%d\n", mdata->mdp_rev);
	SPRINT("pipe_count:%d\n", mdata->nvig_pipes + mdata->nrgb_pipes +
		mdata->ndma_pipes + mdata->ncursor_pipes);
	mdss_mdp_update_sspp_info(mdata, buf, &cnt);
	SPRINT("rgb_pipes=%d\n", mdata->nrgb_pipes);
	SPRINT("vig_pipes=%d\n", mdata->nvig_pipes);
	SPRINT("dma_pipes=%d\n", mdata->ndma_pipes);
@@ -1647,6 +1681,7 @@ static ssize_t mdss_mdp_show_capabilities(struct device *dev,
	if (mdata->max_bw_settings_cnt)
		SPRINT(" dynamic_bw_limit");
	SPRINT("\n");
#undef SPRINT

	return cnt;
}
+5 −0
Original line number Diff line number Diff line
@@ -1152,6 +1152,11 @@ static inline bool mdss_mdp_is_lm_swap_needed(struct mdss_data_type *mdata,
	       (mctl->mixer_right->valid_roi);
}

static inline int mdss_mdp_get_display_id(struct mdss_mdp_pipe *pipe)
{
	return (pipe && pipe->mfd) ? pipe->mfd->index : -1;
}

irqreturn_t mdss_mdp_isr(int irq, void *ptr);
void mdss_mdp_irq_clear(struct mdss_data_type *mdata,
		u32 intr_type, u32 intf_num);