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 drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
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 drm/tda998x: update for new drm connector APIs. 2014-08-05 10:34:33 +10:00
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 drm/sti: fix warning in build. 2014-08-05 09:41:42 +10:00
tdfx drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
tegra ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
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
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
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: Missed clflushopt in drm_clflush_virt_range 2014-06-02 09:57:31 +02:00
drm_context.c drm: mark drm_context support as legacy 2014-08-05 19:38:12 +02:00
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-helper: use drm_framebuffer flags 2014-07-08 11:18:47 +10:00
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: add a hw mutex around the transfer functions. (v2) 2014-06-05 09:54:29 +10:00
drm_dp_mst_topology.c drm: Don't return 0 for a value used as a denominator 2014-08-14 21:24:29 +02:00
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: Docbook fixes 2014-08-14 21:24:17 +02:00
drm_edid_load.c drm: replace drm_get_connector_name() with direct name field use 2014-06-04 13:17:41 +10:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
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: remove misleading gfp parameter to get_pages() 2014-07-08 00:29:53 +02:00
drm_gem_cma_helper.c drm: gem_cma: Use ERR_CAST helper 2014-07-21 14:36:45 +10:00
drm_global.c
drm_hashtab.c list: fix order of arguments for hlist_add_after(_rcu) 2014-08-06 18:01:24 -07:00
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/dsi: Use peripheral's channel for DCS commands 2014-07-22 09:06:32 +02:00
drm_mm.c
drm_modes.c drm: Perform cmdline mode parsing during connector initialisation 2014-08-06 14:50:12 +02:00
drm_modeset_lock.c drm: Docbook fixes 2014-08-14 21:24:17 +02:00
drm_of.c drm: add of_graph endpoint helper to find possible CRTCs 2014-07-11 15:38:28 +01:00
drm_panel.c
drm_pci.c drm: Goody bye, drm_bus! 2014-09-10 17:43:10 +10:00
drm_plane_helper.c drm/plane-helper: Use proper plane init function 2014-07-18 15:39:28 +02:00
drm_platform.c drm: Goody bye, drm_bus! 2014-09-10 17:43:10 +10:00
drm_prime.c dma-buf: use reservation objects 2014-07-08 13:03:20 -07:00
drm_probe_helper.c drm: Perform cmdline mode parsing during connector initialisation 2014-08-06 14:50:12 +02:00
drm_rect.c drm: Add drm_rect rotation functions 2014-07-11 23:44:12 +02:00
drm_scatter.c
drm_sysfs.c drm: make sysfs device always available for minors 2014-08-05 16:08:21 +02:00
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

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