Commit ed500bf6 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Populate possible_crtcs correctly

parent 3cbad5d7
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -15257,6 +15257,20 @@ static int intel_encoder_clones(struct intel_encoder *encoder)
	return index_mask;
}

static u32 intel_encoder_possible_crtcs(struct intel_encoder *encoder)
{
	struct drm_device *dev = encoder->base.dev;
	struct intel_crtc *crtc;
	u32 possible_crtcs = 0;

	for_each_intel_crtc(dev, crtc) {
		if (encoder->crtc_mask & BIT(crtc->pipe))
			possible_crtcs |= drm_crtc_mask(&crtc->base);
	}

	return possible_crtcs;
}

static bool ilk_has_edp_a(struct drm_i915_private *dev_priv)
{
	if (!IS_MOBILE(dev_priv))
@@ -15557,7 +15571,8 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
	intel_psr_init(dev_priv);

	for_each_intel_encoder(&dev_priv->drm, encoder) {
		encoder->base.possible_crtcs = encoder->crtc_mask;
		encoder->base.possible_crtcs =
			intel_encoder_possible_crtcs(encoder);
		encoder->base.possible_clones =
			intel_encoder_clones(encoder);
	}