linux/drivers/gpu/drm
Wu Fengguang 76adaa34db drm: support routines for HDMI/DP ELD
ELD (EDID-Like Data) describes to the HDMI/DP audio driver the audio
capabilities of the plugged monitor.

This adds drm_edid_to_eld() for converting EDID to ELD. The converted
ELD will be saved in a new drm_connector.eld[128] data field. This is
necessary because the graphics driver will need to fixup some of the
data fields (eg. HDMI/DP connection type, AV sync delay) before writing
to the hardware ELD buffer. drm_av_sync_delay() will help the graphics
drivers dynamically compute the AV sync delay for fixing-up the ELD.

ELD selection policy: it's possible for one encoder to be associated
with multiple connectors (ie. monitors), in which case the first found
ELD will be returned by drm_select_eld(). This policy may not be
suitable for all users, but let's start it simple first.

The impact of ELD selection policy: assume there are two monitors, one
supports stereo playback and the other has 8-channel output; cloned
display mode is used, so that the two monitors are associated with the
same internal encoder. If only the stereo playback capability is reported,
the user won't be able to start 8-channel playback; if the 8-channel ELD
is reported, then user space applications may send 8-channel samples
down, however the user may actually be listening to the 2-channel
monitor and not connecting speakers to the 8-channel monitor.

According to James, many TVs will either refuse the display anything or
pop-up an OSD warning whenever they receive hdmi audio which they cannot
handle. Eventually we will require configurability and/or per-monitor
audio control even when the video is cloned.

CC: Zhao Yakui <yakui.zhao@intel.com>
CC: Wang Zhenyu <zhenyu.z.wang@intel.com>
CC: Jeremy Bush <contractfrombelow@gmail.com>
CC: Christopher White <c.white@pulseforce.com>
CC: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
CC: Paul Menzel <paulepanter@users.sourceforge.net>
CC: James Cloos <cloos@jhcloos.com>
CC: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2011-09-21 14:52:41 -07:00
..
i2c
i810
i915 drm/i915: Enable dither whenever display bpc < frame buffer bpc 2011-09-21 14:52:40 -07:00
mga alpha, drm: Remove obsolete Alpha support in MGA DRM code 2011-06-14 09:32:56 +10:00
nouveau Merge branch 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-next 2011-09-20 09:35:22 +01:00
r128
radeon Merge branch 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-next 2011-09-20 09:35:22 +01:00
savage savage: remove unnecessary if statement 2011-06-14 09:29:12 +10:00
sis treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
tdfx
ttm drm/ttm: add a way to bo_wait for either the last read or last write 2011-08-31 19:25:35 +01:00
via
vmwgfx vmwgfx: Bump major 2011-09-06 11:51:12 +01:00
ati_pcigart.c
drm_agpsupport.c
drm_auth.c
drm_buffer.c
drm_bufs.c drm: Compare only lower 32 bits of framebuffer map offsets 2011-06-14 11:09:54 +10:00
drm_cache.c
drm_context.c
drm_crtc.c drm: Fix the number of connector and encoder to cleanup functions 2011-08-29 11:47:35 +01:00
drm_crtc_helper.c drm: bpp and depth changes require full mode sets 2011-07-07 13:20:49 -07:00
drm_debugfs.c drm/debugfs: Initialise empty variable 2011-08-04 14:38:52 +01:00
drm_dma.c
drm_dp_i2c_helper.c
drm_drv.c
drm_edid.c drm: support routines for HDMI/DP ELD 2011-09-21 14:52:41 -07:00
drm_edid_modes.h
drm_encoder_slave.c
drm_fb_helper.c drm: Remove duplicate "return" statement 2011-09-09 09:11:44 +01:00
drm_fops.c
drm_gem.c drm/gem: add functions for mmap offset creation 2011-08-30 11:06:06 +01:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_ioc32.c drivers/gpu/drm: use printk_ratelimited instead of printk_ratelimit 2011-06-16 16:32:15 +10:00
drm_ioctl.c
drm_irq.c drm: Add NULL check about irq functions 2011-08-04 14:39:21 +01:00
drm_lock.c
drm_memory.c
drm_mm.c drm: mm: fix debug output 2011-05-09 09:14:45 +10:00
drm_modes.c DRM: clean up and document parsing of video= parameter 2011-07-25 12:02:26 +01:00
drm_pci.c drm: populate irq_by_busid-member for pci 2011-06-16 16:26:45 +10:00
drm_platform.c drm: platform multi-device support 2011-07-15 06:52:58 +01:00
drm_proc.c
drm_scatter.c drivers: use kzalloc/kcalloc instead of 'kmalloc+memset', where possible 2011-07-25 20:57:13 -07:00
drm_sman.c
drm_stub.c drm: Create and use drm_err 2011-04-28 14:53:02 +10:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_usb.c
drm_vm.c alpha/drm: Cleanup Alpha support in DRM generic code 2011-06-14 09:31:37 +10:00
Kconfig drm: select FRAMEBUFFER_CONSOLE_PRIMARY if we have FRAMEBUFFER_CONSOLE 2011-04-27 16:54:06 +10:00
Makefile
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