diff mbox

[45/81] drm/i915: rip out intel_dp->dpms_mode

Message ID 1342016944-23395-46-git-send-email-daniel.vetter@ffwll.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter July 11, 2012, 2:28 p.m. UTC
We now track the connector state in encoder->connectors_active, and
because the DP output can't be cloned, that is sufficient to track the
link state. Hence use this instead of adding yet another modeset state
variable with dubious semantics at driver load and resume time.

Also, connectors_active should only ever be set when the encoder is
linked to a crtc, hence convert that crtc test into a WARN.

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/intel_dp.c |   12 ++----------
 1 files changed, 2 insertions(+), 10 deletions(-)

Comments

Paulo Zanoni July 26, 2012, 6:06 p.m. UTC | #1
Hi

2012/7/11 Daniel Vetter <daniel.vetter@ffwll.ch>:
> @@ -2502,7 +2495,6 @@ intel_dp_init(struct drm_device *dev, int output_reg)
>                 return;
>
>         intel_dp->output_reg = output_reg;
> -       intel_dp->dpms_mode = -1;

In your current modeset-rework branch, you're also removing the
"intel_dp->port = port" line. Look:
http://cgit.freedesktop.org/~danvet/drm/commit/drivers/gpu/drm/i915/intel_dp.c?h=modeset-rework&id=d777693a7eefd4f92a57d49e4a6051f60282f72b

This is probably an accident caused by rebasing.
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 220f1d1..58e16f4 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -52,7 +52,6 @@  struct intel_dp {
 	bool has_audio;
 	enum hdmi_force_audio force_audio;
 	uint32_t color_range;
-	int dpms_mode;
 	uint8_t link_bw;
 	uint8_t lane_count;
 	uint8_t dpcd[DP_RECEIVER_CAP_SIZE];
@@ -1338,8 +1337,6 @@  static void intel_disable_dp(struct intel_encoder *encoder)
 	intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
 	intel_dp_link_down(intel_dp);
 	ironlake_edp_panel_vdd_off(intel_dp, false);
-
-	intel_dp->dpms_mode = DRM_MODE_DPMS_OFF;
 }
 
 static void intel_enable_dp(struct intel_encoder *encoder)
@@ -1359,8 +1356,6 @@  static void intel_enable_dp(struct intel_encoder *encoder)
 	} else
 		ironlake_edp_panel_vdd_off(intel_dp, false);
 	ironlake_edp_backlight_on(intel_dp);
-
-	intel_dp->dpms_mode = DRM_MODE_DPMS_ON;
 }
 
 static void
@@ -1385,7 +1380,6 @@  intel_dp_dpms(struct drm_connector *connector, int mode)
 
 	if (mode != DRM_MODE_DPMS_ON) {
 		intel_encoder_dpms(&intel_dp->base, mode);
-		WARN_ON(intel_dp->dpms_mode != DRM_MODE_DPMS_OFF);
 
 		if (is_cpu_edp(intel_dp))
 			ironlake_edp_pll_off(&intel_dp->base.base);
@@ -1394,7 +1388,6 @@  intel_dp_dpms(struct drm_connector *connector, int mode)
 			ironlake_edp_pll_on(&intel_dp->base.base);
 
 		intel_encoder_dpms(&intel_dp->base, mode);
-		WARN_ON(intel_dp->dpms_mode != DRM_MODE_DPMS_ON);
 	}
 
 	intel_connector_check_state(to_intel_connector(connector));
@@ -2081,10 +2074,10 @@  intel_dp_check_link_status(struct intel_dp *intel_dp)
 	u8 sink_irq_vector;
 	u8 link_status[DP_LINK_STATUS_SIZE];
 
-	if (intel_dp->dpms_mode != DRM_MODE_DPMS_ON)
+	if (!intel_dp->base.connectors_active)
 		return;
 
-	if (!intel_dp->base.base.crtc)
+	if (WARN_ON(!intel_dp->base.base.crtc))
 		return;
 
 	/* Try to read receiver status if the link appears to be up */
@@ -2502,7 +2495,6 @@  intel_dp_init(struct drm_device *dev, int output_reg)
 		return;
 
 	intel_dp->output_reg = output_reg;
-	intel_dp->dpms_mode = -1;
 
 	intel_connector = kzalloc(sizeof(struct intel_connector), GFP_KERNEL);
 	if (!intel_connector) {