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

Commit 97af61f5 authored by Keith Packard's avatar Keith Packard
Browse files

drm/i915: Check for eDP inside edp panel on/off funcs



Cleans up code dealing with eDP a bit. Remove redundant checks in
callers

Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
parent 1c0ae80a
Loading
Loading
Loading
Loading
+15 −14
Original line number Diff line number Diff line
@@ -832,6 +832,8 @@ static void ironlake_edp_panel_vdd_on(struct intel_dp *intel_dp)
	struct drm_i915_private *dev_priv = dev->dev_private;
	u32 pp;

	if (!is_edp(intel_dp))
		return;
	/*
	 * If the panel wasn't on, make sure there's not a currently
	 * active PP sequence before enabling AUX VDD.
@@ -853,6 +855,8 @@ static void ironlake_edp_panel_vdd_off(struct intel_dp *intel_dp)
	struct drm_i915_private *dev_priv = dev->dev_private;
	u32 pp;

	if (!is_edp(intel_dp))
		return;
	pp = I915_READ(PCH_PP_CONTROL);
	pp &= ~PANEL_UNLOCK_MASK;
	pp |= PANEL_UNLOCK_REGS;
@@ -871,6 +875,8 @@ static bool ironlake_edp_panel_on (struct intel_dp *intel_dp)
	struct drm_i915_private *dev_priv = dev->dev_private;
	u32 pp, idle_on_mask = PP_ON | PP_SEQUENCE_STATE_ON_IDLE;

	if (!is_edp(intel_dp))
		return;
	if (I915_READ(PCH_PP_STATUS) & PP_ON)
		return true;

@@ -905,6 +911,8 @@ static void ironlake_edp_panel_off (struct drm_device *dev)
	u32 pp, idle_off_mask = PP_ON | PP_SEQUENCE_MASK |
		PP_CYCLE_DELAY_ACTIVE | PP_SEQUENCE_STATE_MASK;

	if (!is_edp(intel_dp))
		return;
	pp = I915_READ(PCH_PP_CONTROL);
	pp &= ~PANEL_UNLOCK_MASK;
	pp |= PANEL_UNLOCK_REGS;
@@ -1041,15 +1049,12 @@ static void intel_dp_commit(struct drm_encoder *encoder)
	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
	struct drm_device *dev = encoder->dev;

	if (is_edp(intel_dp))
	ironlake_edp_panel_vdd_on(intel_dp);

	intel_dp_start_link_train(intel_dp);

	if (is_edp(intel_dp)) {
	ironlake_edp_panel_on(intel_dp);
	ironlake_edp_panel_vdd_off(intel_dp);
	}

	intel_dp_complete_link_train(intel_dp);

@@ -1072,20 +1077,16 @@ intel_dp_dpms(struct drm_encoder *encoder, int mode)
			ironlake_edp_backlight_off(dev);
		intel_dp_sink_dpms(intel_dp, mode);
		intel_dp_link_down(intel_dp);
		if (is_edp(intel_dp))
		ironlake_edp_panel_off(dev);
		if (is_edp(intel_dp) && !is_pch_edp(intel_dp))
			ironlake_edp_pll_off(encoder);
	} else {
		if (is_edp(intel_dp))
		ironlake_edp_panel_vdd_on(intel_dp);
		intel_dp_sink_dpms(intel_dp, mode);
		if (!(dp_reg & DP_PORT_EN)) {
			intel_dp_start_link_train(intel_dp);
			if (is_edp(intel_dp)) {
			ironlake_edp_panel_on(intel_dp);
			ironlake_edp_panel_vdd_off(intel_dp);
			}
			intel_dp_complete_link_train(intel_dp);
		}
		if (is_edp(intel_dp))