linux/include/drm
Chris Wilson 202b52b7fb drm: Track drm_mm nodes with an interval tree
In addition to the last-in/first-out stack for accessing drm_mm nodes,
we occasionally and in the future often want to find a drm_mm_node by an
address. To do so efficiently we need to track the nodes in an interval
tree - lookups for a particular address will then be O(lg(N)), where N
is the number of nodes in the range manager as opposed to O(N).
Insertion however gains an extra O(lg(N)) step for all nodes
irrespective of whether the interval tree is in use. For future i915
patches, eliminating the linear walk is a significant improvement.

v2: Use generic interval-tree template for u64 and faster insertion.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: David Herrmann <dh.herrmann@gmail.com>
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1470236651-678-1-git-send-email-chris@chris-wilson.co.uk
2016-08-08 10:05:16 +02:00
..
bridge drm/bridge: analogix_dp: passing the connector as an argument in .get_modes() 2016-07-05 21:53:38 +08:00
i2c drm/i2c: tda998x: add video and audio input configuration 2013-08-19 09:10:32 +10:00
ttm drm/ttm: partial revert "cleanup ttm_tt_(unbind|destroy)" v3 2016-07-29 14:37:04 -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_auth.h drm: document drm_auth.c 2016-06-21 22:10:55 +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_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 generic zpos property 2016-07-29 09:59:30 +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/dp: Add drm_dp_psr_setup_time() 2016-08-03 07:06:28 +10:00
drm_dp_mst_helper.h drm/dp-mst: Missing kernel doc 2016-07-19 10:31:53 +02: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 suspend helper 2016-06-18 18:33:54 -07: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_hashtab.h
drm_irq.h drm: Extract&Document drm_irq.h 2016-07-19 10:29:47 +02:00
drm_legacy.h drm: document drm_auth.c 2016-06-21 22:10:55 +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: Make set_tear_scanline command consistent 2016-07-12 13:19:26 +02:00
drm_mm.h drm: Track drm_mm nodes with an interval tree 2016-08-08 10:05:16 +02: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_vma_manager.h drm/vma_manage: Drop has_offset 2016-04-20 12:58:53 +02:00
drmP.h drm: Extract&Document drm_irq.h 2016-07-19 10:29:47 +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: Removing PCI IDs that are no longer listed as Kabylake. 2016-06-29 12:19:13 +03:00
intel-gtt.h drm/i915: Add support for mapping an object page by page 2016-06-13 10:03:54 +01:00