Home | History | Annotate | Download | only in drm

Lines Matching defs:hole

532  * 0 on success, -ENOSPC if there's no hole where @node is.
537 struct drm_mm_node *hole;
545 /* Find the relevant hole to add our node to */
546 hole = find_hole(mm, node->start);
547 if (!hole)
550 adj_start = hole_start = __drm_mm_hole_node_start(hole);
551 adj_end = hole_end = hole_start + hole->hole_size;
554 mm->color_adjust(hole, node->color, &adj_start, &adj_end);
562 list_add(&node->node_list, &hole->node_list);
564 drm_mm_interval_tree_add_node(hole, node);
568 rm_hole(hole);
570 add_hole(hole);
598 * 0 on success, -ENOSPC if there's no suitable hole.
607 struct drm_mm_node *hole;
626 for (hole = first_hole(mm, range_start, range_end, size, mode);
627 hole;
628 hole = once ? NULL : next_hole(mm, hole, mode)) {
629 u64 hole_start = __drm_mm_hole_node_start(hole);
630 u64 hole_end = hole_start + hole->hole_size;
643 mm->color_adjust(hole, color, &col_start, &col_end);
683 list_add(&node->node_list, &hole->node_list);
685 drm_mm_interval_tree_add_node(hole, node);
688 rm_hole(hole);
690 add_hole(hole);
786 * until there's a suitable hole: Especially for big objects or nodes that
795 * drm_mm_scan_add_block() until a suitable hole is found or there are no
824 * hole.
869 * hole.
872 * True if a hole has been found, false otherwise.
878 struct drm_mm_node *hole;
889 /* Remove this block from the node_list so that we enlarge the hole
894 hole = list_prev_entry(node, node_list);
895 DRM_MM_BUG_ON(list_next_entry(hole, node_list) != node);
898 hole_start = __drm_mm_hole_node_start(hole);
899 hole_end = __drm_mm_hole_node_end(hole);
904 mm->color_adjust(hole, scan->color, &col_start, &col_end);
963 * return false when no hole has been found.
983 * hole.
996 * drm_mm_scan_color_evict - evict overlapping nodes on either side of hole
997 * @scan: drm_mm scan with target hole
1000 * need to remove a few more nodes from either side of the target hole if
1009 struct drm_mm_node *hole;
1018 * The hole found during scanning should ideally be the first element
1022 list_for_each_entry(hole, &mm->hole_stack, hole_stack) {
1023 hole_start = __drm_mm_hole_node_start(hole);
1024 hole_end = hole_start + hole->hole_size;
1031 /* We should only be called after we found the hole previously */
1032 DRM_MM_BUG_ON(&hole->hole_stack == &mm->hole_stack);
1033 if (unlikely(&hole->hole_stack == &mm->hole_stack))
1039 mm->color_adjust(hole, scan->color, &hole_start, &hole_end);
1041 return hole;
1043 return list_next_entry(hole, node_list);
1074 /* Clever trick to avoid a special case in the free hole tracking. */