drm/i915: Add crtcs affected by bigjoiner to the state

Make sure both crtcs participating in the bigjoiner stuff
are in the state.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201117194718.11462-8-manasi.d.navare@intel.com
This commit is contained in:
Ville Syrjälä 2020-11-17 11:47:10 -08:00 committed by Manasi Navare
parent 0385ecead5
commit d321634bd7
1 changed files with 25 additions and 0 deletions

View File

@ -15461,6 +15461,27 @@ static int intel_atomic_check_async(struct intel_atomic_state *state)
return 0;
}
static int intel_bigjoiner_add_affected_crtcs(struct intel_atomic_state *state)
{
const struct intel_crtc_state *crtc_state;
struct intel_crtc *crtc;
int i;
for_each_new_intel_crtc_in_state(state, crtc, crtc_state, i) {
struct intel_crtc_state *linked_crtc_state;
if (!crtc_state->bigjoiner)
continue;
linked_crtc_state = intel_atomic_get_crtc_state(&state->base,
crtc_state->bigjoiner_linked_crtc);
if (IS_ERR(linked_crtc_state))
return PTR_ERR(linked_crtc_state);
}
return 0;
}
/**
* intel_atomic_check - validate state object
* @dev: drm device
@ -15486,6 +15507,10 @@ static int intel_atomic_check(struct drm_device *dev,
if (ret)
goto fail;
ret = intel_bigjoiner_add_affected_crtcs(state);
if (ret)
goto fail;
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
new_crtc_state, i) {
if (!needs_modeset(new_crtc_state)) {