Re: [PATCH 2/2] drm/i915: Disable active links before rebooting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 15 May 2019, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote:
> Certain monitors, e.g. Dell, do not like it when we reboot with an
> active link, leaving them in a confused state where they refuse to
> renegotiate the link after the reboot. If we hook into the reboot
> notifier, we can switch off any active link before rebooting, leaving
> everything in a consistent, hopefully happy, state.
>
> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/i915_pci.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index 401eb6c71ae1..7b2dc8d66f35 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -26,6 +26,7 @@
>  #include <linux/vgaarb.h>
>  #include <linux/vga_switcheroo.h>
>  
> +#include <drm/drm_atomic_helper.h>
>  #include <drm/drm_drv.h>
>  
>  #include "i915_drv.h"
> @@ -909,6 +910,9 @@ static void i915_pci_shutdown(struct pci_dev *pdev)
>  	/* Cancel any outstanding rendering */
>  	if (READ_ONCE(i915->gt.awake))
>  		i915_gem_set_wedged(i915);
> +
> +	/* Disable active links to avoid confusing certain (Dell) monitors */
> +	drm_atomic_helper_shutdown(&i915->drm);

I think we could use this to replace edp_notify_handler(). But the above
alone is not enough because it won't do the wait, as we do the waits in
enable, and after boot we've lost track of when the last disable was.

BR,
Jani.

>  }
>  
>  static struct pci_driver i915_pci_driver = {

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux