linux/drivers/gpu/drm
Daniel Vetter 5ab432ef49 drm/i915/hdmi: convert to encoder->disable/enable
I've picked hdmi as the first encoder to convert because it's rather
simple:
- no cloning possible
- no differences between prepare/commit and dpms off/on switching.

A few changes are required to do so:
- Split up the dpms code into an enable/disable function and wire it
  up with the intel encoder.
- Noop out the existing encoder prepare/commit functions used by the
  crtc helper - our crtc enable/disable code now calls back into the
  encoder enable/disable code at the right spot.
- Create new helper functions to handle dpms changes.
- Add intel_encoder->connectors_active to better track dpms state. Atm
  this is unused, but it will be useful to correctly disable the
  entire display pipe for cloned configurations. Also note that for
  now this is only useful in the dpms code - thanks to the crtc
  helper's dpms confusion across a modeset operation we can't (yet)
  rely on this having a sensible value in all circumstances.
- Rip out the encoder helper dpms callback, if this is still getting
  called somewhere we have a bug. The slight issue with that is that
  the crtc helper abuses dpms off to disable unused functions. Hence
  we also need to implement a default encoder disable function to do
  just that with the new encoder->disable callback.
- Note that we drop the cpt modeset verification in the commit
  callback, too. The right place to do this would be in the crtc's
  enable function, _after_ all the encoders are set up. But because
  not all encoders are converted yet, we can't do that. Hence disable
  this check temporarily as a minor concession to bisectability.

v2: Squash the dpms mode to only the supported values -
connector->dpms is for internal tracking only, we can hence avoid
needless state-changes a bit whithout causing harm.

v3: Apply bikeshed to disable|enable_ddi, suggested by Paulo Zanoni.

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-09-06 07:53:37 +02:00
..
ast drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
cirrus drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
exynos drm/exynos: fixed exception to page allocation failure 2012-07-27 11:13:57 +09:00
gma500 Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-07-26 14:18:18 -07:00
i2c drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
i810 drm: kill dma queue support 2012-07-19 22:50:55 -04:00
i915 drm/i915/hdmi: convert to encoder->disable/enable 2012-09-06 07:53:37 +02:00
mga drm: kill reclaim_buffers callback 2012-07-19 22:50:28 -04:00
mgag200 drm/mgag200: fix G200ER pll picking algorithm 2012-08-10 20:31:37 +10:00
nouveau drm/nv86/fifo: suspend fix 2012-08-14 09:36:53 +10:00
r128 drm: kill reclaim_buffers callback 2012-07-19 22:50:28 -04:00
radeon drm/radeon: fix typo in function header comment 2012-08-13 10:53:29 -04:00
savage drm/savage: clean up reclaim_buffers 2012-07-19 22:50:16 -04:00
sis drm/sis: fixup sis_mm ioctl structs 2012-07-19 22:51:58 -04:00
tdfx drm: kill reclaim_buffers callback 2012-07-19 22:50:28 -04:00
ttm drm/ttm: Fix buffer object metadata accounting regression v2 2012-06-12 15:57:47 +01:00
udl drm/udl: call begin/end cpu access at more appropriate time 2012-08-17 10:10:07 +02:00
via drm/via: clean up reclaim_buffers 2012-07-19 22:48:28 -04:00
vmwgfx drm: track dev_mapping in more robust and flexible way 2012-07-25 14:09:30 +10:00
ati_pcigart.c
drm_agpsupport.c
drm_auth.c
drm_buffer.c
drm_bufs.c drm: kill dma queue support 2012-07-19 22:50:55 -04:00
drm_cache.c
drm_context.c
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: kill dma queue support 2012-07-19 22:50:55 -04:00
drm_dma.c drm: kill dma queue support 2012-07-19 22:50:55 -04:00
drm_dp_i2c_helper.c
drm_drv.c drm: kill dma queue support 2012-07-19 22:50:55 -04:00
drm_edid_load.c drm/edid: Fix potential memory leak in edid_load() 2012-08-10 20:30:04 +10:00
drm_edid_modes.h
drm_edid.c drm: edid: Don't add inferred modes with higher resolution 2012-07-03 11:18:10 +01:00
drm_encoder_slave.c
drm_fb_helper.c drm/fb-helper: don't clobber output routing in setup_crtcs 2012-08-17 10:10:05 +02:00
drm_fops.c drm: track dev_mapping in more robust and flexible way 2012-07-25 14:09:30 +10:00
drm_gem.c drm: Add colouring to the range allocator 2012-07-16 05:59:37 +10:00
drm_global.c
drm_hashtab.c
drm_info.c drm: kill dma queue support 2012-07-19 22:50:55 -04:00
drm_ioc32.c
drm_ioctl.c drm/prime: expose capability flags for userspace. 2012-05-18 11:12:16 +01:00
drm_irq.c drm: Disallow DRM_IOCTL_MODESET_CTL for KMS drivers 2012-07-18 06:05:48 +10:00
drm_lock.c drm: ditch strange DRIVER_DMA_QUEUE only error bail-out 2012-07-19 22:50:47 -04:00
drm_memory.c
drm_mm.c drm: Add colouring to the range allocator 2012-07-16 05:59:37 +10:00
drm_modes.c
drm_pci.c drm/pci: add support for getting the supported link bw. 2012-07-19 22:29:25 -04:00
drm_platform.c
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: kill dma queue support 2012-07-19 22:50:55 -04:00
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: fail gracefully when proc isn't setup. 2012-07-16 05:57:03 +10:00
drm_trace_points.c
drm_trace.h
drm_usb.c
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