Commit 24e804ba authored by Daniel Vetter's avatar Daniel Vetter

drm/i915: rip out intel_dp->dpms_mode

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.

v2: Rebase on top of struct intel_dp moving.

v3: The rebase accidentally killed the newly-introduced intel_dp->port
Noticed by Paulo Zanoni.
Reviewed-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 84bb65bd
...@@ -1309,8 +1309,6 @@ static void intel_disable_dp(struct intel_encoder *encoder) ...@@ -1309,8 +1309,6 @@ static void intel_disable_dp(struct intel_encoder *encoder)
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
ironlake_edp_panel_off(intel_dp); ironlake_edp_panel_off(intel_dp);
intel_dp_link_down(intel_dp); intel_dp_link_down(intel_dp);
intel_dp->dpms_mode = DRM_MODE_DPMS_OFF;
} }
static void intel_enable_dp(struct intel_encoder *encoder) static void intel_enable_dp(struct intel_encoder *encoder)
...@@ -1330,8 +1328,6 @@ static void intel_enable_dp(struct intel_encoder *encoder) ...@@ -1330,8 +1328,6 @@ static void intel_enable_dp(struct intel_encoder *encoder)
} else } else
ironlake_edp_panel_vdd_off(intel_dp, false); ironlake_edp_panel_vdd_off(intel_dp, false);
ironlake_edp_backlight_on(intel_dp); ironlake_edp_backlight_on(intel_dp);
intel_dp->dpms_mode = DRM_MODE_DPMS_ON;
} }
static void static void
...@@ -1356,7 +1352,6 @@ intel_dp_dpms(struct drm_connector *connector, int mode) ...@@ -1356,7 +1352,6 @@ intel_dp_dpms(struct drm_connector *connector, int mode)
if (mode != DRM_MODE_DPMS_ON) { if (mode != DRM_MODE_DPMS_ON) {
intel_encoder_dpms(&intel_dp->base, mode); intel_encoder_dpms(&intel_dp->base, mode);
WARN_ON(intel_dp->dpms_mode != DRM_MODE_DPMS_OFF);
if (is_cpu_edp(intel_dp)) if (is_cpu_edp(intel_dp))
ironlake_edp_pll_off(&intel_dp->base.base); ironlake_edp_pll_off(&intel_dp->base.base);
...@@ -1365,7 +1360,6 @@ intel_dp_dpms(struct drm_connector *connector, int mode) ...@@ -1365,7 +1360,6 @@ intel_dp_dpms(struct drm_connector *connector, int mode)
ironlake_edp_pll_on(&intel_dp->base.base); ironlake_edp_pll_on(&intel_dp->base.base);
intel_encoder_dpms(&intel_dp->base, mode); 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)); intel_connector_check_state(to_intel_connector(connector));
...@@ -2069,10 +2063,10 @@ intel_dp_check_link_status(struct intel_dp *intel_dp) ...@@ -2069,10 +2063,10 @@ intel_dp_check_link_status(struct intel_dp *intel_dp)
u8 sink_irq_vector; u8 sink_irq_vector;
u8 link_status[DP_LINK_STATUS_SIZE]; u8 link_status[DP_LINK_STATUS_SIZE];
if (intel_dp->dpms_mode != DRM_MODE_DPMS_ON) if (!intel_dp->base.connectors_active)
return; return;
if (!intel_dp->base.base.crtc) if (WARN_ON(!intel_dp->base.base.crtc))
return; return;
/* Try to read receiver status if the link appears to be up */ /* Try to read receiver status if the link appears to be up */
...@@ -2490,7 +2484,6 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port) ...@@ -2490,7 +2484,6 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port)
intel_dp->output_reg = output_reg; intel_dp->output_reg = output_reg;
intel_dp->port = port; intel_dp->port = port;
intel_dp->dpms_mode = -1;
intel_connector = kzalloc(sizeof(struct intel_connector), GFP_KERNEL); intel_connector = kzalloc(sizeof(struct intel_connector), GFP_KERNEL);
if (!intel_connector) { if (!intel_connector) {
......
...@@ -324,7 +324,6 @@ struct intel_dp { ...@@ -324,7 +324,6 @@ struct intel_dp {
enum hdmi_force_audio force_audio; enum hdmi_force_audio force_audio;
enum port port; enum port port;
uint32_t color_range; uint32_t color_range;
int dpms_mode;
uint8_t link_bw; uint8_t link_bw;
uint8_t lane_count; uint8_t lane_count;
uint8_t dpcd[DP_RECEIVER_CAP_SIZE]; uint8_t dpcd[DP_RECEIVER_CAP_SIZE];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment