Loading drivers/gpu/drm/msm/sde/sde_crtc.c +11 −6 Original line number Diff line number Diff line Loading @@ -3289,24 +3289,27 @@ static int _sde_crtc_check_dest_scaler_data(struct drm_crtc *crtc, SDE_DEBUG("crtc%d\n", crtc->base.id); mutex_lock(&sde_crtc->crtc_lock); if (!cstate->ds_dirty) { SDE_DEBUG("dest scaler property not set, skip validation\n"); return 0; goto end; } if (!kms || !kms->catalog) { SDE_ERROR("crtc%d: invalid parameters\n", crtc->base.id); return -EINVAL; ret = -EINVAL; goto end; } if (!kms->catalog->mdp[0].has_dest_scaler) { SDE_DEBUG("dest scaler feature not supported\n"); return 0; goto end; } if (!sde_crtc->num_mixers) { SDE_DEBUG("mixers not allocated\n"); return 0; goto end; } ret = _sde_validate_hw_resources(sde_crtc); Loading Loading @@ -3485,10 +3488,12 @@ static int _sde_crtc_check_dest_scaler_data(struct drm_crtc *crtc, cstate->ds_dirty = false; } return 0; goto end; err: cstate->ds_dirty = false; end: mutex_unlock(&sde_crtc->crtc_lock); return ret; } Loading Loading @@ -3608,12 +3613,12 @@ static void _sde_crtc_setup_mixers(struct drm_crtc *crtc) struct sde_crtc *sde_crtc = to_sde_crtc(crtc); struct drm_encoder *enc; mutex_lock(&sde_crtc->crtc_lock); sde_crtc->num_ctls = 0; sde_crtc->num_mixers = 0; sde_crtc->mixers_swapped = false; memset(sde_crtc->mixers, 0, sizeof(sde_crtc->mixers)); mutex_lock(&sde_crtc->crtc_lock); /* Check for mixers on all encoders attached to this crtc */ list_for_each_entry(enc, &crtc->dev->mode_config.encoder_list, head) { if (enc->crtc != crtc) Loading Loading
drivers/gpu/drm/msm/sde/sde_crtc.c +11 −6 Original line number Diff line number Diff line Loading @@ -3289,24 +3289,27 @@ static int _sde_crtc_check_dest_scaler_data(struct drm_crtc *crtc, SDE_DEBUG("crtc%d\n", crtc->base.id); mutex_lock(&sde_crtc->crtc_lock); if (!cstate->ds_dirty) { SDE_DEBUG("dest scaler property not set, skip validation\n"); return 0; goto end; } if (!kms || !kms->catalog) { SDE_ERROR("crtc%d: invalid parameters\n", crtc->base.id); return -EINVAL; ret = -EINVAL; goto end; } if (!kms->catalog->mdp[0].has_dest_scaler) { SDE_DEBUG("dest scaler feature not supported\n"); return 0; goto end; } if (!sde_crtc->num_mixers) { SDE_DEBUG("mixers not allocated\n"); return 0; goto end; } ret = _sde_validate_hw_resources(sde_crtc); Loading Loading @@ -3485,10 +3488,12 @@ static int _sde_crtc_check_dest_scaler_data(struct drm_crtc *crtc, cstate->ds_dirty = false; } return 0; goto end; err: cstate->ds_dirty = false; end: mutex_unlock(&sde_crtc->crtc_lock); return ret; } Loading Loading @@ -3608,12 +3613,12 @@ static void _sde_crtc_setup_mixers(struct drm_crtc *crtc) struct sde_crtc *sde_crtc = to_sde_crtc(crtc); struct drm_encoder *enc; mutex_lock(&sde_crtc->crtc_lock); sde_crtc->num_ctls = 0; sde_crtc->num_mixers = 0; sde_crtc->mixers_swapped = false; memset(sde_crtc->mixers, 0, sizeof(sde_crtc->mixers)); mutex_lock(&sde_crtc->crtc_lock); /* Check for mixers on all encoders attached to this crtc */ list_for_each_entry(enc, &crtc->dev->mode_config.encoder_list, head) { if (enc->crtc != crtc) Loading