diff --git a/msm/sde/sde_kms.c b/msm/sde/sde_kms.c index 2da651445e..6e771c5188 100644 --- a/msm/sde/sde_kms.c +++ b/msm/sde/sde_kms.c @@ -1002,6 +1002,14 @@ static void _sde_kms_drm_check_dpms(struct drm_atomic_state *old_state, pr_debug("change detected (power mode %d->%d, fps %d->%d)\n", old_mode, new_mode, old_fps, new_fps); + /* If suspend resume and fps change are happening + * at the same time, give preference to power mode + * changes rather than fps change. + */ + + if ((old_mode == new_mode) && (old_fps != new_fps)) + new_mode = DRM_PANEL_BLANK_FPS_CHANGE; + notifier_data.data = &new_mode; notifier_data.refresh_rate = new_fps; notifier_data.id = connector->base.id;