Helps to commit all my changes to drm_cache.c.
Use pmap_enter_default, not pmap_enter.

Seems to be a problem with modules referring to weak aliases?
Hook up the i915_gem uvm pager ops.
Use the _unlocked variant of unreference in drm_gem_pager_detach.
Shift the GTT size by twenty only once.
Use -Wno-shadow, not a cpp kludge, for drm_crtc.c's local min/max.
Buncha new cruft for <linux/*.h>.
Add missing includes to intel_pm.c.
Adapt intel_pm.c to NetBSD.  Drop stubs.
Fix a bunch of i915 error branches.

Some of these fixes are necessary only on NetBSD because we require
mutex_destroy, while Linux doesn't.
Implement destroy_completion in <linux/completion.h>.
More little error branch cleanup.
Destroy the mutex too in destroy_completion.
More error branch cleanup.
Fix result of DRM_TIMED_WAIT_UNTIL.

This has to return a positive number of ticks left if we haven't
timed out in order to match the semantics of Linux waitqueues.

This also fixes the amount of time for timeout if we ever wait for
more than one iteration.

Now we can actually wait for results from the ring buffers!
Use dev->struct_mutex, not drm_global_mutex, for ring->irq_queue.
The bus_dmamap_load_raw got moved to i915_gem_gtt but not committed.
Check that GEM wired pages use at most 40 bits of physical addresses.

Can't express this constraint to uvm_obj_wirepages at the moment, so
at least fail early and noisily if we violate it.
Remove #ifdef __NetBSD__ from const fixes in dvo_ch7xxx.c.
Add Linux ATOMIC_INIT, atomic_inc_return, and atomic_dec_return.