Keith Packard
62884cd386
drm: Add four ioctls for managing drm mode object leases [v7]
...
drm_mode_create_lease
Creates a lease for a list of drm mode objects, returning an
fd for the new drm_master and a 64-bit identifier for the lessee
drm_mode_list_lesees
List the identifiers of the lessees for a master file
drm_mode_get_lease
List the leased objects for a master file
drm_mode_revoke_lease
Erase the set of objects managed by a lease.
This should suffice to at least create and query leases.
Changes for v2 as suggested by Daniel Vetter <daniel.vetter@ffwll.ch>:
* query ioctls only query the master associated with
the provided file.
* 'mask_lease' value has been removed
* change ioctl has been removed.
Changes for v3 suggested in part by Dave Airlie <airlied@gmail.com>
* Add revoke ioctl.
Changes for v4 suggested by Dave Airlie <airlied@gmail.com>
* Expand on the comment about the magic use of &drm_lease_idr_object
* Pad lease ioctl structures to align on 64-bit boundaries
Changes for v5 suggested by Dave Airlie <airlied@gmail.com>
* Check for non-negative object_id in create_lease to avoid debug
output from the kernel.
Changes for v6 provided by Dave Airlie <airlied@gmail.com>
* For non-universal planes add primary/cursor planes to lease
If we aren't exposing universal planes to this userspace client,
and it requests a lease on a crtc, we should implicitly export the
primary and cursor planes for the crtc.
If the lessee doesn't request universal planes, it will just see
the crtc, but if it does request them it will then see the plane
objects as well.
This also moves the object look ups earlier as a side effect, so
we'd exit the ioctl quicker for non-existant objects.
* Restrict leases to crtc/connector/planes.
This only allows leasing for objects we wish to allow.
Changes for v7 provided by Dave Airlie <airlied@gmail.com>
* Check pad args are 0
* Check create flags and object count are valid.
* Check return from fd allocation
* Refactor lease idr setup and add some simple validation
* Use idr_mutex uniformly (Keith)
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2017-10-25 16:31:30 +10:00
..
bridge
drm/bridge/sii8620: add remote control support
2017-10-11 13:14:25 +02:00
i2c
drm/i2c: tda998x: Register ASoC hdmi-codec and add audio DT binding
2016-09-07 13:10:10 +01:00
tinydrm
drm/tinydrm: Generalize tinydrm_xrgb8888_to_gray8()
2017-08-09 17:55:50 +02:00
ttm
drm/ttm: add support for different pool sizes
2017-10-06 17:44:16 -04:00
ati_pcigart.h
drm_agpsupport.h
drm_atomic.h
drm/atomic: Make atomic iterators less surprising
2017-10-06 11:06:11 +02:00
drm_atomic_helper.h
drm: Nuke drm_atomic_helper_connector_dpms
2017-08-08 14:48:48 +02:00
drm_auth.h
drm: Add drm_object lease infrastructure [v5]
2017-10-25 16:31:29 +10:00
drm_blend.h
drm: Add DRM_MODE_ROTATE_ and DRM_MODE_REFLECT_ to UAPI
2017-05-22 09:49:48 +02:00
drm_bridge.h
drm/bridge: change return type of drm_bridge_add function
2017-08-21 08:51:53 +05:30
drm_cache.h
drm: Move drm_clflush prototypes to drm_cache header file
2017-01-10 11:17:01 +01:00
drm_color_mgmt.h
drm: drm_color_mgmt.h needs struct drm_crtc declaration
2017-05-02 10:30:23 +02:00
drm_connector.h
drm: Pass struct drm_file * to __drm_mode_object_find [v2]
2017-10-12 10:03:04 +10:00
drm_crtc.h
drm: Pass struct drm_file * to __drm_mode_object_find [v2]
2017-10-12 10:03:04 +10:00
drm_crtc_helper.h
drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes, v4.
2017-04-06 21:29:23 +02:00
drm_debugfs.h
drm/debugfs: Add kerneldoc
2017-03-24 09:36:06 +01:00
drm_debugfs_crc.h
drm: Add API for capturing frame CRCs
2016-10-17 16:44:34 +02:00
drm_device.h
drm: Extract drm_device.h
2017-08-11 10:47:17 +02:00
drm_displayid.h
drm_dp_dual_mode_helper.h
drm: Fix LSPCON kernel-doc
2016-10-19 18:20:40 +03:00
drm_dp_helper.h
drm/dp: Add defines for latency in sink
2017-09-28 09:39:35 -07:00
drm_dp_mst_helper.h
drm/dp/mst: Sideband message transaction to power up/down nodes
2017-09-11 16:03:57 +03:00
drm_drv.h
drm: vblank: use ktime_t instead of timeval
2017-10-13 08:34:46 +10:00
drm_edid.h
drm: add backwards compatibility support for drm_kms_helper.edid_firmware
2017-09-19 18:11:45 +03:00
drm_encoder.h
drm: Pass struct drm_file * to __drm_mode_object_find [v2]
2017-10-12 10:03:04 +10:00
drm_encoder_slave.h
drm: Don't include <drm/drm_encoder.h> in <drm/drm_crtc.h>
2016-12-18 16:29:29 +05:30
drm_fb_cma_helper.h
drm/fb-cma-helper: Remove unused functions
2017-10-01 17:05:39 +02:00
drm_fb_helper.h
drm: remove unused and redundant callbacks
2017-08-07 11:20:36 +02:00
drm_file.h
drm: introduce sync objects (v4)
2017-06-14 12:10:22 +10:00
drm_fixed.h
drm_flip_work.h
drm/kms-helpers: Use recommened kerneldoc for struct member refs
2017-01-25 16:18:57 +01:00
drm_fourcc.h
drm: Add mode_config .get_format_info() hook
2017-03-22 19:45:00 +02:00
drm_framebuffer.h
drm: Pass struct drm_file * to __drm_mode_object_find [v2]
2017-10-12 10:03:04 +10:00
drm_gem.h
drm/gem: Add drm_gem_dumb_map_offset()
2017-07-29 13:49:55 +02:00
drm_gem_cma_helper.h
drm/gem-cma-helper: Remove drm_gem_cma_dumb_map_offset()
2017-08-16 20:21:24 +02:00
drm_gem_framebuffer_helper.h
drm/gem-fb-helper: Use debug message on gem lookup failure
2017-09-16 14:06:53 +02:00
drm_global.h
drm: drop extern from function decls
2017-03-24 09:36:06 +01:00
drm_hashtab.h
drm: drop extern from function decls
2017-03-24 09:36:06 +01:00
drm_ioctl.h
new helper: drm_ioctl_kernel()
2017-05-27 15:39:28 -04:00
drm_irq.h
drm: Extract drm_vblank.[hc]
2017-06-01 08:02:14 +02:00
drm_lease.h
drm: Add four ioctls for managing drm mode object leases [v7]
2017-10-25 16:31:30 +10:00
drm_legacy.h
drm_mipi_dsi.h
drm_mm.h
lib/interval_tree: fast overlap detection
2017-09-08 18:26:49 -07:00
drm_mode_config.h
drm/plane: drop num_overlay_planes (v3)
2017-10-17 11:32:29 +10:00
drm_mode_object.h
drm: Add four ioctls for managing drm mode object leases [v7]
2017-10-25 16:31:30 +10:00
drm_modes.h
drm: add helper functions for YCBCR420 handling
2017-07-14 21:23:54 +03:00
drm_modeset_helper.h
drm: Pass 'dev' to drm_helper_mode_fill_fb_struct()
2016-12-15 14:03:30 +02:00
drm_modeset_helper_vtables.h
drm/vtables: Fix typo
2017-09-01 19:50:24 +02:00
drm_modeset_lock.h
drm/atomic: Prepare drm_modeset_lock infrastructure for interruptible waiting, v2.
2017-09-13 09:50:52 +02:00
drm_of.h
drm/drm_of: Move drm_of_panel_bridge_remove_function into header.
2017-10-13 16:59:36 +02:00
drm_os_linux.h
drm: remove writeq/readq function definitions
2017-06-02 10:41:20 -04:00
drm_panel.h
drm: make drm_panel.h self-contained
2017-05-16 17:17:02 +02:00
drm_pci.h
drm/pci: Deprecate drm_pci_init/exit completely
2017-06-20 10:41:03 +02:00
drm_pciids.h
drm_plane.h
drm: Pass struct drm_file * to __drm_mode_object_find [v2]
2017-10-12 10:03:04 +10:00
drm_plane_helper.h
drm: Add acquire ctx parameter to ->plane_disable
2017-03-29 09:14:58 +02:00
drm_prime.h
drm: Extract drm_vblank.[hc]
2017-06-01 08:02:14 +02:00
drm_print.h
drm: drm_printer: add __printf validation
2017-02-26 21:43:08 +01:00
drm_property.h
drm: Pass struct drm_file * to __drm_mode_object_find [v2]
2017-10-12 10:03:04 +10:00
drm_rect.h
drm/doc: move printf helpers out of drmP.h
2017-05-31 09:59:41 +02:00
drm_scdc_helper.h
drm: Fix warning when building docs for scdc_helper
2017-07-31 14:24:14 +02:00
drm_simple_kms_helper.h
drm: Plumb modifiers through plane init
2017-08-01 17:50:06 +01:00
drm_syncobj.h
drm/syncobj: add a new helper drm_syncobj_get_fd
2017-10-06 16:47:53 -04:00
drm_sysfs.h
drm: Consolidate and document sysfs support
2017-04-04 20:47:54 +02:00
drm_vblank.h
drm: Add CRTC_GET_SEQUENCE and CRTC_QUEUE_SEQUENCE ioctls [v3]
2017-10-23 11:15:03 +10:00
drm_vma_manager.h
drm: Extract drm_prime.h
2017-03-09 16:18:02 +01:00
drmP.h
drm: Add new LEASE debug level
2017-10-25 16:31:29 +10:00
gma_drm.h
i915_component.h
drm/i915/dp: DP audio API changes for MST
2016-09-22 09:01:55 -07:00
i915_drm.h
i915_pciids.h
drm/i915/kbl: Change a KBL pci id to GT2 from GT1.5
2017-09-21 06:22:29 -07:00
intel-gtt.h
drm/i915: Use fixed-sized types for stolen
2017-01-06 16:02:09 +00:00
intel_lpe_audio.h
ALSA: x86: Register multiple PCM devices for the LPE audio card
2017-05-03 16:24:00 +03:00