alistair23-linux/drivers/gpu/drm/vmwgfx
Daniel Vetter 4d02e2de0e drm: Per-plane locking
Turned out to be much simpler on top of my latest atomic stuff than
what I've feared. Some details:

- Drop the modeset_lock_all snakeoil in drm_plane_init. Same
  justification as for the equivalent change in drm_crtc_init done in

	commit d0fa1af40e
	Author: Daniel Vetter <daniel.vetter@ffwll.ch>
	Date:   Mon Sep 8 09:02:49 2014 +0200

	    drm: Drop modeset locking from crtc init function

  Without these the drm_modeset_lock_init would fall over the exact
  same way.

- Since the atomic core code wraps the locking switching it to
  per-plane locks was a one-line change.

- For the legacy ioctls add a plane argument to the locking helper so
  that we can grab the right plane lock (cursor or primary). Since the
  universal cursor plane might not be there, or someone really crazy
  might forgoe the primary plane even accept NULL.

- Add some locking WARN_ON to the atomic helpers for good paranoid
  measure and to check that it all works out.

Tested on my exynos atomic hackfest with full lockdep checks and ww
backoff injection.

v2: I've forgotten about the load-detect code in i915.

v3: Thierry reported that in latest 3.18-rc vmwgfx doesn't compile any
more due to

commit 21e88620aa
Author: Rob Clark <robdclark@gmail.com>
Date:   Thu Oct 30 13:39:04 2014 -0400

    drm/vmwgfx: fix lock breakage

Rebased and fix this up.

Cc: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-11-12 17:56:12 +10:00
..
Kconfig drm: Move plane helpers into drm_kms_helper.ko 2014-06-04 13:36:08 +10:00
Makefile drm/vmwgfx: Fix compat shader namespace 2014-07-04 12:12:09 +02:00
svga3d_reg.h drm/vmwgfx: Remove some unused surface formats 2014-03-02 09:42:53 +01:00
svga3d_surfacedefs.h drm/vmwgfx: Fix possible integer overflow 2014-02-12 19:30:45 +01:00
svga_escape.h vmwgfx: Update register files to latest from vmware-sdk 2011-10-05 10:17:08 +01:00
svga_overlay.h vmwgfx: Update register files to latest from vmware-sdk 2011-10-05 10:17:08 +01:00
svga_reg.h PCI: Move PCI_VENDOR_ID_VMWARE to pci_ids.h 2014-09-24 11:52:09 -06:00
svga_types.h
vmwgfx_buffer.c drm/ttm: flip the switch, and convert to dma_fence 2014-09-02 16:41:50 +02:00
vmwgfx_cmdbuf_res.c drm/vmwgfx: Fix hash key computation 2014-10-31 09:54:22 +01:00
vmwgfx_context.c drm/vmwgfx: Fix compat shader namespace 2014-07-04 12:12:09 +02:00
vmwgfx_dmabuf.c drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
vmwgfx_drv.c drm/vmwgfx: Filter out modes those cannot be supported by the current VRAM size. 2014-10-31 09:58:06 +01:00
vmwgfx_drv.h drm/vmwgfx: rework to new fence interface, v2 2014-09-02 16:41:50 +02:00
vmwgfx_execbuf.c Linux 3.17-rc5 2014-09-16 11:38:04 +10:00
vmwgfx_fb.c drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
vmwgfx_fence.c drm/vmwgfx: rework to new fence interface, v2 2014-09-02 16:41:50 +02:00
vmwgfx_fence.h drm/vmwgfx: rework to new fence interface, v2 2014-09-02 16:41:50 +02:00
vmwgfx_fifo.c Linux 3.17-rc5 2014-09-16 11:38:04 +10:00
vmwgfx_gmr.c drm/vmwgfx: Fix the driver for large dma addresses 2014-01-17 07:44:15 +01:00
vmwgfx_gmrid_manager.c drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
vmwgfx_ioctl.c drm/vmwgfx: Use a per-device semaphore for reservation protection 2014-03-28 14:19:02 +01:00
vmwgfx_irq.c drm: Kill DRM_IRQ_ARGS 2013-12-18 11:33:46 +10:00
vmwgfx_kms.c drm: Per-plane locking 2014-11-12 17:56:12 +10:00
vmwgfx_kms.h drm: Pass page flip ioctl flags to driver 2013-08-30 09:24:54 +10:00
vmwgfx_ldu.c drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
vmwgfx_marker.c drm: vmwgfx: Use nsec based interfaces 2014-07-23 15:01:50 -07:00
vmwgfx_mob.c drm/vmwgfx: avoid null pointer dereference at failure paths 2014-03-02 09:49:59 +01:00
vmwgfx_overlay.c drm/vmwgfx: Make overlay code not require fifo at init time 2012-11-20 16:19:50 +10:00
vmwgfx_prime.c drm/vmwgfx: Hook up the prime ioctls 2013-11-18 04:11:53 -08:00
vmwgfx_reg.h
vmwgfx_resource.c drm/ttm: add reservation_object as argument to ttm_bo_init 2014-09-30 14:04:00 +02:00
vmwgfx_resource_priv.h drm/vmwgfx: Break out surface and context management to separate files 2012-11-21 07:47:08 +10:00
vmwgfx_scrn.c drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h 2014-11-05 00:14:55 +01:00
vmwgfx_shader.c drm/vmwgfx: Fix compat shader namespace 2014-07-04 12:12:09 +02:00
vmwgfx_surface.c drm/vmwgfx: Tighten security around surface sharing v2 2014-03-28 14:19:03 +01:00
vmwgfx_ttm_glue.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00