linux/include/drm
Daniel Vetter 95c081c17f drm: Move master pointer from drm_minor to drm_device
There can only be one current master, and it's for the overall device.
Render/control minors don't support master-based auth at all.

This simplifies the master logic a lot, at least in my eyes: All these
additional pointer chases are just confusing.

While doing the conversion I spotted some locking fail:
- drm_lock/drm_auth check dev->master without holding the
  master_mutex. This is fallout from

  commit c996fd0b95
  Author: Thomas Hellstrom <thellstrom@vmware.com>
  Date:   Tue Feb 25 19:57:44 2014 +0100

      drm: Protect the master management with a drm_device::master_mutex v3

  but I honestly don't care one bit about those old legacy drivers
  using this.

- debugfs name info should just grab master_mutex.

- And the fbdev helper looked at it to figure out whether someone is
  using KMS. We just need a consistent value, so READ_ONCE. Aside: We
  should probably check if anyone has opened a control node too, but I
  guess current userspace doesn't really do that yet.

v2: Balance locking, reported by Julia.

v3: Rebase on top of Chris' oops fixes.

Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v2)
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> (v2)
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1466499262-18717-1-git-send-email-daniel.vetter@ffwll.ch
2016-06-21 21:43:24 +02:00
..
bridge drm: rockchip: dp: add rockchip platform dp driver 2016-04-05 10:13:04 +08:00
i2c drm/i2c: tda998x: add video and audio input configuration 2013-08-19 09:10:32 +10:00
ttm drm/ttm: implement LRU add callbacks v2 2016-05-04 20:21:38 -04:00
ati_pcigart.h drm: Move legacy buffer structures to <drm/drm_legacy.h> 2014-09-12 15:28:12 +02:00
drm_agpsupport.h drm: Give drm_agp_clear drm_legacy_ prefix 2016-04-27 08:41:34 +02:00
drm_atomic_helper.h drm: Fix comment making reference to non-existing function 2016-06-10 17:18:12 +02:00
drm_atomic.h drm/atomic: Add struct drm_crtc_commit to track async updates 2016-06-10 16:57:54 +02:00
drm_cache.h drm: Loongson-3 doesn't fully support wc memory 2016-04-22 10:24:11 +10:00
drm_core.h drm: Fix support for PCI domains 2010-08-10 08:20:20 +10:00
drm_crtc_helper.h drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt() 2016-06-07 17:10:49 +03:00
drm_crtc.h drm: Add callbacks for late registering 2016-06-21 21:32:52 +02:00
drm_displayid.h drm/edid: add displayid detailed 1 timings to the modelist. (v1.1) 2016-05-23 11:35:31 +10:00
drm_dp_aux_dev.h drm/dp: Add a drm_aux-dev module for reading/writing dpcd registers. 2016-02-12 14:22:40 +01:00
drm_dp_dual_mode_helper.h drm: Add helper for DP++ adaptors 2016-05-23 11:10:46 +03:00
drm_dp_helper.h drm: Minimally initialise drm_dp_aux 2016-06-17 14:41:47 +02:00
drm_dp_mst_helper.h drm/dp/mst: move GUID storage from mgr, port to only mst branch 2016-02-05 15:23:49 +10:00
drm_edid.h drm: probe_helper: Hide ugly ifdef 2016-04-20 13:35:14 +02:00
drm_encoder_slave.h drm: Constify drm_encoder_slave_funcs 2015-12-15 13:41:17 +01:00
drm_fb_cma_helper.h drm/fb-cma-helper: Add function drm_fb_cma_create_with_funcs() 2016-05-17 09:08:32 +02:00
drm_fb_helper.h drm: Replace fb_helper->atomic with mode_config->atomic_commit 2016-06-09 08:43:28 +02:00
drm_fixed.h drm: Add drm_fixp_from_fraction and drm_fixp2int_ceil 2016-02-05 15:23:48 +10:00
drm_flip_work.h drm: flip-work: change drm_flip_work_init prototype 2014-11-15 09:29:14 +10:00
drm_fourcc.h drm: Move format-related helpers to drm_fourcc.c 2016-06-09 11:58:50 +02:00
drm_gem_cma_helper.h drm/cma: Introduce drm_gem_cma_dumb_create_internal() 2014-11-13 13:27:17 +01:00
drm_gem.h drm: Remove unused drm_device from drm_gem_object_lookup() 2016-05-17 08:47:30 +02:00
drm_global.h drm: move ttm global code to core drm 2010-08-04 09:46:06 +10:00
drm_hashtab.h drm: Add a hash-tab rcu-safe API 2012-11-28 18:36:05 +10:00
drm_legacy.h drm: Hide master MAP cleanup in drm_bufs.c 2016-04-27 10:14:17 +02:00
drm_mem_util.h drm,i915: Introduce drm_malloc_gfp() 2016-04-11 17:13:10 +01:00
drm_mipi_dsi.h drm/dsi: Add uevent callback 2016-06-13 10:45:57 +02:00
drm_mm.h drm/mm: use list_next_entry 2015-11-25 16:22:58 +01:00
drm_modes.h drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_modeset_helper_vtables.h drm/atomic-helper: nonblocking commit support 2016-06-10 17:11:16 +02:00
drm_modeset_lock.h drm: Implement drm_modeset_lock_all_ctx() 2015-12-02 23:10:59 +01:00
drm_of.h drm: add drm_of_encoder_active_endpoint helpers 2016-02-10 14:19:21 +01:00
drm_os_linux.h drm: Kill DRM_SUSER 2013-12-18 11:35:45 +10:00
drm_panel.h drm/panel: Flesh out kerneldoc 2016-05-06 16:04:48 +02:00
drm_pciids.h drm/radeon: add new OLAND pci id 2015-08-12 12:24:05 -04:00
drm_plane_helper.h drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_rect.h drm: Add "prefix" parameter to drm_rect_debug_print() 2015-11-24 11:47:46 +01:00
drm_simple_kms_helper.h drm: Add helper for simple display pipeline 2016-06-10 17:33:17 +02:00
drm_sysfs.h drm: Enable drm drivers to add drm sysfs devices. 2009-08-19 16:08:51 +10:00
drm_vma_manager.h drm/vma_manage: Drop has_offset 2016-04-20 12:58:53 +02:00
drmP.h drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
gma_drm.h drm/gma500: Remove unused ioctls 2014-03-17 20:11:57 +01:00
i915_component.h drm/i915: Add get_eld audio component 2015-12-10 13:39:27 +01:00
i915_drm.h drm/i915: Canonicalize stolen memory calculations 2016-04-25 13:30:32 +03:00
i915_pciids.h drm/i915/skl: Add missing SKL ids 2016-02-08 15:31:34 +02:00
intel-gtt.h drm/i915/gtt: Allow >= 4GB sizes for vm. 2015-06-26 10:41:13 +02:00