Loading arch/arm/mach-qcom/board-qm215.c +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> Loading @@ -10,6 +11,7 @@ static const char *qm215_dt_match[] __initconst = { "qcom,qm215", "qcom,qcm2150", NULL }; Loading drivers/media/platform/msm/vidc_3x/msm_vidc_common.c +33 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading drivers/soc/qcom/socinfo.c +7 −0 Original line number Diff line number Diff line Loading @@ -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"}, Loading Loading @@ -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 - ", Loading include/soc/qcom/socinfo.h +4 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -268,6 +271,7 @@ enum msm_cpu { MSM_CPU_QM215, MSM_CPU_8953, MSM_CPU_SDM450, MSM_CPU_QCM2150, }; struct msm_soc_info { Loading Loading
arch/arm/mach-qcom/board-qm215.c +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> Loading @@ -10,6 +11,7 @@ static const char *qm215_dt_match[] __initconst = { "qcom,qm215", "qcom,qcm2150", NULL }; Loading
drivers/media/platform/msm/vidc_3x/msm_vidc_common.c +33 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading
drivers/soc/qcom/socinfo.c +7 −0 Original line number Diff line number Diff line Loading @@ -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"}, Loading Loading @@ -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 - ", Loading
include/soc/qcom/socinfo.h +4 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -268,6 +271,7 @@ enum msm_cpu { MSM_CPU_QM215, MSM_CPU_8953, MSM_CPU_SDM450, MSM_CPU_QCM2150, }; struct msm_soc_info { Loading