summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2019-10-01 08:42:26 +0000
committerjsg <jsg@openbsd.org>2019-10-01 08:42:26 +0000
commit6e0c5681854928b91d97ac7d84c9f481aa1033db (patch)
tree7bd4c601d494fa53ddb299d4824df76599b07a56
parentRevert "drm/amd/powerplay: Enable/Disable NBPSTATE on On/OFF of UVD" (diff)
downloadwireguard-openbsd-6e0c5681854928b91d97ac7d84c9f481aa1033db.tar.xz
wireguard-openbsd-6e0c5681854928b91d97ac7d84c9f481aa1033db.zip
drm: Flush output polling on shutdown
From Chris Wilson ff0fbfacc94f94afae61fd06f44a0d5ac199008c in linux 4.19.y/4.19.76 3b295cb1a411d9c82bbfaa66bc17a8508716ed07 in mainline linux
-rw-r--r--sys/dev/pci/drm/drm_probe_helper.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/pci/drm/drm_probe_helper.c b/sys/dev/pci/drm/drm_probe_helper.c
index 5cbd1f54d71..4b0e02e37e2 100644
--- a/sys/dev/pci/drm/drm_probe_helper.c
+++ b/sys/dev/pci/drm/drm_probe_helper.c
@@ -585,6 +585,9 @@ static void output_poll_execute(struct work_struct *work)
enum drm_connector_status old_status;
bool repoll = false, changed;
+ if (!dev->mode_config.poll_enabled)
+ return;
+
/* Pick up any changes detected by the probe functions. */
changed = dev->mode_config.delayed_event;
dev->mode_config.delayed_event = false;
@@ -741,7 +744,11 @@ EXPORT_SYMBOL(drm_kms_helper_poll_init);
*/
void drm_kms_helper_poll_fini(struct drm_device *dev)
{
- drm_kms_helper_poll_disable(dev);
+ if (!dev->mode_config.poll_enabled)
+ return;
+
+ dev->mode_config.poll_enabled = false;
+ cancel_delayed_work_sync(&dev->mode_config.output_poll_work);
}
EXPORT_SYMBOL(drm_kms_helper_poll_fini);