linux/drivers/gpu/drm
Dave Airlie edbaae5a5c Merge tag 'topic/vblank-rework-2014-09-12' of git://anongit.freedesktop.org/drm-intel into drm-next
So updated vblank-rework pull request, now with the polish that Mario
requested applied (and reviewed by him). Also with backmerge like you've
requested for easier merging.

The neat thing this finally allows is to immediately disable the vblank
interrupt on the last drm_vblank_put if the hardware has perfectly
accurate vblank counter and timestamp readout support. On i915 that
required piles of small adjustements from Ville since depending upon the
platform and port the vblank happens at different scanout lines.

Of course this is fully opt-in and per-device (we need that since gen2
doesn't have a hw vblank counter).

* tag 'topic/vblank-rework-2014-09-12' of git://anongit.freedesktop.org/drm-intel: (22 commits)
  drm: Clarify vblank ts/scanoutpos sampling #defines
  drm: Simplify return value of drm_get_last_vbltimestamp
  drm: Only update final vblank count when precise ts is available
  drm: Really never disable vblank irqs for offdelay==0
  drm: Use vblank_disable_and_save in drm_vblank_cleanup()
  drm: Remove drm_vblank_cleanup from drm_vblank_init error path.
  drm: Store the vblank timestamp when adjusting the counter during disable
  drm: Fix confusing debug message in drm_update_vblank_count()
  drm/i915: Update scanline_offset only for active crtcs
  drm: Kick start vblank interrupts at drm_vblank_on()
  drm/i915: Opt out of vblank disable timer on >gen2
  drm: Add dev->vblank_disable_immediate flag
  drm: Disable vblank interrupt immediately when drm_vblank_offdelay<0
  drm: Fix race between drm_vblank_off() and drm_queue_vblank_event()
  drm: Fix deadlock between event_lock and vbl_lock/vblank_time_lock
  drm: Reduce the amount of dev->vblank[crtc] in the code
  drm: Avoid random vblank counter jumps if the hardware counter has been reset
  drm: Have the vblank counter account for the time between vblank irq disable and drm_vblank_off()
  drm: Move drm_update_vblank_count()
  drm: Don't clear vblank timestamps when vblank interrupt is disabled
  ...
2014-09-12 19:04:53 +10:00
..
armada drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
ast drm/ast: switch to using CACHED by default for sysram 2014-09-12 17:32:12 +10:00
bochs drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
bridge
cirrus drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
exynos drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
gma500 drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
i2c
i810 drm: move drm-lock API to drm_legacy.h 2014-09-10 17:43:34 +10:00
i915 Merge remote-tracking branch 'airlied/drm-next' into topic/vblank-rework 2014-09-11 14:46:53 +02:00
mga drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
mgag200 drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
msm drm/msm/adreno: push dump/show stuff to base class 2014-09-10 11:19:09 -04:00
nouveau Merge remote-tracking branch 'airlied/drm-next' into topic/vblank-rework 2014-09-11 14:46:53 +02:00
omapdrm drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
panel drm/panel/simple: add optronics B101XTN01.0 (v3) 2014-09-10 11:19:07 -04:00
qxl drm/ttm: allow fence to be added as shared 2014-09-11 10:46:00 -04:00
r128 drm: split ati_pcigart.h out of drmP.h 2014-09-12 14:11:14 +10:00
radeon Merge tag 'topic/vblank-rework-2014-09-12' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-09-12 19:04:53 +10:00
rcar-du drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
savage drm: move drm-lock API to drm_legacy.h 2014-09-10 17:43:34 +10:00
shmobile drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
sis drm: move drm-lock API to drm_legacy.h 2014-09-10 17:43:34 +10:00
sti
tdfx drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
tegra
tilcdc drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
ttm drm/ttm: allow fence to be added as shared 2014-09-11 10:46:00 -04:00
udl drm: merge drm_usb into udl 2014-09-10 17:43:27 +10:00
via drm: move drm-lock API to drm_legacy.h 2014-09-10 17:43:34 +10:00
vmwgfx drm/ttm: allow fence to be added as shared 2014-09-11 10:46:00 -04:00
ati_pcigart.c drm: split ati_pcigart.h out of drmP.h 2014-09-12 14:11:14 +10:00
drm_agpsupport.c drm: move AGP definitions harder 2014-09-10 17:40:11 +10:00
drm_auth.c drm: move "struct drm_magic_entry" to drm_auth.c 2014-09-10 17:39:50 +10:00
drm_bufs.c drm: mark drm_buf and drm_map as legacy 2014-09-10 17:11:30 +10:00
drm_cache.c
drm_context.c
drm_crtc.c Merge tag 'drm-intel-next-2014-09-01' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-09-03 08:30:48 +10:00
drm_crtc_helper.c
drm_crtc_internal.h
drm_debugfs.c drm: drop DRM_DEBUG_CODE 2014-09-10 17:41:20 +10:00
drm_dma.c
drm_dp_helper.c
drm_dp_mst_topology.c
drm_drv.c Merge remote-tracking branch 'airlied/drm-next' into topic/vblank-rework 2014-09-11 14:46:53 +02:00
drm_edid.c
drm_edid_load.c
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c Merge tag 'drm-intel-next-2014-09-01' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-09-03 08:30:48 +10:00
drm_flip_work.c
drm_fops.c drm: move drm-lock API to drm_legacy.h 2014-09-10 17:43:34 +10:00
drm_gem.c
drm_gem_cma_helper.c
drm_global.c
drm_hashtab.c
drm_info.c drm: move "struct drm_vma_entry" to drm_vm.c 2014-09-10 17:13:36 +10:00
drm_ioc32.c
drm_ioctl.c drm: move drm-lock API to drm_legacy.h 2014-09-10 17:43:34 +10:00
drm_irq.c Merge remote-tracking branch 'airlied/drm-next' into topic/vblank-rework 2014-09-11 14:46:53 +02:00
drm_legacy.h drm: move drm-lock API to drm_legacy.h 2014-09-10 17:43:34 +10:00
drm_lock.c drm: move drm-lock API to drm_legacy.h 2014-09-10 17:43:34 +10:00
drm_memory.c drm: merge drm_memory.h into drm_memory.c 2014-09-10 17:40:51 +10:00
drm_mipi_dsi.c
drm_mm.c
drm_modes.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_pci.c drm: Goody bye, drm_bus! 2014-09-10 17:43:10 +10:00
drm_plane_helper.c
drm_platform.c drm: Goody bye, drm_bus! 2014-09-10 17:43:10 +10:00
drm_prime.c
drm_probe_helper.c
drm_rect.c
drm_scatter.c
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vm.c drm: drop DRM_DEBUG_CODE 2014-09-10 17:41:20 +10:00
drm_vma_manager.c
Kconfig drm: merge drm_usb into udl 2014-09-10 17:43:27 +10:00
Makefile drm: merge drm_usb into udl 2014-09-10 17:43:27 +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