linux-stable/drivers/gpu/drm
Daniel Vetter 786b99ed13 drm: create drm_framebuffer_lookup
And replace all fb lookups with it. Also add a WARN to
drm_mode_object_find since that is now no longer the blessed interface
to look up an fb. And add kerneldoc to both functions.

This only updates all callsites, but immediately drops the acquired
refence again. Hence all callers still rely on the fact that a mode fb
can't disappear while they're holding the struct mutex. Subsequent
patches will instate proper use of refcounts, and then rework the rmfb
and unref code to no longer serialize fb destruction with the
mode_config lock. We don't want that since otherwise a compositor
might end up stalling for a few frames in rmfb.

v2: Don't use kref_get_unless_zero - Greg KH doesn't like that kind of
interface.

Reviewed-by: Rob Clark <rob@ti.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-01-20 22:16:59 +01:00
..
ast drm: only take the crtc lock for ->cursor_set 2013-01-20 22:16:55 +01:00
cirrus drm/<drivers>: Unified handling of unimplemented fb->create_handle 2013-01-20 15:57:57 +01:00
exynos Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux 2013-01-08 16:08:10 -08:00
gma500 drm/gma500: use drm_modeset_lock_all 2013-01-20 22:16:49 +01:00
i2c drm: encapsulate crtc->set_config calls 2013-01-20 15:57:58 +01:00
i810 UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915 drm: revamp locking around fb creation/destruction 2013-01-20 22:16:58 +01:00
mga UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
mgag200 drm/<drivers>: Unified handling of unimplemented fb->create_handle 2013-01-20 15:57:57 +01:00
nouveau drm: encapsulate crtc->set_config calls 2013-01-20 15:57:58 +01:00
r128 UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
radeon drm: only take the crtc lock for ->cursor_move 2013-01-20 22:16:57 +01:00
savage Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
shmobile drm/shmobile: use drm_modeset_lock_all 2013-01-20 22:16:51 +01:00
sis UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
tdfx UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
tegra Revert "drm: tegra: protect DC register access with mutex" 2012-12-30 21:58:20 +10:00
ttm drm/ttm: fix fence locking in ttm_buffer_object_transfer 2013-01-08 18:35:31 +10:00
udl drm/<drivers>: Unified handling of unimplemented fb->create_handle 2013-01-20 15:57:57 +01:00
via UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
vmwgfx drm: create drm_framebuffer_lookup 2013-01-20 22:16:59 +01:00
ati_pcigart.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_agpsupport.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_auth.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_buffer.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_bufs.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_cache.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
drm_context.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_crtc.c drm: create drm_framebuffer_lookup 2013-01-20 22:16:59 +01:00
drm_crtc_helper.c drm: add drm_modeset_lock|unlock_all 2013-01-20 22:16:38 +01:00
drm_debugfs.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_dma.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_dp_helper.c drm/doc: add new dp helpers into drm DocBook 2012-11-28 20:26:53 +10:00
drm_drv.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
drm_edid.c Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2012-12-16 06:05:03 +00:00
drm_edid_load.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
drm_edid_modes.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
drm_encoder_slave.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_fb_cma_helper.c drm/<drivers>: reorder framebuffer init sequence 2013-01-20 15:29:24 +01:00
drm_fb_helper.c drm: add drm_modeset_lock|unlock_all 2013-01-20 22:16:38 +01:00
drm_fops.c drm: revamp locking around fb creation/destruction 2013-01-20 22:16:58 +01:00
drm_gem.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
drm_gem_cma_helper.c
drm_global.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_hashtab.c drm: Add a hash-tab rcu-safe API 2012-11-28 18:36:05 +10:00
drm_info.c drm/debugfs: remove redundant info from gem_names 2012-10-23 10:15:04 +10:00
drm_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_ioctl.c drm: add support for monotonic vblank timestamps 2012-11-20 16:06:16 +10:00
drm_irq.c drm: hold event_lock while accessing vblank_event_list 2012-11-29 03:30:34 -08:00
drm_lock.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_memory.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_mm.c drm: Only evict the blocks required to create the requested hole 2013-01-08 11:52:02 +01:00
drm_modes.c drm: Constify some function arguments 2012-11-07 10:09:16 +10:00
drm_pci.c drm/pci: add missing variable initialization 2012-11-29 18:20:31 +10:00
drm_platform.c drm: platform: Don't initialize driver-private data 2012-10-23 10:15:11 +10:00
drm_prime.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_proc.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_scatter.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_stub.c drm: add support for monotonic vblank timestamps 2012-11-20 16:06:16 +10:00
drm_sysfs.c drm: remove legacy drm_connector_property fxns 2012-11-30 10:30:48 -06:00
drm_trace.h
drm_trace_points.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_usb.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_vm.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
Kconfig drm: Add NVIDIA Tegra20 support 2012-11-20 15:43:41 +10:00
Makefile drm: only build ati_pcigart if PCI enabled 2012-11-28 20:12:29 +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