drm/nouveau: Don't pm_runtime_put_sync(), only pm_runtime_put_autosuspend()
authorLyude Paul <lyude@redhat.com>
Thu, 14 Jul 2022 17:42:34 +0000 (13:42 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:22:53 +0000 (14:22 +0200)
commit c96cfaf8fc02d4bb70727dfa7ce7841a3cff9be2 upstream.

While trying to fix another issue, it occurred to me that I don't actually
think there is any situation where we want pm_runtime_put() in nouveau to
be synchronous. In fact, this kind of just seems like it would cause
issues where we may unexpectedly block a thread we don't expect to be
blocked.

So, let's only use pm_runtime_put_autosuspend().

Changes since v1:
* Use pm_runtime_put_autosuspend(), not pm_runtime_put()

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: David Airlie <airlied@linux.ie>
Fixes: 3a6536c51d5d ("drm/nouveau: Intercept ACPI_VIDEO_NOTIFY_PROBE")
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: <stable@vger.kernel.org> # v4.10+
Link: https://patchwork.freedesktop.org/patch/msgid/20220714174234.949259-3-lyude@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/nouveau/nouveau_fbcon.c

index 929de41c281f278f1ecb8f3058bc42934bfe1c07..bee004da906f6d944838dbad79794d105fc5cf01 100644 (file)
@@ -518,7 +518,7 @@ nouveau_display_hpd_work(struct work_struct *work)
 
        pm_runtime_mark_last_busy(drm->dev->dev);
 noop:
-       pm_runtime_put_sync(drm->dev->dev);
+       pm_runtime_put_autosuspend(dev->dev);
 }
 
 #ifdef CONFIG_ACPI
index 4f9b3aa5deda9942d2759df40d44751f31e7ecc4..20ac1ce2c0f144621e91c8f179840c4aeb5bb372 100644 (file)
@@ -466,7 +466,7 @@ nouveau_fbcon_set_suspend_work(struct work_struct *work)
        if (state == FBINFO_STATE_RUNNING) {
                nouveau_fbcon_hotplug_resume(drm->fbcon);
                pm_runtime_mark_last_busy(drm->dev->dev);
-               pm_runtime_put_sync(drm->dev->dev);
+               pm_runtime_put_autosuspend(drm->dev->dev);
        }
 }