linux/drivers/gpu/drm
McAulay, Alistair 6689c167ae drm/i915: Rework GPU reset sequence to match driver load & thaw
This patch is to address Daniels concerns over different code during reset:

http://lists.freedesktop.org/archives/intel-gfx/2014-June/047758.html

"The reason for aiming as hard as possible to use the exact same code for
driver load, gpu reset and runtime pm/system resume is that we've simply
seen too many bugs due to slight variations and unintended omissions."

Tested using igt drv_hangman.

V2: Cleaner way of preventing check_wedge returning -EAGAIN
V3: Clean the last_context during reset, to ensure do_switch() does the MI_SET_CONTEXT. As per review.
Signed-off-by: McAulay, Alistair <alistair.mcaulay@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
[danvet: Rebase over ctx->ppgtt rework and extend the comment in
check_wedge a bit.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-09-03 10:54:09 +02:00
..
armada Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-08-07 17:36:12 -07:00
ast drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
bochs drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
bridge drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
cirrus drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
exynos Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-08-07 17:36:12 -07:00
gma500 PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
i2c drm/tda998x: update for new drm connector APIs. 2014-08-05 10:34:33 +10:00
i810 i810: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
i915 drm/i915: Rework GPU reset sequence to match driver load & thaw 2014-09-03 10:54:09 +02:00
mga drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
mgag200 drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
msm drm/msm/hdmi: fix HDMI_MUX_EN gpio request typo 2014-08-04 11:55:30 -04:00
nouveau drm/nouveau: use shared fences for readable objects 2014-09-02 17:28:48 +02:00
omapdrm fbdev changes for 3.17 2014-08-08 18:09:33 -07:00
panel drm/panel: simple: Use devm_gpiod_get_optional() 2014-08-07 09:35:27 +02:00
qxl drm/qxl: enables gem prime helpers for qxl using dummy driver callbacks 2014-09-03 15:36:52 +10:00
r128 drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
radeon drm/radeon: use rcu waits in some ioctls 2014-09-02 16:41:50 +02:00
rcar-du drm/rcar-du: Fix maximum frame buffer pitch computation 2014-07-30 11:08:24 +10:00
savage drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
shmobile drm: shmobile: fix warnings 2014-07-22 11:31:35 +10:00
sis drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
sti drm/sti: fix warning in build. 2014-08-05 09:41:42 +10:00
tdfx
tegra ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
tilcdc drm/tilcdc: Fix build breakage 2014-07-10 12:01:38 +10:00
ttm drm/ttm: use rcu in core ttm 2014-09-02 17:28:47 +02:00
udl drm/udl: use helpers 2014-07-18 14:24:49 +10:00
via drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
vmwgfx drm/vmwgfx: use rcu in vmw_user_dmabuf_synccpu_grab 2014-09-02 17:28:47 +02:00
ati_pcigart.c
drm_agpsupport.c
drm_auth.c
drm_buffer.c drivers/gpu/drm/drm_buffer.c: remove unnecessary null test before kfree 2014-07-18 15:39:27 +02:00
drm_bufs.c drm: remove unused "struct drm_freelist" 2014-08-02 06:43:10 +10:00
drm_cache.c
drm_context.c drm: mark drm_context support as legacy 2014-08-05 19:38:12 +02: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_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_debugfs.c drm/debugfs: add an "edid_override" file per connector 2014-06-19 08:56:28 +02: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 Revert "drm: drop redundant drm_file->is_master" 2014-08-08 07:30:53 +10: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_edid.c drm: Docbook fixes 2014-08-14 21:24:17 +02: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 Merge tag 'topic/core-stuff-2014-08-15' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-08-26 09:04:03 +10:00
drm_gem_cma_helper.c drm: gem_cma: Use ERR_CAST helper 2014-07-21 14:36:45 +10:00
drm_gem.c drm/gem: remove misleading gfp parameter to get_pages() 2014-07-08 00:29:53 +02: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: remove unused "struct drm_freelist" 2014-08-02 06:43:10 +10:00
drm_ioc32.c
drm_ioctl.c Revert "drm: drop redundant drm_file->is_master" 2014-08-08 07:30:53 +10:00
drm_irq.c Merge tag 'topic/core-stuff-2014-08-15' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-08-26 09:04:03 +10:00
drm_legacy.h drm: mark drm_context support as legacy 2014-08-05 19:38:12 +02:00
drm_lock.c Revert "drm: drop redundant drm_file->is_master" 2014-08-08 07:30:53 +10:00
drm_memory.c
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: Add device registration documentation 2014-06-05 23:14:38 +02: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: Add device registration documentation 2014-06-05 23:14:38 +02: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_points.c
drm_trace.h
drm_usb.c drm: Add device registration documentation 2014-06-05 23:14:38 +02:00
drm_vm.c
drm_vma_manager.c
Kconfig Merge branch 'drm-next-3.18' of git://people.freedesktop.org/~agd5f/linux into drm-next 2014-08-26 09:05:14 +10:00
Makefile drm: move drm_stub.c to drm_drv.c 2014-08-06 19:10:44 +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