@@ -986,7 +986,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
986
986
987
987
intel_dp_mst_suspend (display );
988
988
989
- intel_irq_suspend (i915 );
989
+ intel_encoder_block_all_hpds (display );
990
+
990
991
intel_hpd_cancel_work (display );
991
992
992
993
if (HAS_DISPLAY (i915 ))
@@ -995,6 +996,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
995
996
intel_encoder_suspend_all (display );
996
997
intel_encoder_shutdown_all (display );
997
998
999
+ intel_irq_suspend (i915 );
1000
+
998
1001
intel_dmc_suspend (display );
999
1002
1000
1003
i915_gem_suspend (i915 );
@@ -1069,14 +1072,17 @@ static int i915_drm_suspend(struct drm_device *dev)
1069
1072
1070
1073
intel_display_driver_suspend (display );
1071
1074
1072
- intel_irq_suspend (dev_priv );
1075
+ intel_encoder_block_all_hpds (display );
1076
+
1073
1077
intel_hpd_cancel_work (display );
1074
1078
1075
1079
if (HAS_DISPLAY (dev_priv ))
1076
1080
intel_display_driver_suspend_access (display );
1077
1081
1078
1082
intel_encoder_suspend_all (display );
1079
1083
1084
+ intel_irq_suspend (dev_priv );
1085
+
1080
1086
/* Must be called before GGTT is suspended. */
1081
1087
intel_dpt_suspend (display );
1082
1088
i915_ggtt_suspend (to_gt (dev_priv )-> ggtt );
@@ -1233,6 +1239,8 @@ static int i915_drm_resume(struct drm_device *dev)
1233
1239
1234
1240
intel_hpd_init (display );
1235
1241
1242
+ intel_encoder_unblock_all_hpds (display );
1243
+
1236
1244
intel_display_driver_resume (display );
1237
1245
1238
1246
if (HAS_DISPLAY (dev_priv )) {
0 commit comments