• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/gpu/drm/

Lines Matching refs:node

83 	struct drm_mm_node *node;
88 node = kzalloc(sizeof(*node), GFP_KERNEL);
91 if (unlikely(node == NULL)) {
97 list_add_tail(&node->free_stack, &mm->unused_nodes);
150 struct drm_mm_node *drm_mm_get_block_generic(struct drm_mm_node *node,
160 tmp = node->start % alignment;
164 drm_mm_split_at_start(node, alignment - tmp, atomic);
169 if (node->size == size) {
170 list_del_init(&node->free_stack);
171 node->free = 0;
173 node = drm_mm_split_at_start(node, size, atomic);
179 return node;
183 struct drm_mm_node *drm_mm_get_block_range_generic(struct drm_mm_node *node,
194 if (node->start < start)
195 wasted += start - node->start;
197 tmp = ((node->start + wasted) % alignment);
202 align_splitoff = drm_mm_split_at_start(node, wasted, atomic);
207 if (node->size == size) {
208 list_del_init(&node->free_stack);
209 node->free = 0;
211 node = drm_mm_split_at_start(node, size, atomic);
217 return node;
399 * Add a node to the scan list that might be freed to make space for the desired
404 int drm_mm_scan_add_block(struct drm_mm_node *node)
406 struct drm_mm *mm = node->mm;
414 BUG_ON(node->free);
415 node->scanned_block = 1;
416 node->free = 1;
418 if (node->node_list.prev != &mm->node_list) {
419 prev_node = list_entry(node->node_list.prev, struct drm_mm_node,
425 node->start = prev_node->start;
426 node->size += prev_node->size;
434 if (node->node_list.next != &mm->node_list) {
435 next_node = list_entry(node->node_list.next, struct drm_mm_node,
441 node->size += next_node->size;
452 node->free_stack.prev = prev_free;
453 node->free_stack.next = next_free;
455 if (check_free_hole(node->start, node->start + node->size,
457 mm->scan_hit_start = node->start;
458 mm->scan_hit_size = node->size;
468 * Remove a node from the scan list.
481 int drm_mm_scan_remove_block(struct drm_mm_node *node)
483 struct drm_mm *mm = node->mm;
488 BUG_ON(!node->scanned_block);
489 node->scanned_block = 0;
490 node->free = 0;
492 prev_node = list_entry(node->free_stack.prev, struct drm_mm_node,
494 next_node = list_entry(node->free_stack.next, struct drm_mm_node,
501 list_add_tail(&prev_node->node_list, &node->node_list);
503 node->start = prev_node->start + prev_node->size;
504 node->size -= prev_node->size;
511 list_add(&next_node->node_list, &node->node_list);
513 node->size -= next_node->size;
516 INIT_LIST_HEAD(&node->free_stack);
521 if (node->start >= mm->scan_hit_start &&
522 node->start + node->size