Skip to content

Commit

Permalink
drm/i915: rip out intel_dp->dpms_mode
Browse files Browse the repository at this point in the history
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: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Daniel Vetter committed Sep 6, 2012
1 parent 84bb65b commit 24e804b
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 10 deletions.
11 changes: 2 additions & 9 deletions drivers/gpu/drm/i915/intel_dp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1309,8 +1309,6 @@ static void intel_disable_dp(struct intel_encoder *encoder)
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
ironlake_edp_panel_off(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)
Expand All @@ -1330,8 +1328,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
Expand All @@ -1356,7 +1352,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);
Expand All @@ -1365,7 +1360,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));
Expand Down Expand Up @@ -2069,10 +2063,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 */
Expand Down Expand Up @@ -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->port = port;
intel_dp->dpms_mode = -1;

intel_connector = kzalloc(sizeof(struct intel_connector), GFP_KERNEL);
if (!intel_connector) {
Expand Down
1 change: 0 additions & 1 deletion drivers/gpu/drm/i915/intel_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,6 @@ struct intel_dp {
enum hdmi_force_audio force_audio;
enum port port;
uint32_t color_range;
int dpms_mode;
uint8_t link_bw;
uint8_t lane_count;
uint8_t dpcd[DP_RECEIVER_CAP_SIZE];
Expand Down

0 comments on commit 24e804b

Please sign in to comment.