disp: msm: sde: detach dsc/vdc encoder blocks properly during modeswitch
In the current code if there is a switch from DSC to non-DSC mode, all the DSC blocks attached to the sde_encoder are not cleaned up properly. Due to this, during virt disable these DSC blocks are disabled and flushed resulting in underruns on other ctl paths which might be using them. This change properly cleans up all the dsc/vdc attached to the sde encoder to avoid such issues. Change-Id: Ie644701cbda6b4d056bc7ef30300be96096c5214 Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com> Signed-off-by: Narendra Muppalla <quic_nmuppall@quicinc.com>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

부모
9fbbeb65ba
커밋
a14aea9aac
@@ -2491,7 +2491,7 @@ static void _sde_encoder_virt_populate_hw_res(struct drm_encoder *drm_enc)
|
||||
for (i = 0; i < MAX_CHANNELS_PER_ENC; i++) {
|
||||
sde_enc->hw_dsc[i] = NULL;
|
||||
if (!sde_rm_get_hw(&sde_kms->rm, &dsc_iter))
|
||||
break;
|
||||
continue;
|
||||
sde_enc->hw_dsc[i] = to_sde_hw_dsc(dsc_iter.hw);
|
||||
}
|
||||
|
||||
@@ -2499,7 +2499,7 @@ static void _sde_encoder_virt_populate_hw_res(struct drm_encoder *drm_enc)
|
||||
for (i = 0; i < MAX_CHANNELS_PER_ENC; i++) {
|
||||
sde_enc->hw_vdc[i] = NULL;
|
||||
if (!sde_rm_get_hw(&sde_kms->rm, &vdc_iter))
|
||||
break;
|
||||
continue;
|
||||
sde_enc->hw_vdc[i] = to_sde_hw_vdc(vdc_iter.hw);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user