• Rob Clark's avatar
    staging: add omapdrm DRM/KMS driver for TI OMAP platforms · cd5351f4
    Rob Clark authored
    A DRM display driver for TI OMAP platform.  Similar to omapfb (fbdev)
    and omap_vout (v4l2 display) drivers in the past, this driver uses the
    DSS2 driver to access the display hardware, including support for
    HDMI, DVI, and various types of LCD panels.  And it implements GEM
    support for buffer allocation (for KMS as well as offscreen buffers
    used by the xf86-video-omap userspace xorg driver).
    
    The driver maps CRTCs to overlays, encoders to overlay-managers, and
    connectors to dssdev's.  Note that this arrangement might change slightly
    when support for drm_plane overlays is added.
    
    For GEM support, non-scanout buffers are using the shmem backed pages
    provided by GEM core (In drm_gem_object_init()).  In the case of scanout
    buffers, which need to be physically contiguous, those are allocated
    with CMA and use drm_gem_private_object_init().
    
    See userspace xorg driver:
    git://github.com/robclark/xf86-video-omap.git
    
    Refer to this link for CMA (Continuous Memory Allocator):
    http://lkml.org/lkml/2011/8/19/302
    
    Links to previous versions of the patch:
    v1: http://lwn.net/Articles/458137/
    v2: http://patches.linaro.org/4156/
    v3: http://patches.linaro.org/4688/
    v4: http://patches.linaro.org/4791/
    
    History:
    
    v5: move headers from include/drm at Greg KH's request, minor rebasing
        on 3.2-rc1, pull in private copies of drm_gem_{get,put}_pages()
        because "drm/gem: add functions to get/put pages" patch is not
        merged yet
    v4: bit of rework of encoder/connector _dpms() code, modeset_init()
        rework to not use nested functions, update TODO.txt
    v3: minor cleanups, improved error handling for dev_load(), some minor
        API changes that will be needed later for tiled buffer support
    v2: replace omap_vram with CMA for scanout buffer allocation, remove
        unneeded functions, use dma_addr_t for physical addresses, error
        handling cleanup, refactor attach/detach pages into common drm
        functions, split non-userspace-facing API into omap_priv.h, remove
        plugin API
    
    v1: original
    Signed-off-by: default avatarRob Clark <rob@ti.com>
    Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    cd5351f4
Kconfig 757 Bytes