Subversion Repositories Kolibri OS

Rev

Rev 2335 | Rev 2342 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2335 Rev 2340
Line 725... Line 725...
725
			      gfp_t gfpmask)
725
			      gfp_t gfpmask)
726
{
726
{
727
	int page_count, i;
727
	int page_count, i;
728
	struct page *page;
728
	struct page *page;
Line 729... Line -...
729
 
-
 
730
    ENTER();
-
 
731
 
729
 
732
	/* Get the list of pages out of our struct file.  They'll be pinned
730
	/* Get the list of pages out of our struct file.  They'll be pinned
733
	 * at this point until we release them.
731
	 * at this point until we release them.
734
	 */
732
	 */
735
	page_count = obj->base.size / PAGE_SIZE;
733
	page_count = obj->base.size / PAGE_SIZE;
Line 748... Line 746...
748
	}
746
	}
Line 749... Line 747...
749
 
747
 
750
//   if (obj->tiling_mode != I915_TILING_NONE)
748
//   if (obj->tiling_mode != I915_TILING_NONE)
Line 751... Line 749...
751
//       i915_gem_object_do_bit_17_swizzle(obj);
749
//       i915_gem_object_do_bit_17_swizzle(obj);
Line 752... Line 750...
752
 
750
 
Line 753... Line 751...
753
    LEAVE();
751
 
754
 
752
 
Line 1067... Line 1065...
1067
    gfp_t gfpmask = 0; //__GFP_NORETRY | __GFP_NOWARN;
1065
    gfp_t gfpmask = 0; //__GFP_NORETRY | __GFP_NOWARN;
1068
	u32 size, fence_size, fence_alignment, unfenced_alignment;
1066
	u32 size, fence_size, fence_alignment, unfenced_alignment;
1069
	bool mappable, fenceable;
1067
	bool mappable, fenceable;
1070
	int ret;
1068
	int ret;
Line 1071... Line -...
1071
 
-
 
1072
    ENTER();
-
 
1073
 
1069
 
1074
	if (obj->madv != I915_MADV_WILLNEED) {
1070
	if (obj->madv != I915_MADV_WILLNEED) {
1075
		DRM_ERROR("Attempting to bind a purgeable object\n");
1071
		DRM_ERROR("Attempting to bind a purgeable object\n");
1076
		return -EINVAL;
1072
		return -EINVAL;
Line 1195... Line 1191...
1195
	mappable =
1191
	mappable =
1196
		obj->gtt_offset + obj->base.size <= dev_priv->mm.gtt_mappable_end;
1192
		obj->gtt_offset + obj->base.size <= dev_priv->mm.gtt_mappable_end;
Line 1197... Line 1193...
1197
 
1193
 
Line 1198... Line -...
1198
	obj->map_and_fenceable = mappable && fenceable;
-
 
1199
 
1194
	obj->map_and_fenceable = mappable && fenceable;
1200
    LEAVE();
1195
 
1201
//   trace_i915_gem_object_bind(obj, map_and_fenceable);
1196
//   trace_i915_gem_object_bind(obj, map_and_fenceable);
Line 1202... Line 1197...
1202
	return 0;
1197
	return 0;
Line 1495... Line 1490...
1495
{
1490
{
1496
	struct drm_device *dev = obj->base.dev;
1491
	struct drm_device *dev = obj->base.dev;
1497
	struct drm_i915_private *dev_priv = dev->dev_private;
1492
	struct drm_i915_private *dev_priv = dev->dev_private;
1498
	int ret;
1493
	int ret;
Line 1499... Line -...
1499
 
-
 
1500
    ENTER();
-
 
1501
 
1494
 
1502
	BUG_ON(obj->pin_count == DRM_I915_GEM_OBJECT_MAX_PIN_COUNT);
1495
	BUG_ON(obj->pin_count == DRM_I915_GEM_OBJECT_MAX_PIN_COUNT);
Line 1503... Line 1496...
1503
//   WARN_ON(i915_verify_lists(dev));
1496
//   WARN_ON(i915_verify_lists(dev));
1504
 
1497
 
Line 1532... Line 1525...
1532
			list_move_tail(&obj->mm_list,
1525
			list_move_tail(&obj->mm_list,
1533
				       &dev_priv->mm.pinned_list);
1526
				       &dev_priv->mm.pinned_list);
1534
	}
1527
	}
1535
	obj->pin_mappable |= map_and_fenceable;
1528
	obj->pin_mappable |= map_and_fenceable;
Line 1536... Line -...
1536
 
-
 
1537
    LEAVE();
-
 
1538
 
1529
 
1539
//   WARN_ON(i915_verify_lists(dev));
1530
//   WARN_ON(i915_verify_lists(dev));
1540
	return 0;
1531
	return 0;
Line 1584... Line 1575...
1584
struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
1575
struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
1585
						  size_t size)
1576
						  size_t size)
1586
{
1577
{
1587
	struct drm_i915_private *dev_priv = dev->dev_private;
1578
	struct drm_i915_private *dev_priv = dev->dev_private;
1588
	struct drm_i915_gem_object *obj;
1579
	struct drm_i915_gem_object *obj;
1589
    ENTER();
1580
 
1590
	obj = kzalloc(sizeof(*obj), GFP_KERNEL);
1581
	obj = kzalloc(sizeof(*obj), GFP_KERNEL);
1591
	if (obj == NULL)
1582
	if (obj == NULL)
1592
		return NULL;
1583
		return NULL;
Line 1593... Line 1584...
1593
 
1584
 
Line 1627... Line 1618...
1627
	INIT_LIST_HEAD(&obj->exec_list);
1618
	INIT_LIST_HEAD(&obj->exec_list);
1628
	INIT_LIST_HEAD(&obj->gpu_write_list);
1619
	INIT_LIST_HEAD(&obj->gpu_write_list);
1629
	obj->madv = I915_MADV_WILLNEED;
1620
	obj->madv = I915_MADV_WILLNEED;
1630
	/* Avoid an unnecessary call to unbind on the first bind. */
1621
	/* Avoid an unnecessary call to unbind on the first bind. */
1631
	obj->map_and_fenceable = true;
1622
	obj->map_and_fenceable = true;
1632
    LEAVE();
1623
 
1633
	return obj;
1624
	return obj;
1634
}
1625
}