disp: msm: sde: add support to handle mdp limits property

Add support to handle mdp limits property which
can be used to represent maximum possible limit
for different usecases like sspp linewidth,
bandwidth limit etc. Each child node can be
used to describe each property.

Change-Id: I4b0645201fa29bba1a083e2df4733bec07f0dd96
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
This commit is contained in:
Krishna Manikandan
2019-09-27 16:01:05 +05:30
부모 cc1226edbc
커밋 a4c2827a47
3개의 변경된 파일243개의 추가작업 그리고 0개의 파일을 삭제

파일 보기

@@ -4708,6 +4708,8 @@ static void sde_crtc_install_properties(struct drm_crtc *crtc,
struct drm_device *dev;
struct sde_kms_info *info;
struct sde_kms *sde_kms;
int i, j;
static const struct drm_prop_enum_list e_secure_level[] = {
{SDE_DRM_SEC_NON_SEC, "sec_and_non_sec"},
{SDE_DRM_SEC_ONLY, "sec_only"},
@@ -4925,6 +4927,37 @@ static void sde_crtc_install_properties(struct drm_crtc *crtc,
if (sde_kms->perf.max_core_clk_rate)
sde_kms_info_add_keyint(info, "max_mdp_clk",
sde_kms->perf.max_core_clk_rate);
for (i = 0; i < catalog->limit_count; i++) {
sde_kms_info_add_keyint(info,
catalog->limit_cfg[i].name,
catalog->limit_cfg[i].lmt_case_cnt);
for (j = 0; j < catalog->limit_cfg[i].lmt_case_cnt; j++) {
sde_kms_info_add_keyint(info,
catalog->limit_cfg[i].vector_cfg[j].usecase,
catalog->limit_cfg[i].vector_cfg[j].value);
}
if (!strcmp(catalog->limit_cfg[i].name,
"sspp_linewidth_usecases"))
sde_kms_info_add_keyint(info,
"sspp_linewidth_values",
catalog->limit_cfg[i].lmt_vec_cnt);
else if (!strcmp(catalog->limit_cfg[i].name,
"sde_bwlimit_usecases"))
sde_kms_info_add_keyint(info,
"sde_bwlimit_values",
catalog->limit_cfg[i].lmt_vec_cnt);
for (j = 0; j < catalog->limit_cfg[i].lmt_vec_cnt; j++) {
sde_kms_info_add_keyint(info, "limit_usecase",
catalog->limit_cfg[i].value_cfg[j].use_concur);
sde_kms_info_add_keyint(info, "limit_value",
catalog->limit_cfg[i].value_cfg[j].value);
}
}
sde_kms_info_add_keystr(info, "core_ib_ff",
catalog->perf.core_ib_ff);
sde_kms_info_add_keystr(info, "core_clk_ff",