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

Commit d543b62f authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 30a9d3b2 on remote branch

Change-Id: I0dfd66238d3ac994e4234212e10ee88d277a08fc
parents fe3f71bc 30a9d3b2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2018, 2021, The Linux Foundation. All rights reserved.
 * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
 */

#include <linux/kernel.h>
@@ -10,6 +11,7 @@

static const char *qm215_dt_match[] __initconst = {
	"qcom,qm215",
	"qcom,qcm2150",
	NULL
};

+33 −0
Original line number Diff line number Diff line
@@ -5030,7 +5030,37 @@ static int msm_vidc_load_supported(struct msm_vidc_inst *inst)
	}
	return 0;
}
static int msm_vidc_check_mbpf_supported(struct msm_vidc_inst *inst)
{
	u32 mbpf = 0;
	struct msm_vidc_core *core;
	struct msm_vidc_inst *temp;
	struct msm_vidc_capability *capability;

	if (!inst || !inst->core)
		return -EINVAL;

	core = inst->core;
	capability = &inst->capability;
	mutex_lock(&core->lock);
	list_for_each_entry(temp, &core->instances, list) {
		/* ignore invalid and completed session */
		if (temp->state == MSM_VIDC_CORE_INVALID ||
			temp->state >= MSM_VIDC_STOP_DONE)
			continue;
		/* ignore thumbnail session */
		if (is_thumbnail_session(temp))
			continue;
			mbpf += msm_comm_get_mbs_per_frame(inst);
	}
	mutex_unlock(&core->lock);
	if (mbpf > 2*capability->mbs_per_frame.max) {
		msm_vidc_print_running_insts(inst->core);
		return -ENOMEM;
	}

	return 0;
}
int msm_vidc_check_scaling_supported(struct msm_vidc_inst *inst)
{
	u32 x_min, x_max, y_min, y_max;
@@ -5128,6 +5158,9 @@ int msm_vidc_check_session_supported(struct msm_vidc_inst *inst)
			"%s: Hardware is overloaded\n", __func__);
		return rc;
	}
	rc = msm_vidc_check_mbpf_supported(inst);
	if (rc)
		return rc;

	if (!is_thermal_permissible(core)) {
		dprintk(VIDC_WARN,
+7 −0
Original line number Diff line number Diff line
@@ -434,6 +434,9 @@ static struct msm_soc_info cpu_of_id[] = {
	/* QM215 ID */
	[386] = {MSM_CPU_QM215, "QM215"},

	/* QCM2150 ID */
	[436] = {MSM_CPU_QCM2150, "QCM2150"},

	/* 8953 ID */
	[293] = {MSM_CPU_8953, "MSM8953"},
	[304] = {MSM_CPU_8953, "APQ8053"},
@@ -1651,6 +1654,10 @@ static void * __init setup_dummy_socinfo(void)
		dummy_socinfo.id = 386;
		strlcpy(dummy_socinfo.build_id, "qm215 - ",
				sizeof(dummy_socinfo.build_id));
	} else if (early_machine_is_qcm2150()) {
		dummy_socinfo.id = 436;
		strlcpy(dummy_socinfo.build_id, "qcm2150 - ",
				sizeof(dummy_socinfo.build_id));
	} else if (early_machine_is_msm8953()) {
		dummy_socinfo.id = 293;
		strlcpy(dummy_socinfo.build_id, "msm8953 - ",
+4 −0
Original line number Diff line number Diff line
@@ -169,6 +169,8 @@ enum socinfo_parttype {
	of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,msm8953")
#define early_machine_is_sdm450()	\
	of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sdm450")
#define early_machine_is_qcm2150()	\
	of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,qcm2150")
#else
#define of_board_is_sim()		0
#define of_board_is_rumi()		0
@@ -217,6 +219,7 @@ enum socinfo_parttype {
#define early_machine_is_qm215()	0
#define early_machine_is_msm8953()	0
#define early_machine_is_sdm450()	0
#define early_machine_is_qcm2150()	0
#endif

#define PLATFORM_SUBTYPE_MDM	1
@@ -268,6 +271,7 @@ enum msm_cpu {
	MSM_CPU_QM215,
	MSM_CPU_8953,
	MSM_CPU_SDM450,
	MSM_CPU_QCM2150,
};

struct msm_soc_info {