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

Commit ee491b93 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: Refactor ping pong split configurations"

parents 2fe5bd6e 472bb7cf
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -446,6 +446,11 @@ Fudge Factors: Fudge factors are used to boost demand for
- qcom,max-pipe-width:		This value specifies the maximum MDP SSPP width
				the device supports. If not specified, a default value
				of 2048 will be applied.
- qcom,mdss-slave-pingpong-off:	Offset address for the extra TE block which needs
				to be programmed when pingpong split feature is enabled.
				Offset is calculated from the "mdp_phys"
				register value. Mandatory when qcom,mdss-has-dst-split
				is enabled.

Optional subnodes:
Child nodes representing the frame buffer virtual devices.
@@ -623,6 +628,7 @@ Example:
		qcom,mdss-intf-off = <0x00021100 0x00021300
					   0x00021500 0x00021700>;
		qcom,mdss-ppb-off = <0x0000420>;
		qcom,mdss-slave-pingpong-off = <0x00073000>

		/* buffer parameters to calculate prefill bandwidth */
		qcom,mdss-prefill-outstanding-buffer-bytes = <1024>;
+2 −0
Original line number Diff line number Diff line
@@ -230,8 +230,10 @@ struct mdss_data_type {
	u32 max_target_zorder;
	u8  ncursor_pipes;
	u32 max_cursor_size;

	u32 nppb;
	struct mdss_mdp_ppb *ppb;
	char __iomem *slave_pingpong_base;

	struct mdss_mdp_mixer *mixer_intf;
	struct mdss_mdp_mixer *mixer_wb;
+13 −1
Original line number Diff line number Diff line
@@ -2624,7 +2624,7 @@ static void mdss_mdp_parse_vbif_qos(struct platform_device *pdev)
static int mdss_mdp_parse_dt_misc(struct platform_device *pdev)
{
	struct mdss_data_type *mdata = platform_get_drvdata(pdev);
	u32 data;
	u32 data, slave_pingpong_off;
	const char *wfd_data;
	int rc;
	struct property *prop = NULL;
@@ -2688,6 +2688,18 @@ static int mdss_mdp_parse_dt_misc(struct platform_device *pdev)
	mdata->has_pingpong_split = of_property_read_bool(pdev->dev.of_node,
		 "qcom,mdss-has-dst-split");

	if (mdata->has_pingpong_split) {
		rc = of_property_read_u32(pdev->dev.of_node,
				"qcom,mdss-slave-pingpong-off",
				&slave_pingpong_off);
		if (rc) {
			pr_err("Error in device tree: slave pingpong offset\n");
			return rc;
		}
		mdata->slave_pingpong_base = mdata->mdss_io.base +
			slave_pingpong_off;
	}

	/*
	 * 2x factor on AB because bus driver will divide by 2
	 * due to 2x ports to BIMC
+4 −0
Original line number Diff line number Diff line
@@ -73,6 +73,9 @@
#define CURSOR_PIPE_LEFT 0
#define CURSOR_PIPE_RIGHT 1

#define MASTER_CTX 0
#define SLAVE_CTX 1

/*
 * Recommendation is to have different ot depending on the fps
 * and resolution, but since current SW doesn't support different
@@ -288,6 +291,7 @@ struct mdss_mdp_ctl {
	struct blocking_notifier_head notifier_head;

	void *priv_data;
	void *intf_ctx[2];
	u32 wb_type;
	bool prg_fet;
};
+6 −0
Original line number Diff line number Diff line
@@ -2269,6 +2269,12 @@ static void mdss_mdp_ctl_split_display_enable(int enable,
				lower |= BIT(4);
			else
				lower |= BIT(8);
			/*
			 * Enable SMART_PANEL_FREE_RUN if ping pong split
			 * is enabled.
			 */
			if (is_pingpong_split(main_ctl->mfd))
				lower |= BIT(2);
			upper = lower;
		} else {
			/* interface controlling sw trigger (video mode) */
Loading