|
@@ -1130,6 +1130,13 @@ static int _sde_encoder_atomic_check_reserve(struct drm_encoder *drm_enc,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+ /* Skip RM allocation for Primary during CWB usecase */
|
|
|
+ if (!crtc_state->mode_changed && !crtc_state->active_changed &&
|
|
|
+ crtc_state->connectors_changed &&
|
|
|
+ !msm_is_private_mode_changed(conn_state) && (conn_state->crtc ==
|
|
|
+ conn_state->connector->state->crtc))
|
|
|
+ goto skip_reserve;
|
|
|
+
|
|
|
/* Reserve dynamic resources, indicating atomic_check phase */
|
|
|
ret = sde_rm_reserve(&sde_kms->rm, drm_enc, crtc_state,
|
|
|
conn_state, true);
|
|
@@ -1140,6 +1147,7 @@ static int _sde_encoder_atomic_check_reserve(struct drm_encoder *drm_enc,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+skip_reserve:
|
|
|
/**
|
|
|
* Update connector state with the topology selected for the
|
|
|
* resource set validated. Reset the topology if we are
|