linux_old1/drivers/gpu/drm/vmwgfx
Daniel Vetter bfb899282f drm: only take the crtc lock for ->cursor_set
First convert ->cursor_set to only take the crtc lock, since that
seems to be the function with the least amount of state - the core
ioctl function doesn't check anything which can change at runtime, so
we don't have any object lifetime issues to contend.

The only thing which is important is that the driver's implementation
doesn't touch any state outside of that single crtc which is not yet
properly protected by other locking:

- ast: access the global ast->cache_kmap. Luckily we only have on crtc
  on this driver, so this is fine. Add a comment.

- gma500: calls gma_power_begin|and and psb_gtt_pin|unpin, both which
  have their own locking to protect their state. Everything else is
  crtc-local.

- i915: touches a bit of global gem state, all protected by the One
  Lock to Rule Them All (dev->struct_mutex).

- nouveau: Pre-nv50 is all nice, nv50+ uses the evo channels to queue
  up all display changes. And some of these channels are device
  global. But this is fine now since the previous patch introduced an
  evo channel mutex.

- radeon: Uses some indirect register access for cursor updates, but
  with the previous patches to protect these indirect 2-register
  access patterns with a spinlock, this should be fine now, too.

- vmwgfx: I have no idea how that works - update_cursor_position
  doesn't take any per-crtc argument and I haven't figured out any
  other place where this could be set in some form of a side-channel.
  But vmwgfx definitely has more than one crtc (or at least can
  register more than one), so I have no idea how this is supposed to
  not fail with the current code already. Hence take the easy way out
  and simply acquire all locks (which requires dropping the crtc lock
  the core acquired for us). That way it's not worse off for
  consistency than the old code.

Reviewed-by: Rob Clark <rob@ti.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-01-20 22:16:55 +01:00
..
Kconfig drm/vmwgfx: allow a kconfig option to choose if fbcon is enabled 2012-09-07 13:24:34 +10:00
Makefile drm/vmwgfx: Break out surface and context management to separate files 2012-11-21 07:47:08 +10:00
svga3d_reg.h vmwgfx: Update register files to latest from vmware-sdk 2011-10-05 10:17:08 +01:00
svga3d_surfacedefs.h drm/vmwgfx: Add and make use of a header for surface size calculation. 2012-11-21 07:47:09 +10: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 vmwgfx: Update register files to latest from vmware-sdk 2011-10-05 10:17:08 +01:00
svga_types.h
vmwgfx_buffer.c drm/vmwgfx: Tighten the security around buffer maps 2012-11-28 20:09:08 +10:00
vmwgfx_context.c drm/vmwgfx: Break out surface and context management to separate files 2012-11-21 07:47:08 +10:00
vmwgfx_dmabuf.c drm/ttm: remove no_wait_reserve, v3 2012-12-10 20:21:30 +10:00
vmwgfx_drv.c drm: encapsulate crtc->set_config calls 2013-01-20 15:57:58 +01:00
vmwgfx_drv.h drm/vmwgfx: Tighten the security around buffer maps 2012-11-28 20:09:08 +10:00
vmwgfx_execbuf.c drm/ttm: remove no_wait_reserve, v3 2012-12-10 20:21:30 +10:00
vmwgfx_fb.c Prepared for main script 2012-10-03 13:45:43 -07:00
vmwgfx_fence.c drm/vmwgfx: Free user-space fence objects correctly 2012-11-28 18:36:12 +10:00
vmwgfx_fence.h vmwgfx: Move function declaration to correct header 2012-02-13 12:01:36 +00:00
vmwgfx_fifo.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
vmwgfx_gmr.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
vmwgfx_gmrid_manager.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
vmwgfx_ioctl.c drm/vmwgfx: use drm_modeset_lock_all 2013-01-20 22:16:52 +01:00
vmwgfx_irq.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
vmwgfx_kms.c drm: only take the crtc lock for ->cursor_set 2013-01-20 22:16:55 +01:00
vmwgfx_kms.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
vmwgfx_ldu.c drm/vmwgfx: drm_connector_property -> drm_object_property 2012-11-30 10:20:11 -06:00
vmwgfx_marker.c vmwgfx: Fix confusion caused by using "fence" in various places 2011-09-06 11:48:40 +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_reg.h drm/vmwgfx: Add DRM driver for VMware Virtual GPU 2009-12-15 08:38:43 +10:00
vmwgfx_resource.c drm/ttm: remove no_wait_reserve, v3 2012-12-10 20:21:30 +10: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/vmwgfx: drm_connector_property -> drm_object_property 2012-11-30 10:20:11 -06:00
vmwgfx_surface.c drm/vmwgfx: Add and make use of a header for surface size calculation. 2012-11-21 07:47:09 +10:00
vmwgfx_ttm_glue.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00