linux/drivers/gpu/drm
Keith Packard 38d5487db7 drm: When adding probed modes, preserve duplicate mode types
The code which takes probed modes and adds them to a connector eliminates
duplicate modes by comparing them using drm_mode_equal. That function
doesn't consider the type bits, which means that any modes which differ only
in the type field will be lost.

One of the bits in the mode->type field is the DRM_MODE_TYPE_PREFERRED bit.
If the mode with that bit is lost, then higher level code will not know
which mode to select, causing a random mode to be used instead.

This patch simply merges the two mode type bits together; that seems
reasonable to me, but perhaps only a subset of the bits should be used? None
of these can be user defined as they all come from looking at just the
hardware.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-08-09 12:22:53 +10:00
..
i810 drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i830 drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i915 drm/i915: Fix read outside array bounds in restoring the SWF10 range. 2009-08-05 11:21:29 -07:00
mga drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
r128 drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
radeon drm/radeon/kms: setup MC/VRAM the same way for suspend/resume 2009-08-07 20:33:11 +10:00
savage drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
sis drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
tdfx
ttm drm/ttm: Read buffer overflow 2009-08-04 13:41:05 +10:00
via drm/via: Fix vblank IRQ on VIA hardware. 2009-07-15 16:00:07 +10:00
ati_pcigart.c drm/ati_pcigart: use memset_io to reset the memory 2009-03-13 14:24:14 +10:00
drm_agpsupport.c agp: switch AGP to use page array instead of unsigned long array 2009-06-19 10:21:42 +10:00
drm_auth.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_bufs.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_cache.c
drm_context.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_crtc_helper.c drm: Catch stop possible NULL pointer reference 2009-08-04 13:29:49 +10:00
drm_crtc.c drm: Small logic fix in drm_mode_setcrtc 2009-08-04 13:29:27 +10:00
drm_debugfs.c drm: drm_debugfs, check kmalloc retval 2009-07-15 15:55:37 +10:00
drm_dma.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_drawable.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_drv.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_edid.c drm: Fix shifts which were miscalculated when converting from bitfields. 2009-06-24 16:11:04 +10:00
drm_fops.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_gem.c drm: drm_gem, check kzalloc retval 2009-07-15 15:56:12 +10:00
drm_hashtab.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_info.c drm: merge Linux master into HEAD 2009-03-28 20:22:18 -04:00
drm_ioc32.c drm: Only use DRM_IOCTL_UPDATE_DRAW compat wrapper for compat X86. 2009-03-13 14:24:04 +10:00
drm_ioctl.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_irq.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_lock.c
drm_memory.c agp: switch AGP to use page array instead of unsigned long array 2009-06-19 10:21:42 +10:00
drm_mm.c drm: Apply "Memory fragmentation from lost alignment blocks" 2009-06-19 09:01:12 +10:00
drm_modes.c drm: When adding probed modes, preserve duplicate mode types 2009-08-09 12:22:53 +10:00
drm_pci.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_proc.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_scatter.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_sman.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
drm_stub.c drm: Move a dereference below a NULL test 2009-07-15 16:56:48 +10:00
drm_sysfs.c Driver Core: drm: add nodename for drm devices 2009-06-15 21:30:26 -07:00
drm_vm.c agp: switch AGP to use page array instead of unsigned long array 2009-06-19 10:21:42 +10:00
Kconfig drm/i915: Add missing dependency on Intel AGP support. 2009-06-21 22:13:38 -07:00
Makefile drm/radeon: fix driver initialization order so radeon kms can be builtin 2009-06-24 16:11:06 +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.


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