disp: msm: sde: add allowed_dsc_reservation_switch capability

This change adds allowed_dsc_reservation_switch to determine if
dsc seamless switch is supported for DP. Also, based on the
flag, it determines and populates the required number of
available resources for DP.

Change-Id: I9cd7219a50d352369c5bc8386ce7dc25c30b80b6
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
This commit is contained in:
Raviteja Tamatam
2021-05-04 09:37:42 +05:30
committed by Gerrit - the friendly Code Review server
parent b89a3f739a
commit 3789258773
10 changed files with 65 additions and 0 deletions

View File

@@ -5628,6 +5628,10 @@ static void sde_crtc_setup_capabilities_blob(struct sde_kms_info *info,
sde_kms_info_add_keyint(info, "skip_inline_rot_threshold",
catalog->skip_inline_rot_threshold);
if (catalog->allowed_dsc_reservation_switch)
sde_kms_info_add_keyint(info, "allowed_dsc_reservation_switch",
catalog->allowed_dsc_reservation_switch);
if (catalog->uidle_cfg.uidle_rev)
sde_kms_info_add_keyint(info, "has_uidle",
true);
@@ -5816,6 +5820,8 @@ static void sde_crtc_install_properties(struct drm_crtc *crtc,
catalog->demura_count);
}
sde_kms_info_add_keyint(info, "dsc_block_count", catalog->dsc_count);
msm_property_install_blob(&sde_crtc->property_info, "capabilities",
DRM_MODE_PROP_IMMUTABLE, CRTC_PROP_INFO);
@@ -7137,6 +7143,11 @@ struct drm_crtc *sde_crtc_init(struct drm_device *dev, struct drm_plane *plane)
return ERR_PTR(rc);
}
if (kms->catalog->allowed_dsc_reservation_switch && !kms->dsc_switch_support) {
SDE_DEBUG("dsc switch not supported\n");
kms->catalog->allowed_dsc_reservation_switch = 0;
}
/* create CRTC properties */
msm_property_init(&sde_crtc->property_info, &crtc->base, dev,
priv->crtc_property, sde_crtc->property_data,