Skip to content

Commit

Permalink
Revert and fix "drm/i915/dp: remove DPMS mode tracking from DP"
Browse files Browse the repository at this point in the history
This reverts commit 885a501.

We actually *do* need to track DPMS state so that on hotplug, we don't
retrain the link until DPMS is disabled.

However, that code had avery small bug -- it wouldn't set the
dpms_mode at mode set time, and so link retraining would not actually
occur on monitor hotplug until the monitor had gone through a DPMS
off/DPMS on cycle.

Signed-off-by: Keith Packard <keithp@keithp.com>
Tested-by: Andrew Lutomirski <luto@mit.edu>
  • Loading branch information
Keith Packard committed Jul 28, 2011
1 parent f0575e9 commit d2b996a
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions drivers/gpu/drm/i915/intel_dp.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ struct intel_dp {
bool has_audio;
int force_audio;
uint32_t color_range;
int dpms_mode;
uint8_t link_bw;
uint8_t lane_count;
uint8_t dpcd[8];
Expand Down Expand Up @@ -1011,6 +1012,8 @@ static void intel_dp_commit(struct drm_encoder *encoder)

if (is_edp(intel_dp))
ironlake_edp_backlight_on(dev);

intel_dp->dpms_mode = DRM_MODE_DPMS_ON;
}

static void
Expand Down Expand Up @@ -1045,6 +1048,7 @@ intel_dp_dpms(struct drm_encoder *encoder, int mode)
if (is_edp(intel_dp))
ironlake_edp_backlight_on(dev);
}
intel_dp->dpms_mode = mode;
}

/*
Expand Down Expand Up @@ -1591,6 +1595,9 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp)
static void
intel_dp_check_link_status(struct intel_dp *intel_dp)
{
if (intel_dp->dpms_mode != DRM_MODE_DPMS_ON)
return;

if (!intel_dp->base.base.crtc)
return;

Expand Down Expand Up @@ -1939,6 +1946,7 @@ 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) {
Expand Down

0 comments on commit d2b996a

Please sign in to comment.