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

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

Merge "msm: vidc: Enable dual core in LP for higher resolutions"

parents ca244e05 514f777b
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -23,8 +23,8 @@
#define MSM_VIDC_MIN_UBWC_COMPRESSION_RATIO (1 << 16)
#define MSM_VIDC_MAX_UBWC_COMPRESSION_RATIO (5 << 16)

#define MAX_WIDTH_VALUE 7680
#define MAX_HEIGHT_VALUE 3840
#define MAX_WIDTH_VALUE 5760
#define MAX_HEIGHT_VALUE 2880

static inline void msm_dcvs_print_dcvs_stats(struct clock_data *dcvs)
{
@@ -1294,16 +1294,19 @@ int msm_vidc_decide_core_and_power_mode(struct msm_vidc_inst *inst)
	hier_mode |= msm_comm_g_ctrl_for_id(inst,
		V4L2_CID_MPEG_VIDC_VIDEO_HYBRID_HIERP_MODE);

	/* For higher resolutions enable dual core in low power. */
	if (inst->session_type == MSM_VIDC_ENCODER &&
		((inst->prop.width[CAPTURE_PORT] *
		inst->prop.height[CAPTURE_PORT]) >=
		(MAX_WIDTH_VALUE * MAX_HEIGHT_VALUE)) &&
		(inst->capability.max_video_cores.max >= VIDC_CORE_ID_3)) {
		if (current_inst_load / 2 + core0_load <= max_freq &&
			current_inst_load / 2 + core1_load <= max_freq) {
		inst->capability.max_video_cores.max >= VIDC_CORE_ID_3) {
		if (current_inst_lp_load / 2 +
				core0_lp_load <= max_freq &&
			current_inst_lp_load / 2 +
				core1_lp_load <= max_freq) {
			if (inst->clk_data.work_mode == VIDC_WORK_MODE_2) {
				inst->clk_data.core_id = VIDC_CORE_ID_3;
				msm_vidc_power_save_mode_enable(inst, false);
				msm_vidc_power_save_mode_enable(inst, true);
				goto decision_done;
			}
		}