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