disp: msm: sde: fix crtc count based on layer mixer
Fix the max crtc count based on the number of real layer mixers available. Usermode can use the crtc count to derive the number of layer mixers. This will be used in usermode to check if a new DP/IWE/WB session can be supported by the HW, based on the existing displays at that point. This will avoid atomic_check validation failures in driver. Change-Id: I63b033604ac549fc01bccef2a9320e0befab5926 Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
此提交包含在:

提交者
Gerrit - the friendly Code Review server

父節點
5d2c1a0801
當前提交
2139b617bf
@@ -2132,7 +2132,7 @@ static int _sde_kms_drm_obj_init(struct sde_kms *sde_kms)
|
||||
|
||||
u32 sspp_id[MAX_PLANES];
|
||||
u32 master_plane_id[MAX_PLANES];
|
||||
u32 num_virt_planes = 0;
|
||||
u32 num_virt_planes = 0, dummy_mixer_count = 0;
|
||||
|
||||
if (!sde_kms || !sde_kms->dev || !sde_kms->dev->dev) {
|
||||
SDE_ERROR("invalid sde_kms\n");
|
||||
@@ -2153,7 +2153,11 @@ static int _sde_kms_drm_obj_init(struct sde_kms *sde_kms)
|
||||
if (!_sde_kms_get_displays(sde_kms))
|
||||
(void)_sde_kms_setup_displays(dev, priv, sde_kms);
|
||||
|
||||
max_crtc_count = min(catalog->mixer_count, priv->num_encoders);
|
||||
for (i = 0; i < catalog->mixer_count; i++)
|
||||
if (catalog->mixer[i].dummy_mixer)
|
||||
dummy_mixer_count++;
|
||||
|
||||
max_crtc_count = catalog->mixer_count - dummy_mixer_count;
|
||||
|
||||
/* Create the planes */
|
||||
for (i = 0; i < catalog->sspp_count; i++) {
|
||||
|
新增問題並參考
封鎖使用者