Commit 0080b5da authored by Imre Deak's avatar Imre Deak

drm/i915: Initialize the PPS HW before its first use

The initial DPCD read for eDP detection involves using the PPS, but so
far we only initialized the PPS registers after the DPCD read. The
reason this was done so far is to preserve a possible LVDS PPS HW setup
if LVDS is detected but eDP is not. This is not an issue any more after
the previous patch, so we can move the init earlier now.

This was caught by CI with the PPS sanity checks in place and the
initial eDP DPCD readout waiting for the panel power cycle timeout
without the PPS registers being initialized.

CC: Ville Syrjälä <ville.syrjala@linux.intel.com>
CC: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1466499109-20240-3-git-send-email-imre.deak@intel.com
parent 97a824e1
...@@ -5328,6 +5328,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, ...@@ -5328,6 +5328,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
pps_lock(intel_dp); pps_lock(intel_dp);
intel_edp_panel_vdd_sanitize(intel_dp); intel_edp_panel_vdd_sanitize(intel_dp);
intel_dp_init_panel_power_sequencer_registers(dev, intel_dp);
pps_unlock(intel_dp); pps_unlock(intel_dp);
/* Cache DPCD and EDID for edp. */ /* Cache DPCD and EDID for edp. */
...@@ -5344,11 +5345,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, ...@@ -5344,11 +5345,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
return false; return false;
} }
/* We now know it's not a ghost, init power sequence regs. */
pps_lock(intel_dp);
intel_dp_init_panel_power_sequencer_registers(dev, intel_dp);
pps_unlock(intel_dp);
mutex_lock(&dev->mode_config.mutex); mutex_lock(&dev->mode_config.mutex);
edid = drm_get_edid(connector, &intel_dp->aux.ddc); edid = drm_get_edid(connector, &intel_dp->aux.ddc);
if (edid) { if (edid) {
......
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