Merge "disp: msm: dp: check for atomic phase"

This commit is contained in:
qctecmdr
2023-04-06 23:16:20 -07:00
committed by Gerrit - the friendly Code Review server

View File

@@ -1165,6 +1165,7 @@ static int dp_mst_connector_atomic_check(struct drm_connector *connector,
void *display, struct drm_atomic_state *state) void *display, struct drm_atomic_state *state)
{ {
int rc = 0, slots, i; int rc = 0, slots, i;
bool vcpi_released = false;
struct drm_connector_state *old_conn_state; struct drm_connector_state *old_conn_state;
struct drm_connector_state *new_conn_state; struct drm_connector_state *new_conn_state;
struct drm_crtc *old_crtc; struct drm_crtc *old_crtc;
@@ -1239,6 +1240,7 @@ static int dp_mst_connector_atomic_check(struct drm_connector *connector,
slots, rc); slots, rc);
goto end; goto end;
} }
vcpi_released = true;
} }
bridge_state->num_slots = 0; bridge_state->num_slots = 0;
@@ -1284,6 +1286,15 @@ mode_set:
goto end; goto end;
} }
/*
* check if vcpi slots are trying to get allocated in same phase
* as deallocation. If so, go to end to avoid allocation.
*/
if (vcpi_released) {
DP_WARN("skipping allocation since vcpi was released in the same state \n");
goto end;
}
if (WARN_ON(bridge_state->num_slots)) { if (WARN_ON(bridge_state->num_slots)) {
rc = -EINVAL; rc = -EINVAL;
goto end; goto end;