Re: [Nouveau] [PATCH v5 07/13] drm/nouveau: Add missing unroll functions in nouveau_do_suspend()

From: Karol Herbst
Date: Fri Aug 10 2018 - 17:36:57 EST


Reviewed-by: Karol Herbst <kherbst@xxxxxxxxxx>

On Tue, Aug 7, 2018 at 10:39 PM, Lyude Paul <lyude@xxxxxxxxxx> 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@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Cc: Lukas Wunner <lukas@xxxxxxxxx>
> Cc: Karol Herbst <karolherbst@xxxxxxxxx>
> ---
> 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@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/nouveau