• Ville Syrjälä's avatar
    drm/i915: Shut down displays gracefully on reboot · fe0f1e3b
    Ville Syrjälä authored
    Implement the pci .shutdown() hook in order to quiesce the
    hardware prior to reboot. The main purpose here is to turn
    all displays off. Some displays/other drivers tend to get
    confused if the state after reboot isn't exactly as they
    expected.
    
    One specific example was the Dell UP2414Q in MST mode.
    It would require me to pull the power cord after a reboot
    or else it would just not come back to life. Sadly I don't
    have that at hand anymore so not sure if it's still
    misbehaving without the graceful shutdown, or if we
    managed to fix something else since I last tested it.
    
    For good measure we do a gem suspend as well, so that
    we match the suspend flow more closely. Also stopping
    all DMA and whatnot is probably a good idea for kexec.
    I would expect that some kind of GT reset happens on
    normal reboot so probably not totally necessary there.
    
    v2: Use the pci .shutdown() hook instead of a reboot notifier (Lukas)
        Do the gem suspend for kexec (Chris)
    
    Cc: Lukas Wunner <lukas@wunner.de>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201001151640.14590-1-ville.syrjala@linux.intel.comReviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    fe0f1e3b
i915_drv.c 50 KB