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

Commit 4f4d53c5 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: Enable pp-split support for display driver" into dev/msm-4.14-display

parents 94943474 b8acf5e4
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -908,6 +908,10 @@ void sde_encoder_helper_split_config(
	else
		cfg->pp_split_slave = INTF_MAX;

	if (topology == SDE_RM_TOPOLOGY_PPSPLIT
			&& phys_enc->split_role == ENC_ROLE_SLAVE)
		cfg->pp_slave_intf = true;

	if (phys_enc->split_role == ENC_ROLE_MASTER) {
		SDE_DEBUG_ENC(sde_enc, "enable %d\n", cfg->en);

+2 −12
Original line number Diff line number Diff line
@@ -1127,8 +1127,8 @@ static void _sde_encoder_phys_cmd_pingpong_config(
			phys_enc->hw_pp->idx - PINGPONG_0);
	drm_mode_debug_printmodeline(&phys_enc->cached_mode);

	if (!_sde_encoder_phys_is_ppsplit_slave(phys_enc))
	_sde_encoder_phys_cmd_update_intf_cfg(phys_enc);

	sde_encoder_phys_cmd_tearcheck_config(phys_enc);
}

@@ -1144,18 +1144,8 @@ static void sde_encoder_phys_cmd_enable_helper(

	_sde_encoder_phys_cmd_pingpong_config(phys_enc);

	/*
	 * For pp-split, skip setting the flush bit for the slave intf, since
	 * both intfs use same ctl and HW will only flush the master.
	 */
	if (_sde_encoder_phys_is_ppsplit(phys_enc) &&
		!sde_encoder_phys_cmd_is_master(phys_enc))
		goto skip_flush;

	_sde_encoder_phys_cmd_update_flush_mask(phys_enc);

skip_flush:
	return;
}

static void sde_encoder_phys_cmd_enable(struct sde_encoder_phys *phys_enc)
+4 −1
Original line number Diff line number Diff line
/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -402,6 +402,9 @@ static void sde_hw_intf_bind_pingpong_blk(
	if (intf->cfg.split_link_en)
		mux_cfg = 0x60000;

	if (intf->cfg.pp_slave_intf)
		mux_cfg = 0x6;

	SDE_REG_WRITE(c, INTF_MUX, mux_cfg);
}

+2 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ struct traffic_shaper_cfg {
 * @split_flush_en: Allows both the paths to be flushed when master path is
 *              flushed
 * @split_link_en:  Check if split link is enabled
 * @pp_slave_intf: Check if this is pp slave interface
 */
struct split_pipe_cfg {
	bool en;
@@ -55,6 +56,7 @@ struct split_pipe_cfg {
	u32 pp_split_index;
	bool split_flush_en;
	bool split_link_en;
	bool pp_slave_intf;
};

/**