diff --git a/msm/sde/sde_rm.c b/msm/sde/sde_rm.c index 20e1dc9473..fd25b861db 100644 --- a/msm/sde/sde_rm.c +++ b/msm/sde/sde_rm.c @@ -1868,12 +1868,15 @@ static int _sde_rm_get_hw_blk_for_cont_splash(struct sde_rm *rm, { u32 lm_reg; struct sde_rm_hw_iter iter_lm, iter_dsc; + struct sde_kms *sde_kms; if (!rm || !ctl || !splash_display) { SDE_ERROR("invalid input parameters\n"); return 0; } + sde_kms = container_of(rm, struct sde_kms, rm); + sde_rm_init_hw_iter(&iter_lm, 0, SDE_HW_BLK_LM); sde_rm_init_hw_iter(&iter_dsc, 0, SDE_HW_BLK_DSC); while (_sde_rm_get_hw_locked(rm, &iter_lm)) { @@ -1894,6 +1897,12 @@ static int _sde_rm_get_hw_blk_for_cont_splash(struct sde_rm *rm, &splash_display->pipes[ splash_display->pipe_cnt], 1)) { splash_display->pipe_cnt++; + } else if (sde_kms->splash_data.type == SDE_VM_HANDOFF) { + /* Allow VM handoff without any pipes, as it is a + * valid case to have NULL commit before the + * transition. + */ + SDE_DEBUG("VM handoff with no pipes staged\n"); } else { SDE_ERROR("no pipe detected on LM-%d\n", iter_lm.blk->id - LM_0);