Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/riastradh-drm2]: src/sys/external/bsd/drm2/dist/drm/i915 Kludgily work a...



details:   https://anonhg.NetBSD.org/src/rev/8fa8663ed7d1
branches:  riastradh-drm2
changeset: 788337:8fa8663ed7d1
user:      riastradh <riastradh%NetBSD.org@localhost>
date:      Wed Jul 24 03:19:18 2013 +0000

description:
Kludgily work around flush_workqueue in i915_driver_unload.

diffstat:

 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c |  15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diffs (26 lines):

diff -r 79cb3e2906a0 -r 8fa8663ed7d1 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c
--- a/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c    Wed Jul 24 03:19:02 2013 +0000
+++ b/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c    Wed Jul 24 03:19:18 2013 +0000
@@ -1863,7 +1863,22 @@
 
        if (drm_core_check_feature(dev, DRIVER_MODESET)) {
                /* Flush any outstanding unpin_work. */
+#ifdef __NetBSD__
+               /*
+                * XXX Keep this updated!  (XXX How?)
+                * (XXX Well, do work queues for real...)
+                */
+               cancel_delayed_work_sync(&dev_priv->mm.retire_work);
+               cancel_work_sync(&dev_priv->l3_parity.error_work);
+               cancel_work_sync(&dev_priv->rps.work);
+               cancel_work_sync(&dev_priv->hotplug_work);
+               cancel_work_sync(&dev_priv->error_work);
+#  if 0                                /* XXX How do we get the CRTCs? */
+               cancel_work_sync(&...intel_crtc->unpin_work);
+#  endif
+#else
                flush_workqueue(dev_priv->wq);
+#endif
 
                mutex_lock(&dev->struct_mutex);
                i915_gem_free_all_phys_object(dev);



Home | Main Index | Thread Index | Old Index