Skip to contentSkip to conversation

drm/i915/vlv: Prevent enabling hpd polling in late suspend

PATCH Applied Lyude 4 participants 4 messages Oct 26, 2016 – Oct 29, 2016

Subsystems (2)
lore
Share & tools
lore

Lyude

author
#0 lore raw

PATCH 1/1 drm/i915/vlv: Prevent enabling hpd polling in late suspend

One of the CI machines began to run into issues with the hpd poller suddenly waking up in the midst of the late suspend phase. It looks like this is getting caused by the fact we now deinitialize power wells in late suspend, which means that intel_hpd_poll_init() gets called in late suspend causing polling to get re-enabled. So, when deinitializing power wells on valleyview we now refrain from enabling polling in the midst of suspend.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98040

Fixes 19625e85c6ec ("drm/i915: Enable polling when we don't have hpd")
Cc Ville Syrjälä <[email protected]>
Cc Jani Saarinen <[email protected]>
Cc Petry Latvala <[email protected]>
---
 drivers/gpu/drm/i915/intel_runtime_pm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/gpu/drm/i915/intel_runtime_pm.c +3 -1
index 82edba2..ac85482 100644
@@ -1138,7 +1138,9 @@ static void vlv_display_power_well_deinit(struct drm_i915_private *dev_priv)
 
 	intel_power_sequencer_reset(dev_priv);
 
-	intel_hpd_poll_init(dev_priv);
+	/* Prevent us from re-enabling polling on accident in late suspend */
+	if (!dev_priv->drm.dev->power.is_suspended)
+		intel_hpd_poll_init(dev_priv);
 }
 
 static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv,
Signature · 6 lines
2.7.4

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Reviewed-by on v1 1/1
#1 lore raw
Quoted 23 lines · Lyude

One of the CI machines began to run into issues with the hpd poller suddenly waking up in the midst of the late suspend phase. It looks like this is getting caused by the fact we now deinitialize power wells in late suspend, which means that intel_hpd_poll_init() gets called in late suspend causing polling to get re-enabled. So, when deinitializing power wells on valleyview we now refrain from enabling polling in the midst of suspend.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98040

Fixes 19625e85c6ec ("drm/i915: Enable polling when we don't have hpd")
Cc Ville Syrjälä <[email protected]>
Cc Jani Saarinen <[email protected]>
Cc Petry Latvala <[email protected]>
---
 drivers/gpu/drm/i915/intel_runtime_pm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/gpu/drm/i915/intel_runtime_pm.c +0 -0
index 82edba2..ac85482 100644

drivers/gpu/drm/i915/intel_runtime_pm.c static void vlv_display_power_well_deinit(struct drm_i915_private *dev_priv) · line 1143

Quoted 7 lines
drivers/gpu/drm/i915/intel_runtime_pm.c +3 -1
@@ -1138,7 +1138,9 @@ static void vlv_display_power_well_deinit(struct drm_i915_private *dev_priv)
 
 	intel_power_sequencer_reset(dev_priv);
 
-	intel_hpd_poll_init(dev_priv);
+	/* Prevent us from re-enabling polling on accident in late suspend */
+	if (!dev_priv->drm.dev->power.is_suspended)
+		intel_hpd_poll_init(dev_priv);

The flag would appear to get set between suspend and suspend_late, so looks like this should be sufficient for our purposes.

Quoted 5 lines
drivers/gpu/drm/i915/intel_runtime_pm.c +0 -0
 }
 
 static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv,
Signature · 1 line
2.7.4
Signature · 2 lines
Ville Syrjälä
Intel OTC
maintainer Applied
#2 lore raw
Quoted 35 lines · Ville Syrjälä
Quoted 23 lines · Lyude

One of the CI machines began to run into issues with the hpd poller suddenly waking up in the midst of the late suspend phase. It looks like this is getting caused by the fact we now deinitialize power wells in late suspend, which means that intel_hpd_poll_init() gets called in late suspend causing polling to get re-enabled. So, when deinitializing power wells on valleyview we now refrain from enabling polling in the midst of suspend.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98040

Fixes 19625e85c6ec ("drm/i915: Enable polling when we don't have hpd")
Cc Ville Syrjälä <[email protected]>
Cc Jani Saarinen <[email protected]>
Cc Petry Latvala <[email protected]>
---
 drivers/gpu/drm/i915/intel_runtime_pm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/gpu/drm/i915/intel_runtime_pm.c +0 -0
index 82edba2..ac85482 100644

drivers/gpu/drm/i915/intel_runtime_pm.c static void vlv_display_power_well_deinit(struct drm_i915_private *dev_priv) · line 1143

Quoted 7 lines
drivers/gpu/drm/i915/intel_runtime_pm.c +3 -1
@@ -1138,7 +1138,9 @@ static void vlv_display_power_well_deinit(struct drm_i915_private *dev_priv)
 
 	intel_power_sequencer_reset(dev_priv);
 
-	intel_hpd_poll_init(dev_priv);
+	/* Prevent us from re-enabling polling on accident in late suspend */
+	if (!dev_priv->drm.dev->power.is_suspended)
+		intel_hpd_poll_init(dev_priv);

The flag would appear to get set between suspend and suspend_late, so looks like this should be sufficient for our purposes.

Quoted 1 line

Pushed to drm-intel-next-queued, thanks for the patch and review.

BR,
Jani.

Quoted 6 lines
Quoted 6 lines
drivers/gpu/drm/i915/intel_runtime_pm.c +0 -0
 }
 
 static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv,
Signature · 1 line
2.7.4
Signature · 5 lines
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
#3 lore raw

✓ Fi.CI.BAT: success for drm/i915/vlv: Prevent enabling hpd polling in late suspend

In reply to Lyude
== Series Details ==

== Series Details ==

Series: drm/i915/vlv: Prevent enabling hpd polling in late suspend
URL : https://patchwork.freedesktop.org/series/14420/
State : success

== Summary ==

Series 14420v1 drm/i915/vlv: Prevent enabling hpd polling in late suspend
https://patchwork.freedesktop.org/api/1.0/series/14420/revisions/1/mbox/

Test drv_module_reload_basic:

                dmesg-warn -> PASS       (fi-ilk-650)
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-a:
                dmesg-warn -> PASS       (fi-ilk-650)
fi-bdw-5557u     total:246  pass:231  dwarn:0   dfail:0   fail:0   skip:15 
fi-bsw-n3050     total:246  pass:204  dwarn:0   dfail:0   fail:0   skip:42 
fi-bxt-t5700     total:246  pass:216  dwarn:0   dfail:0   fail:0   skip:30 
fi-byt-j1900     total:246  pass:215  dwarn:0   dfail:0   fail:0   skip:31 
fi-byt-n2820     total:246  pass:211  dwarn:0   dfail:0   fail:0   skip:35 
fi-hsw-4770      total:246  pass:224  dwarn:0   dfail:0   fail:0   skip:22 
fi-hsw-4770r     total:246  pass:223  dwarn:0   dfail:0   fail:0   skip:23 
fi-ilk-650       total:246  pass:185  dwarn:0   dfail:0   fail:0   skip:61 
fi-ivb-3520m     total:246  pass:220  dwarn:0   dfail:0   fail:0   skip:26 
fi-ivb-3770      total:246  pass:220  dwarn:0   dfail:0   fail:0   skip:26 
fi-kbl-7200u     total:246  pass:222  dwarn:0   dfail:0   fail:0   skip:24 
fi-skl-6260u     total:246  pass:232  dwarn:0   dfail:0   fail:0   skip:14 
fi-skl-6700hq    total:246  pass:223  dwarn:0   dfail:0   fail:0   skip:23 
fi-skl-6700k     total:246  pass:222  dwarn:1   dfail:0   fail:0   skip:23 
fi-skl-6770hq    total:246  pass:232  dwarn:0   dfail:0   fail:0   skip:14 
fi-snb-2520m     total:246  pass:209  dwarn:0   dfail:0   fail:0   skip:37 
fi-snb-2600      total:246  pass:208  dwarn:0   dfail:0   fail:0   skip:38 

0eefa35311a3d85e6cbfda4bb326809581acc3b1 drm-intel-nightly: 2016y-10m-26d-17h-38m-29s UTC integration manifest c96a2cc drm/i915/vlv: Prevent enabling hpd polling in late suspend

Full results at https://intel-gfx-ci.01.org/CI/Patchwork_2828/

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_2828/
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx