linux/drivers/gpu/drm
Dave Airlie f453ba0460 DRM: add mode setting support
Add mode setting support to the DRM layer.

This is a fairly big chunk of work that allows DRM drivers to provide
full output control and configuration capabilities to userspace.  It was
motivated by several factors:
  - the fb layer's APIs aren't suited for anything but simple
    configurations
  - coordination between the fb layer, DRM layer, and various userspace
    drivers is poor to non-existent (radeonfb excepted)
  - user level mode setting drivers makes displaying panic & oops
    messages more difficult
  - suspend/resume of graphics state is possible in many more
    configurations with kernel level support

This commit just adds the core DRM part of the mode setting APIs.
Driver specific commits using these new structure and APIs will follow.

Co-authors: Jesse Barnes <jbarnes@virtuousgeek.org>, Jakob Bornecrantz <jakob@tungstengraphics.com>
Contributors: Alan Hourihane <alanh@tungstengraphics.com>, Maarten Maathuis <madman2003@gmail.com>

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2008-12-29 17:47:23 +10:00
..
i810 drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
i830 drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
i915 drm/i915: add GEM GTT mapping support 2008-12-29 17:47:23 +10:00
mga drm: move drm vblank initialization/cleanup to driver load/unload 2008-11-25 09:49:03 +10:00
r128 drm: move drm vblank initialization/cleanup to driver load/unload 2008-11-25 09:49:03 +10:00
radeon drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
savage drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
sis SiS DRM: fix a pointer cast warning 2008-10-18 07:10:10 +10:00
tdfx drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
via drm: move drm vblank initialization/cleanup to driver load/unload 2008-11-25 09:49:03 +10:00
ati_pcigart.c drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
drm_agpsupport.c i915: Map status page cached for chips with GTT-based HWS location. 2008-10-18 07:10:53 +10:00
drm_auth.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
drm_bufs.c drm: GEM mmap support 2008-12-29 17:47:22 +10:00
drm_cache.c drm: wbinvd is cache coherent. 2008-10-18 07:10:53 +10:00
drm_context.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
drm_crtc_helper.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_crtc.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_dma.c drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
drm_drawable.c drm: Avoid oops in DRM_IOCTL_RM_DRAW if a bad handle is supplied. 2008-10-23 13:46:54 +10:00
drm_drv.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_edid.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_fops.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_gem.c drm: GEM mmap support 2008-12-29 17:47:22 +10:00
drm_hashtab.c drm: GEM mmap support 2008-12-29 17:47:22 +10:00
drm_ioc32.c drm: Add 32-bit compatibility for DRM_IOCTL_UPDATE_DRAW. 2008-10-23 13:46:33 +10:00
drm_ioctl.c drm: fix leak of uninitialized data to userspace 2008-12-29 17:47:22 +10:00
drm_irq.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_lock.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
drm_memory.c drm: Add GEM ("graphics execution manager") to i915 driver. 2008-10-18 07:10:12 +10:00
drm_mm.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_modes.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_pci.c drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
drm_proc.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
drm_scatter.c drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
drm_sman.c drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
drm_stub.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_sysfs.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_vm.c drm: GEM mmap support 2008-12-29 17:47:22 +10:00
Kconfig Export tiny shmem_file_setup for DRM-GEM 2008-10-20 16:17:42 -07:00
Makefile DRM: add mode setting support 2008-12-29 17:47:23 +10:00
README.drm drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00

************************************************************
* 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