drm/linux-core
Jerome Glisse a7e6ca62ad Merge branch 'modesetting-101' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 2008-03-10 23:36:27 +01: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: remove TTM from an earlier merge 2008-02-26 23:30:45 +01:00
README.drm Fix some outdated URLs, remove others. 2007-02-12 15:45:51 -05:00
ati_pcigart.c drm: Fix for non-coherent DMA PowerPC 2008-03-05 19:25:03 +10:00
drm.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
drmP.h drm: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +10:00
drm_agpsupport.c drm: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +10:00
drm_auth.c start moving over to proper hierarchy wrt master accesses 2008-02-13 16:30:15 +10:00
drm_bo.c Merge branch 'master' of ../../drm into modesetting-101 2008-03-07 11:59:21 +11:00
drm_bo_lock.c drm: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +10:00
drm_bo_move.c Merge remote branch 'origin/master' into modesetting-101 2008-03-05 10:37:02 +10:00
drm_bufs.c various fixes from trying to get userspace started 2008-02-15 16:15:04 +10:00
drm_compat.c fixup previous merge 2008-03-05 15:28:59 +10:00
drm_compat.h Merge branch 'master' of ../../drm into modesetting-101 2008-03-07 11:59:21 +11:00
drm_context.c start moving over to proper hierarchy wrt master accesses 2008-02-13 16:30:15 +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 make startup of Xorg smoother if the mode doesn't change. 2008-03-07 13:03:42 +11:00
drm_crtc.h Implement short circuit for base change only 2008-02-26 15:19:34 +00: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/ttm: add ioctl to get back memory managed area sized 2008-03-06 05:31:50 +10:00
drm_edid.c Check mode before adding to EDID 2008-03-05 10:35:46 +00: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: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +10:00
drm_fops.c drm: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +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 start moving over to proper hierarchy wrt master accesses 2008-02-13 16:30:15 +10:00
drm_irq.c drm/modesetting: fixup irq removal on exit 2008-03-07 12:15:38 +11:00
drm_lock.c start moving over to proper hierarchy wrt master accesses 2008-02-13 16:30:15 +10: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 drm: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +10:00
drm_objects.h ttm: make sure userspace can't destroy kernel create memory managers 2008-03-06 05:37:54 +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: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +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: Fix for non-coherent DMA PowerPC 2008-03-05 19:25:03 +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 worst merge effort ever 2008-03-07 12:25:26 +11:00
drm_sysfs.c drm: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +10:00
drm_ttm.c Clarify through the names what drm_ttm_alloc_pages() and friend actually did. 2008-03-04 13:40:46 -08:00
drm_vm.c drm: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +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 drm: reorganise minor number handling using code from modesetting branch 2008-03-06 05:21:50 +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 drm: fixup compat with old x.org drivers 2008-03-05 15:28:38 +10:00
i915_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01:00
i915_fence.c Fix up conflicts for DRI2 (untested) 2008-02-19 15:17:24 +00: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 DRM_INFO -> DRM_DEBUG 2008-02-26 15:21:44 +00:00
intel_drv.h i915: initial (and untested) TV out support 2008-02-15 16:13:21 -08:00
intel_fb.c drm: we already worked out the pitch. multiplying by 4 is just madness.. 2008-03-07 17:09:51 +11: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
intel_tv.c i915: initial (and untested) TV out support 2008-02-15 16:13:21 -08: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 Simplify the fencing code and differentiate between flushes and 2008-01-30 22:06:02 +01: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 Simplify the fencing code and differentiate between flushes and 2008-01-30 22:06:02 +01: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_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 radeon: remove TTM from an earlier merge 2008-02-26 23:30:45 +01:00
radeon_drv.h Track linux-core symlinks in git. 2006-12-01 10:37:55 +01: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 rradeon_ms: rework fence code and bring radeon ms up to date 2008-03-10 23:35:07 +01: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 rradeon_ms: rework fence code and bring radeon ms up to date 2008-03-10 23:35:07 +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' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 2008-02-18 22:35:46 +00: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 Simplify the fencing code and differentiate between flushes and 2008-01-30 22:06:02 +01: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 Simplify the fencing code and differentiate between flushes and 2008-01-30 22:06:02 +01: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.