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

Commit cf4fa1d7 authored by Krishna Chaitanya Devarakonda's avatar Krishna Chaitanya Devarakonda
Browse files

msm: mdss: calculate rotator bw based on source fps



If the source FPS for the rotator is set, store it and
use it for calculating BW required by rotator.

Change-Id: I35801528930897447a039c4a4c950048e99d16d9
Signed-off-by: default avatarKrishna Chaitanya Devarakonda <kdevarak@codeaurora.org>
parent 37bc52a5
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -3861,6 +3861,11 @@ static int __to_user_mdp_overlay(struct mdp_overlay32 __user *ov32,
			   sizeof(struct mdp_scale_data));
	if (ret)
		return -EFAULT;

	ret = put_user(ov->frame_rate, &ov32->frame_rate);
	if (ret)
		return -EFAULT;

	return 0;
}

@@ -3917,6 +3922,10 @@ static int __from_user_mdp_overlay(struct mdp_overlay *ov,
			 sizeof(struct mdp_scale_data)))
		return -EFAULT;

	if (get_user(data, &ov32->frame_rate) ||
	    put_user(data, &ov->frame_rate))
		return -EFAULT;

	return 0;
}

+1 −0
Original line number Diff line number Diff line
@@ -479,6 +479,7 @@ struct mdp_overlay32 {
	struct mdp_overlay_pp_params32 overlay_pp_cfg;
	struct mdp_scale_data scale;
	uint8_t color_space;
	uint32_t frame_rate;
};

struct mdp_overlay_list32 {
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@
#define AXI_HALT_TIMEOUT_US	0x4000
#define AUTOSUSPEND_TIMEOUT_MS	200
#define DEFAULT_MDP_PIPE_WIDTH	2048
#define RES_1080p		(1080*1920)
#define RES_1080p		(1088*1920)
#define RES_UHD			(3840*2160)

struct mdss_data_type *mdss_res;
+2 −0
Original line number Diff line number Diff line
@@ -558,6 +558,8 @@ struct mdss_mdp_pipe {
	struct mdp_scale_data scale;
	u8 chroma_sample_h;
	u8 chroma_sample_v;

	u32 frame_rate;
};

struct mdss_mdp_writeback_arg {
+5 −0
Original line number Diff line number Diff line
@@ -572,12 +572,17 @@ static u32 mdss_mdp_get_rotator_fps(struct mdss_mdp_pipe *pipe)
	struct mdss_data_type *mdata = mdss_mdp_get_mdata();
	u32 fps = DEFAULT_FRAME_RATE;

	if (pipe->frame_rate)
		fps = pipe->frame_rate;

	if (mdata->traffic_shaper_en)
		fps = DEFAULT_ROTATOR_FRAME_RATE;

	if (pipe->src.w >= 3840 || pipe->src.h >= 3840)
		fps = ROTATOR_LOW_FRAME_RATE;

	pr_debug("rotator fps:%d\n", fps);

	return fps;
}

Loading