|
@@ -2063,6 +2063,8 @@ static bool _sde_encoder_phys_wb_is_idle(struct sde_encoder_phys *phys_enc)
|
|
|
static void _sde_encoder_phys_wb_reset_state(struct sde_encoder_phys *phys_enc)
|
|
|
{
|
|
|
struct sde_encoder_phys_wb *wb_enc = to_sde_encoder_phys_wb(phys_enc);
|
|
|
+ struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(phys_enc->parent);
|
|
|
+ struct sde_crtc *sde_crtc;
|
|
|
|
|
|
phys_enc->enable_state = SDE_ENC_DISABLED;
|
|
|
|
|
@@ -2074,6 +2076,10 @@ static void _sde_encoder_phys_wb_reset_state(struct sde_encoder_phys *phys_enc)
|
|
|
wb_enc->wb_aspace = NULL;
|
|
|
}
|
|
|
|
|
|
+ sde_crtc = to_sde_crtc(sde_enc->crtc);
|
|
|
+ if (sde_crtc)
|
|
|
+ sde_crtc->cached_encoder_mask &= ~drm_encoder_mask(phys_enc->parent);
|
|
|
+
|
|
|
wb_enc->crtc = NULL;
|
|
|
phys_enc->hw_cdm = NULL;
|
|
|
phys_enc->hw_ctl = NULL;
|