[Nouveau] [PATCH v5 07/13] drm/nouveau: Add missing unroll functions in nouveau_do_suspend()
Karol Herbst
kherbst at redhat.com
Fri Aug 10 21:36:52 UTC 2018
Reviewed-by: Karol Herbst <kherbst at redhat.com>
On Tue, Aug 7, 2018 at 10:39 PM, Lyude Paul <lyude at redhat.com> wrote:
> Currently, it appears that nouveau_do_suspend() forgets to roll back
> suspending fbcon and suspending the device LEDs. We also currently skip
> the entire rollback process if nouveau_display_suspend() fails. So, fix
> that.
>
> Signed-off-by: Lyude Paul <lyude at redhat.com>
> Cc: stable at vger.kernel.org
> Cc: Lukas Wunner <lukas at wunner.de>
> Cc: Karol Herbst <karolherbst at gmail.com>
> ---
> drivers/gpu/drm/nouveau/nouveau_drm.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 5ea8fe992484..db56e9b6b6af 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -674,10 +674,11 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime)
> if (dev->mode_config.num_crtc) {
> NV_DEBUG(drm, "suspending console...\n");
> nouveau_fbcon_set_suspend(dev, 1);
> +
> NV_DEBUG(drm, "suspending display...\n");
> ret = nouveau_display_suspend(dev, runtime);
> if (ret)
> - return ret;
> + goto fail_fbcon;
> }
>
> NV_DEBUG(drm, "evicting buffers...\n");
> @@ -719,7 +720,14 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime)
> if (dev->mode_config.num_crtc) {
> NV_DEBUG(drm, "resuming display...\n");
> nouveau_display_resume(dev, runtime);
> +
> +fail_fbcon:
> + NV_DEBUG(drm, "resuming console...\n");
> + nouveau_fbcon_set_suspend(dev, 0);
> }
> +
> + nouveau_led_resume(dev);
> +
> return ret;
> }
>
> --
> 2.17.1
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau
More information about the dri-devel
mailing list