linux/drivers/gpu/drm
Ben Widawsky 40521054fd drm/i915: context basic create & destroy
Invent an abstraction for a hw context which is passed around through
the core functions. The main bit a hw context holds is the buffer object
which backs the context. The rest of the members are just helper
functions. Specifically the ring member, which could likely go away if
we decide to never implement whatever other hw context support exists.

Of note here is the introduction of the 64k alignment constraint for the
BO. If contexts become heavily used, we should consider tweaking this
down to 4k. Until the contexts are merged and tested a bit though, I
think 64k is a nice start (based on docs).

Since we don't yet switch contexts, there is really not much complexity
here. Creation/destruction works pretty much as one would expect. An idr
is used to generate the context id numbers which are unique per file
descriptor.

v2: add DRM_DEBUG_DRIVERS to distinguish ENOMEM failures (ben)
convert a BUG_ON to WARN_ON, default destruction is still fatal (ben)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2012-06-14 17:36:16 +02:00
..
ast drm: update ast/cirrus/mgag200 for change in TTM api 2012-05-23 14:08:41 +01:00
cirrus drm: update ast/cirrus/mgag200 for change in TTM api 2012-05-23 14:08:41 +01:00
exynos Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-core-next 2012-05-22 10:39:57 +01:00
gma500 drm: Constify drm_mode_config_funcs pointer 2012-05-22 10:35:07 +01:00
i2c drm: add convenience function to create an range property 2012-02-09 10:15:25 +00:00
i810 kill mm argument of vm_munmap() 2012-04-21 01:58:20 -04:00
i915 drm/i915: context basic create & destroy 2012-06-14 17:36:16 +02:00
mga drm: move pci bus master enable into driver. 2012-02-16 18:31:07 +00:00
mgag200 drm: update ast/cirrus/mgag200 for change in TTM api 2012-05-23 14:08:41 +01:00
nouveau nouveau: add vmap support to nouveau prime support 2012-05-31 14:14:00 +01:00
r128 drm: move pci bus master enable into driver. 2012-02-16 18:31:07 +00:00
radeon radeon: add radeon prime vmap support. 2012-05-31 14:14:01 +01:00
savage drm: checking the wrong variable in savage_do_init_bci() 2012-05-17 11:42:27 +01:00
sis drm: move pci bus master enable into driver. 2012-02-16 18:31:07 +00:00
tdfx
ttm ttm: add prime sharing support to TTM (v2) 2012-05-23 10:46:27 +01:00
udl udl: support vmapping imported dma-bufs 2012-05-31 14:13:59 +01:00
via drm: move pci bus master enable into driver. 2012-02-16 18:31:07 +00:00
vmwgfx ttm: add prime sharing support to TTM (v2) 2012-05-23 10:46:27 +01:00
ati_pcigart.c
drm_agpsupport.c
drm_auth.c drm: Fix authentication kernel crash 2012-01-25 09:27:45 +00:00
drm_buffer.c
drm_bufs.c VM: add "vm_mmap()" helper function 2012-04-20 17:29:13 -07:00
drm_cache.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-04-12 10:27:01 +01:00
drm_context.c drm: Unify and fix idr error handling 2012-04-24 09:50:20 +01:00
drm_crtc_helper.c drm: Don't initialize local ret variable when not needed 2012-05-22 10:32:58 +01:00
drm_crtc.c drm: Use stdint types for consistency 2012-05-29 11:07:09 +01:00
drm_debugfs.c
drm_dma.c
drm_dp_i2c_helper.c
drm_drv.c drm: add generic ioctls to get/set properties on any object 2012-05-17 11:11:22 +01:00
drm_edid_load.c drm: Don't initialize local ret variable when not needed 2012-05-22 10:32:58 +01:00
drm_edid_modes.h drm: replace open-coded ARRAY_SIZE with macro 2012-04-20 13:12:16 +01:00
drm_edid.c drm/edid/quirks: ViewSonic VA2026w 2012-05-29 16:16:38 +01:00
drm_encoder_slave.c
drm_fb_helper.c drm: Make the CRTC gamma_set operation optional 2012-05-22 10:35:15 +01:00
drm_fops.c drm: Releasing FBs before releasing GEM objects during drm_release 2012-04-19 14:40:41 +01:00
drm_gem.c drm/prime: add exported buffers to current fprivs imported buffer list (v2) 2012-05-23 10:46:03 +01:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_ioc32.c drivers/gpu/drm/drm_ioc32.c: initialize all fields 2012-02-03 09:47:32 +00:00
drm_ioctl.c drm/prime: expose capability flags for userspace. 2012-05-18 11:12:16 +01:00
drm_irq.c drm: Don't initialize local ret variable when not needed 2012-05-22 10:32:58 +01:00
drm_lock.c drm: Don't initialize local ret variable when not needed 2012-05-22 10:32:58 +01:00
drm_memory.c drm: remove unused code 2012-02-29 10:18:29 +00:00
drm_mm.c
drm_modes.c drm: Add drm_mode_copy() 2012-03-15 09:52:51 +00:00
drm_pci.c drm: move pci bus master enable into driver. 2012-02-16 18:31:07 +00:00
drm_platform.c drm: cope with platformdev->id == -1 2012-03-07 14:03:40 +00:00
drm_prime.c drm/prime: add exported buffers to current fprivs imported buffer list (v2) 2012-05-23 10:46:03 +01:00
drm_proc.c
drm_scatter.c
drm_stub.c drm: Don't initialize local ret variable when not needed 2012-05-22 10:32:58 +01:00
drm_sysfs.c drm: Miscellaneous typo fixes and documentation updates 2012-05-22 10:34:33 +01:00
drm_trace_points.c
drm_trace.h
drm_usb.c drm/usb: fix module license on drm/usb layer. 2012-04-19 09:33:32 +01:00
drm_vm.c drm: pass dev to drm_vm_{open,close}_locked() 2012-05-11 17:37:46 +01:00
Kconfig drm/kms: driver for virtual cirrus under qemu 2012-05-17 11:02:24 +01:00
Makefile drm/kms: driver for virtual cirrus under qemu 2012-05-17 11:02:24 +01: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.


Documentation on the DRI is available from:
    http://dri.freedesktop.org/wiki/Documentation
    http://sourceforge.net/project/showfiles.php?group_id=387
    http://dri.sourceforge.net/doc/

For specific information about kernel-level support, see:

    The Direct Rendering Manager, Kernel Support for the Direct Rendering
    Infrastructure
    http://dri.sourceforge.net/doc/drm_low_level.html

    Hardware Locking for the Direct Rendering Infrastructure
    http://dri.sourceforge.net/doc/hardware_locking_low_level.html

    A Security Analysis of the Direct Rendering Infrastructure
    http://dri.sourceforge.net/doc/security_low_level.html