Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91d78197 authored by Maarten Lankhorst's avatar Maarten Lankhorst
Browse files

drm/i915: Remove crtc->config dereferences in intel_modeset_setup_hw_state



The CRTC is idle at this point, so we can dereference crtc->state safely.

Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
[mlankhorst: Keep dev_priv->drm in for_each_intel_crtc (Ville)]
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181011100457.8776-8-maarten.lankhorst@linux.intel.com
parent 1b52ad46
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -15739,6 +15739,7 @@ intel_modeset_setup_hw_state(struct drm_device *dev,
{
	struct drm_i915_private *dev_priv = to_i915(dev);
	struct intel_crtc *crtc;
	struct intel_crtc_state *crtc_state;
	struct intel_encoder *encoder;
	int i;

@@ -15757,7 +15758,7 @@ intel_modeset_setup_hw_state(struct drm_device *dev,
	for_each_intel_crtc(&dev_priv->drm, crtc) {
		drm_crtc_vblank_reset(&crtc->base);

		if (crtc->active)
		if (crtc->base.state->active)
			drm_crtc_vblank_on(&crtc->base);
	}

@@ -15767,8 +15768,9 @@ intel_modeset_setup_hw_state(struct drm_device *dev,
		intel_sanitize_encoder(encoder);

	for_each_intel_crtc(&dev_priv->drm, crtc) {
		crtc_state = to_intel_crtc_state(crtc->base.state);
		intel_sanitize_crtc(crtc, ctx);
		intel_dump_pipe_config(crtc, crtc->config,
		intel_dump_pipe_config(crtc, crtc_state,
				       "[setup_hw_state]");
	}

@@ -15802,7 +15804,8 @@ intel_modeset_setup_hw_state(struct drm_device *dev,
	for_each_intel_crtc(dev, crtc) {
		u64 put_domains;

		put_domains = modeset_get_crtc_power_domains(&crtc->base, crtc->config);
		crtc_state = to_intel_crtc_state(crtc->base.state);
		put_domains = modeset_get_crtc_power_domains(&crtc->base, crtc_state);
		if (WARN_ON(put_domains))
			modeset_put_power_domains(dev_priv, put_domains);
	}