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

Commit 17e37233 authored by Lloyd Atkinson's avatar Lloyd Atkinson
Browse files

msm: sde: specify a minimum rotator clock rate



Specify a 20MHz minimum clock rate for the sde rotator. The
rotator minimum clock must be greater than the VSYNC clock rate
of 19.2MHz. Specifying 20MHz will cause the system to select the
next available acceptable rate.

Change-Id: I79b7f01e31d787bfce9364262c1a3a73a42853fb
Signed-off-by: default avatarLloyd Atkinson <latkinso@codeaurora.org>
parent d41da87e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -71,6 +71,9 @@
#define ROT_OVERHEAD_NUMERATOR		27
#define ROT_OVERHEAD_DENOMINATOR	10000

/* Minimum Rotator Clock value */
#define ROT_MIN_ROT_CLK			20000000

/* default minimum bandwidth vote */
#define ROT_ENABLE_BW_VOTE		64000
/*
@@ -1377,6 +1380,9 @@ static int sde_rotator_calc_perf(struct sde_rot_mgr *mgr,
	if (rot_dev->min_rot_clk > perf->clk_rate)
		perf->clk_rate = rot_dev->min_rot_clk;

	if (mgr->min_rot_clk > perf->clk_rate)
		perf->clk_rate = mgr->min_rot_clk;

	read_bw =  sde_rotator_calc_buf_bw(in_fmt, config->input.width,
				config->input.height, max_fps);

@@ -3081,6 +3087,7 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr,
		IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version,
			SDE_MDP_HW_REV_400)) {
		mgr->ops_hw_init = sde_rotator_r3_init;
		mgr->min_rot_clk = ROT_MIN_ROT_CLK;
	} else {
		ret = -ENODEV;
		SDEROT_ERR("unsupported sde version %x\n",
+2 −0
Original line number Diff line number Diff line
@@ -396,6 +396,7 @@ struct sde_rot_bus_data_type {
 * @pixel_per_clk: rotator hardware performance in pixel for clock
 * @fudge_factor: fudge factor for clock calculation
 * @overhead: software overhead for offline rotation in msec
 * @min_rot_clk: minimum rotator clock rate
 * @sbuf_ctx: pointer to sbuf session context
 * @ops_xxx: function pointers of rotator HAL layer
 * @hw_data: private handle of rotator HAL layer
@@ -443,6 +444,7 @@ struct sde_rot_mgr {
	struct sde_mult_factor pixel_per_clk;
	struct sde_mult_factor fudge_factor;
	struct sde_mult_factor overhead;
	unsigned long min_rot_clk;

	struct sde_rot_file_private *sbuf_ctx;