Commit 7864578a authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Disable CPU underruns around eDP port and vdd enable on ILK-IVB

We sometimes get a spurious CPU pipe underrun somewhere between
enabling port A and enabling vdd for the panel. Observed on both
ILK and IVB with port A eDP. Suppress FIFO underrun reporting
around the port and vdd enable to avoid the dmesg errors.

Not sure if port D eDP would suffer from the same issue, but assume
that it doesn't until proven differently.

Testcase: igt/kms_setmode
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1448050160-14124-2-git-send-email-ville.syrjala@linux.intel.comAcked-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent 3860b2ec
...@@ -2697,6 +2697,15 @@ static void intel_enable_dp(struct intel_encoder *encoder) ...@@ -2697,6 +2697,15 @@ static void intel_enable_dp(struct intel_encoder *encoder)
if (IS_VALLEYVIEW(dev)) if (IS_VALLEYVIEW(dev))
vlv_init_panel_power_sequencer(intel_dp); vlv_init_panel_power_sequencer(intel_dp);
/*
* We get an occasional spurious underrun between the port
* enable and vdd enable, when enabling port A eDP.
*
* FIXME: Not sure if this applies to (PCH) port D eDP as well
*/
if (port == PORT_A)
intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
intel_dp_enable_port(intel_dp); intel_dp_enable_port(intel_dp);
if (port == PORT_A && IS_GEN5(dev_priv)) { if (port == PORT_A && IS_GEN5(dev_priv)) {
...@@ -2714,6 +2723,9 @@ static void intel_enable_dp(struct intel_encoder *encoder) ...@@ -2714,6 +2723,9 @@ static void intel_enable_dp(struct intel_encoder *encoder)
edp_panel_on(intel_dp); edp_panel_on(intel_dp);
edp_panel_vdd_off(intel_dp, true); edp_panel_vdd_off(intel_dp, true);
if (port == PORT_A)
intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);
pps_unlock(intel_dp); pps_unlock(intel_dp);
if (IS_VALLEYVIEW(dev)) { if (IS_VALLEYVIEW(dev)) {
......
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