* device interrupts are disabled.
         */
        void (*suspend)(struct intel_encoder *);
+       /*
+        * Called during system reboot/shutdown after all the
+        * encoders have been disabled and suspended.
+        */
+       void (*shutdown)(struct intel_encoder *encoder);
        enum hpd_pin hpd_pin;
        enum intel_display_power_domain power_domain;
        /* for communication with audio component; protected by av_mutex */
 
        drm_modeset_unlock_all(dev);
 }
 
+static void intel_shutdown_encoders(struct drm_i915_private *dev_priv)
+{
+       struct drm_device *dev = &dev_priv->drm;
+       struct intel_encoder *encoder;
+
+       drm_modeset_lock_all(dev);
+       for_each_intel_encoder(dev, encoder)
+               if (encoder->shutdown)
+                       encoder->shutdown(encoder);
+       drm_modeset_unlock_all(dev);
+}
+
 void i915_driver_shutdown(struct drm_i915_private *i915)
 {
        i915_gem_suspend(i915);
        intel_hpd_cancel_work(i915);
 
        intel_suspend_encoders(i915);
+       intel_shutdown_encoders(i915);
 }
 
 static bool suspend_to_idle(struct drm_i915_private *dev_priv)