drm/linux-core
Dave Airlie f276c845bd drm: re-write minor number allocation to use an idr.
Fixup the minor number allocation scheme to use an idr and move the control
nodes up higher.
2008-02-13 12:12:52 +10:00
..
.gitignore linux-core: Make git ignore generated module symbol version files. 2007-01-02 10:02:44 +01:00
Config.in Added via driver to drm/linux/Config.in Reported by: Terry Barnaby 2004-03-26 13:42:48 +00:00
Doxyfile Update Doxygen configuration & comments. 2004-10-18 14:16:41 +00:00
Kconfig Remove old i830 kernel driver. 2007-03-19 11:46:35 +00:00
Makefile Made radeon_ms not always compile 2008-01-18 15:00:31 +01:00
Makefile.kernel radeon_ms: add rom parsing & adapt code 2008-01-15 14:17:05 +01:00
README.drm Fix some outdated URLs, remove others. 2007-02-12 15:45:51 -05:00
ati_pcigart.c Add missing round_jiffies_relative() for older kernels 2008-02-05 10:10:36 +00:00
drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
drmP.h drm: re-write minor number allocation to use an idr. 2008-02-13 12:12:52 +10:00
drm_agpsupport.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
drm_auth.c drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
drm_bo.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
drm_bo_lock.c drm: move drm_head to drm_minor and fix up users 2008-01-04 16:12:24 +11:00
drm_bo_move.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
drm_bufs.c Don't free driver mapped locks 2007-12-04 14:38:00 -08:00
drm_compat.c Add missing round_jiffies_relative() for older kernels 2008-02-05 10:10:36 +00:00
drm_compat.h Add missing round_jiffies_relative() for older kernels 2008-02-05 10:10:36 +00:00
drm_context.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
drm_core.h Add support for secondary vertical blank interrupt to DRM core. 2006-09-29 12:55:08 +02:00
drm_crtc.c Added kernel part of hotplug ioctl 2008-02-07 19:24:58 +01:00
drm_crtc.h Added kernel part of hotplug ioctl 2008-02-07 19:24:58 +01:00
drm_dma.c drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
drm_drawable.c Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-07-20 18:16:42 -07:00
drm_drv.c drm: re-write minor number allocation to use an idr. 2008-02-13 12:12:52 +10:00
drm_edid.c remove output names 2007-12-18 17:41:20 +11:00
drm_edid.h Finish bringing in LVDS code, re-add to Makefile. Needed other changes too: 2007-04-10 09:47:37 -07:00
drm_fb.c Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 2007-05-18 09:42:51 -07:00
drm_fence.c drm: move drm_head to drm_minor and fix up users 2008-01-04 16:12:24 +11:00
drm_fops.c drm: re-write minor number allocation to use an idr. 2008-02-13 12:12:52 +10:00
drm_hashtab.c drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
drm_hashtab.h drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
drm_internal.h Add new shared header file drm_internal.h. 2007-11-14 14:28:34 -05:00
drm_ioc32.c Fix ioc32 compat layer 2007-09-18 11:03:08 -07:00
drm_ioctl.c drm: more cleanups 2007-11-29 09:38:21 +10:00
drm_irq.c if irq already enabled well just keep trucking 2008-01-25 16:34:05 +10:00
drm_lock.c Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-07-20 18:16:42 -07:00
drm_memory.c drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
drm_memory.h drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
drm_memory_debug.c Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-07-20 18:16:42 -07:00
drm_memory_debug.h Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-07-20 18:16:42 -07:00
drm_mm.c Modesetting Hotplug 2007-12-18 02:21:08 +01:00
drm_modes.c add flags to mode debug print 2007-12-03 15:30:05 +10:00
drm_object.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
drm_objects.h Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
drm_os_linux.h drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
drm_pci.c drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
drm_proc.c drm: re-write minor number allocation to use an idr. 2008-02-13 12:12:52 +10:00
drm_regman.c drm: cleanup drm_regman.c coding style 2007-11-22 13:29:17 +10:00
drm_sarea.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
drm_scatter.c drm: cleanup DRM_DEBUG() parameters 2008-01-03 16:56:04 +10:00
drm_sman.c drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
drm_sman.h drm: remove hashtab/sman and object typedefs 2007-07-16 12:48:44 +10:00
drm_stub.c drm: re-write minor number allocation to use an idr. 2008-02-13 12:12:52 +10:00
drm_sysfs.c drm: re-write minor number allocation to use an idr. 2008-02-13 12:12:52 +10:00
drm_ttm.c Use dummy_read_page for unpopulated kernel-allocated ttm pages. 2007-12-21 12:16:29 -08:00
drm_vm.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
ffb_context.c Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-07-20 18:16:42 -07:00
ffb_drv.c Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-07-20 18:16:42 -07:00
ffb_drv.h drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
i810_dma.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
i810_drm.h drm: remove XFREE86_VERSION macros 2007-08-28 15:17:36 +10:00
i810_drv.c remove config.h from build no longer exists kbuild does it 2006-10-14 23:38:20 +10:00
i810_drv.h drm: cleanup DRM_DEBUG() parameters 2008-01-03 16:56:04 +10:00
i915_buffer.c build fix for older kernels 2008-02-05 10:11:24 +00:00
i915_compat.c i915/flush: get the ret the right way around 2008-01-23 16:45:09 +10:00
i915_dma.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
i915_drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
i915_drv.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
i915_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
i915_fence.c Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 2007-11-06 10:01:52 +01:00
i915_init.c Move i915 init code to new file, i915_init.c, and create a new high level 2007-04-10 10:31:10 -07:00
i915_ioc32.c i915: return fence argument from i915_execbuffer ioctl32 routine 2007-12-26 17:13:58 +08:00
i915_irq.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
i915_mem.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
imagine_drv.c remove config.h from build no longer exists kbuild does it 2006-10-14 23:38:20 +10:00
intel_crt.c fix some warnings 2008-02-05 10:11:46 +00:00
intel_display.c Fix for cursor off 2008-01-30 16:16:10 +01:00
intel_drv.h Added cursor support 2008-01-28 03:14:56 +01:00
intel_fb.c fix some warnings 2008-02-05 10:11:46 +00:00
intel_i2c.c Add some more checks to modelist walking for matching 2007-09-27 14:21:03 +01:00
intel_lvds.c remove output names 2007-12-18 17:41:20 +11:00
intel_modes.c add property blobs and edid reporting support 2007-12-06 10:44:51 +10:00
intel_sdvo.c Merge branch 'modesetting-airlied' into modesetting-101 2007-12-18 19:18:21 +11:00
intel_sdvo_regs.h Fix SDVO outputs 2007-04-17 16:09:40 +01:00
linux Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mach64_dma.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mach64_drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mach64_drv.c Merge branch 'master' into vblank-rework, including mach64 support 2008-01-22 09:42:37 -08:00
mach64_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mach64_irq.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mach64_state.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mga_dma.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mga_drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mga_drv.c Merge branch 'master' into vblank-rework, including mach64 support 2008-01-22 09:42:37 -08:00
mga_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mga_ioc32.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
mga_irq.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mga_state.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mga_ucode.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
mga_warp.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
nouveau_buffer.c Rename inappropriately named 'mask' fields to 'proposed_flags' instead. 2007-12-21 12:16:29 -08:00
nouveau_dma.c nouveau: ouch, add nouveau_dma.[ch] files.. 2007-08-06 22:32:36 +10:00
nouveau_dma.h nouveau: ouch, add nouveau_dma.[ch] files.. 2007-08-06 22:32:36 +10:00
nouveau_drm.h add nouveau symlinks via git 2006-12-20 10:28:55 +11:00
nouveau_drv.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
nouveau_drv.h add nouveau symlinks via git 2006-12-20 10:28:55 +11:00
nouveau_fence.c nouveau: store user control reg offsets in channel struct 2007-11-14 04:09:53 +11:00
nouveau_fifo.c Revert "nouveau: Fill in context_init for nv10-nv3x." 2007-01-10 15:19:47 +11:00
nouveau_ioc32.c remove include of linux ioctl32.h from drm drivers 2007-06-05 18:16:44 +10:00
nouveau_irq.c add nouveau symlinks via git 2006-12-20 10:28:55 +11:00
nouveau_mem.c add nouveau symlinks via git 2006-12-20 10:28:55 +11:00
nouveau_notifier.c nouveau: Nuke DMA_OBJECT_INIT ioctl (bumps interface to 0.0.7) 2007-06-28 03:26:43 +10:00
nouveau_object.c add nouveau symlinks via git 2006-12-20 10:28:55 +11:00
nouveau_reg.h add nouveau symlinks via git 2006-12-20 10:28:55 +11:00
nouveau_sgdma.c nv50: use dummy page in gart tables 2008-01-07 17:09:00 +11:00
nouveau_state.c add nouveau symlinks via git 2006-12-20 10:28:55 +11:00
nouveau_swmthd.c nouveau: mandatory "oops I forgot half of the files" commit 2007-10-12 22:40:08 +02:00
nouveau_swmthd.h nouveau: mandatory "oops I forgot half of the files" commit 2007-10-12 22:40:08 +02:00
nv04_fb.c nouveau: move card initialisation into the drm 2007-03-26 20:59:37 +10:00
nv04_fifo.c nouveau: NV04 PFIFO engtab functions 2007-06-24 18:57:09 +10:00
nv04_graph.c nouveau: add missing nv04_graph.c symlink. 2007-02-03 06:02:12 +01:00
nv04_instmem.c nouveau/nv50: Initial channel/object support 2007-07-09 16:16:44 +10:00
nv04_mc.c nouveau: move card initialisation into the drm 2007-03-26 20:59:37 +10:00
nv04_timer.c nouveau: move card initialisation into the drm 2007-03-26 20:59:37 +10:00
nv10_fb.c nouveau: move card initialisation into the drm 2007-03-26 20:59:37 +10:00
nv10_fifo.c nouveau: NV1X/2X/3X PFIFO engtab functions 2007-06-24 18:58:14 +10:00
nv10_graph.c nouveau: first step to make graph ctx works 2007-01-13 21:44:50 +01:00
nv20_graph.c nouveau: rename nv30_graph.c to nv20_graph.c 2007-09-30 22:16:01 +03:00
nv40_fb.c nouveau: move card initialisation into the drm 2007-03-26 20:59:37 +10:00
nv40_fifo.c nouveau: NV4X PFIFO engtab functions 2007-06-24 18:56:01 +10:00
nv40_graph.c nouveau: Add nv40-specific PGRAPH code, not hooked up yet. 2007-01-02 14:52:43 +11:00
nv40_mc.c nouveau: move card initialisation into the drm 2007-03-26 20:59:37 +10:00
nv50_fifo.c nouveau/nv50: skeletal backend 2007-06-28 03:26:43 +10:00
nv50_graph.c nouveau/nv50: skeletal backend 2007-06-28 03:26:43 +10:00
nv50_instmem.c nouveau/nv50: Initial channel/object support 2007-07-09 16:16:44 +10:00
nv50_mc.c nouveau/nv50: skeletal backend 2007-06-28 03:26:43 +10:00
nv_drv.c remove config.h from build no longer exists kbuild does it 2006-10-14 23:38:20 +10:00
nv_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
r128_cce.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
r128_drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
r128_drv.c Merge branch 'master' into vblank-rework, fixup remaining drivers 2007-10-30 12:52:46 -07:00
r128_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
r128_ioc32.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
r128_irq.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
r128_state.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
r300_cmdbuf.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
r300_reg.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
radeon_buffer.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
radeon_cp.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
radeon_drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
radeon_drv.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
radeon_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
radeon_fence.c Merge branch 'radeon-ttm' of git://people.freedesktop.org/~airlied/drm into modesetting-101 2007-10-28 00:55:27 +02:00
radeon_ioc32.c drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
radeon_irq.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
radeon_mem.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
radeon_ms.h radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_bo.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_bus.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_combios.c radeon_ms: add rom parsing & adapt code 2008-01-15 14:17:05 +01:00
radeon_ms_combios.h radeon_ms: add rom parsing & adapt code 2008-01-15 14:17:05 +01:00
radeon_ms_compat.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_cp.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_cp_mc.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_crtc.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_dac.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_drm.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_drm.h radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_drv.c Merge remote branch 'origin/master' into modesetting-101 2008-01-25 15:27:53 +10:00
radeon_ms_drv.h radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_exec.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_family.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_fb.c radeon_ms: fix fbcon by fixing palette 2007-12-06 23:36:58 +01:00
radeon_ms_fence.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_gpu.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_i2c.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_irq.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_output.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_properties.c radeon_ms: add rom parsing & adapt code 2008-01-15 14:17:05 +01:00
radeon_ms_properties.h radeon_ms: add rom parsing & adapt code 2008-01-15 14:17:05 +01:00
radeon_ms_reg.h radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_ms_rom.c radeon_ms: add rom parsing & adapt code 2008-01-15 14:17:05 +01:00
radeon_ms_rom.h radeon_ms: add rom parsing & adapt code 2008-01-15 14:17:05 +01:00
radeon_ms_state.c radeon_ms: radeon modesetting first commit. 2007-12-04 23:03:12 +01:00
radeon_state.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
savage_bci.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
savage_drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
savage_drv.c remove config.h from build no longer exists kbuild does it 2006-10-14 23:38:20 +10:00
savage_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
savage_state.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
sis_drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
sis_drv.c Remove DRM_ERR OS macro. 2007-07-20 12:53:52 -07:00
sis_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
sis_mm.c drm: cleanup DRM_DEBUG() parameters 2008-01-03 16:56:04 +10:00
tdfx_drv.c remove config.h from build no longer exists kbuild does it 2006-10-14 23:38:20 +10:00
tdfx_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_3d_reg.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_buffer.c Rename inappropriately named 'mask' fields to 'proposed_flags' instead. 2007-12-21 12:16:29 -08:00
via_dma.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_dmablit.c drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
via_dmablit.h drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
via_drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_drv.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_fence.c Merge branch 'master' into pre-superioctl-branch 2007-09-25 18:03:31 +02:00
via_irq.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_map.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_mm.c drm: cleanup DRM_DEBUG() parameters 2008-01-03 16:56:04 +10:00
via_verifier.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_verifier.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
via_video.c Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
xgi_cmdlist.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
xgi_cmdlist.h Implement fence support. 2007-08-15 21:05:26 -07:00
xgi_drm.h Move types shared with user mode to xgi_drm.h. 2007-07-09 16:33:14 -07:00
xgi_drv.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
xgi_drv.h drm: major whitespace/coding style realignment with kernel 2007-11-22 16:10:36 +10:00
xgi_fb.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
xgi_fence.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
xgi_ioc32.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
xgi_misc.c drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
xgi_misc.h drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00
xgi_pcie.c Fix command list submission on big-endian. 2007-10-10 15:25:47 -07:00
xgi_regs.h drm: remove lots of spurious whitespace. 2007-11-05 12:42:22 +10:00

README.drm

************************************************************
* For the very latest on DRI development, please see:      *
*     http://dri.freedesktop.org/                          *
************************************************************

The Direct Rendering Manager (drm) is a device-independent kernel-level
device driver that provides support for the XFree86 Direct Rendering
Infrastructure (DRI).

The DRM supports the Direct Rendering Infrastructure (DRI) in four major
ways:

    1. The DRM provides synchronized access to the graphics hardware via
       the use of an optimized two-tiered lock.

    2. The DRM enforces the DRI security policy for access to the graphics
       hardware by only allowing authenticated X11 clients access to
       restricted regions of memory.

    3. The DRM provides a generic DMA engine, complete with multiple
       queues and the ability to detect the need for an OpenGL context
       switch.

    4. The DRM is extensible via the use of small device-specific modules
       that rely extensively on the API exported by the DRM module.