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

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

Merge "drm/msm/sde: Allow selection of panel TE GPIOs to source pingpong blocks"

parents 43a526a7 a02db2c6
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -103,6 +103,8 @@ Optional properties:
- qcom,sde-dsc-size:		A u32 value indicates the address range for each dsc.
- qcom,sde-cdm-size:		A u32 value indicates the address range for each cdm.
- qcom,sde-pp-size:		A u32 value indicates the address range for each pingpong.
- qcom,sde-te-source:		Array of GPIO sources indicating which pingpong TE is
				sourced to which panel TE gpio.
- qcom,sde-wb-size:		A u32 value indicates the address range for each writeback.
- qcom,sde-len:			A u32 entry for SDE address range.
- qcom,sde-intf-max-prefetch-lines:	Array of u32 values for max prefetch lines on
@@ -502,6 +504,7 @@ Example:
    qcom,sde-pp-off = <0x00071000 0x00071800
			  0x00072000 0x00072800>;
    qcom,sde-pp-slave = <0x0 0x0 0x0 0x0>;
    qcom,sde-te-source = <0x0 0x1 0x0 0x0>;
    qcom,sde-cdm-off = <0x0007a200>;
    qcom,sde-dsc-off = <0x00081000 0x00081400>;
    qcom,sde-intf-max-prefetch-lines = <0x15 0x15 0x15 0x15>;
+3 −2
Original line number Diff line number Diff line
@@ -1489,12 +1489,13 @@ static void _sde_encoder_update_vsync_source(struct sde_encoder_virt *sde_enc,

		vsync_cfg.pp_count = sde_enc->num_phys_encs;
		vsync_cfg.frame_rate = mode_info.frame_rate;
		vsync_cfg.vsync_source =
			sde_enc->cur_master->hw_pp->caps->te_source;
		if (is_dummy)
			vsync_cfg.vsync_source = SDE_VSYNC_SOURCE_WD_TIMER_1;
		else if (disp_info->is_te_using_watchdog_timer)
			vsync_cfg.vsync_source = SDE_VSYNC_SOURCE_WD_TIMER_0;
		else
			vsync_cfg.vsync_source = SDE_VSYNC0_SOURCE_GPIO;

		vsync_cfg.is_dummy = is_dummy;

		hw_mdptop->ops.setup_vsync_source(hw_mdptop, &vsync_cfg);
+6 −0
Original line number Diff line number Diff line
@@ -249,6 +249,7 @@ enum {
	DITHER_OFF,
	DITHER_LEN,
	DITHER_VER,
	TE_SOURCE,
	PP_PROP_MAX,
};

@@ -589,6 +590,7 @@ static struct sde_prop_type pp_prop[] = {
	{DITHER_OFF, "qcom,sde-dither-off", false, PROP_TYPE_U32_ARRAY},
	{DITHER_LEN, "qcom,sde-dither-size", false, PROP_TYPE_U32},
	{DITHER_VER, "qcom,sde-dither-version", false, PROP_TYPE_U32},
	{TE_SOURCE, "qcom,sde-te-source", false, PROP_TYPE_U32_ARRAY},
};

static struct sde_prop_type dsc_prop[] = {
@@ -2628,6 +2630,10 @@ static int sde_pp_parse_dt(struct device_node *np, struct sde_mdss_cfg *sde_cfg)
		snprintf(pp->name, SDE_HW_BLK_NAME_LEN, "pingpong_%u",
				pp->id - PINGPONG_0);
		pp->len = PROP_VALUE_ACCESS(prop_value, PP_LEN, 0);
		pp->te_source = PROP_VALUE_ACCESS(prop_value, TE_SOURCE, i);
		if (!prop_exists[TE_SOURCE] ||
			pp->te_source > SDE_VSYNC_SOURCE_WD_TIMER_0)
			pp->te_source = SDE_VSYNC0_SOURCE_GPIO;

		sblk->te.base = PROP_VALUE_ACCESS(prop_value, TE_OFF, i);
		sblk->te.id = SDE_PINGPONG_TE;
+1 −0
Original line number Diff line number Diff line
@@ -653,6 +653,7 @@ struct sde_ds_cfg {
 */
struct sde_pingpong_cfg  {
	SDE_HW_BLK_INFO;
	u32 te_source;
	const struct sde_pingpong_sub_blks *sblk;
};