Subversion Repositories Kolibri OS

Rev

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

Rev 2997 Rev 3192
Line 631... Line 631...
631
	if (rdev->family >= CHIP_CAYMAN)
631
	if (rdev->family >= CHIP_CAYMAN)
632
		rdev->r600_blit.ring_size_per_loop += 9; /* additional DWs for surface sync */
632
		rdev->r600_blit.ring_size_per_loop += 9; /* additional DWs for surface sync */
Line 633... Line 633...
633
 
633
 
Line 634... Line -...
634
	rdev->r600_blit.max_dim = 16384;
-
 
635
 
-
 
636
	/* pin copy shader into vram if already initialized */
-
 
637
	if (rdev->r600_blit.shader_obj)
-
 
638
		goto done;
-
 
639
 
634
	rdev->r600_blit.max_dim = 16384;
Line 640... Line 635...
640
	mutex_init(&rdev->r600_blit.mutex);
635
 
641
	rdev->r600_blit.state_offset = 0;
636
	rdev->r600_blit.state_offset = 0;
642
 
637
 
Line 666... Line 661...
666
		obj_size += evergreen_ps_size * 4;
661
		obj_size += evergreen_ps_size * 4;
667
	else
662
	else
668
		obj_size += cayman_ps_size * 4;
663
		obj_size += cayman_ps_size * 4;
669
	obj_size = ALIGN(obj_size, 256);
664
	obj_size = ALIGN(obj_size, 256);
Line -... Line 665...
-
 
665
 
-
 
666
	/* pin copy shader into vram if not already initialized */
670
 
667
	if (!rdev->r600_blit.shader_obj) {
-
 
668
		r = radeon_bo_create(rdev, obj_size, PAGE_SIZE, true,
671
	r = radeon_bo_create(rdev, obj_size, PAGE_SIZE, true, RADEON_GEM_DOMAIN_VRAM,
669
				     RADEON_GEM_DOMAIN_VRAM,
672
				&rdev->r600_blit.shader_obj);
670
				     NULL, &rdev->r600_blit.shader_obj);
673
	if (r) {
671
	if (r) {
674
		DRM_ERROR("evergreen failed to allocate shader\n");
672
		DRM_ERROR("evergreen failed to allocate shader\n");
675
		return r;
673
		return r;
Line -... Line 674...
-
 
674
	}
-
 
675
 
-
 
676
		r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false);
-
 
677
		if (unlikely(r != 0))
-
 
678
			return r;
-
 
679
		r = radeon_bo_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM,
-
 
680
				  &rdev->r600_blit.shader_gpu_addr);
-
 
681
		radeon_bo_unreserve(rdev->r600_blit.shader_obj);
-
 
682
	if (r) {
-
 
683
			dev_err(rdev->dev, "(%d) pin blit object failed\n", r);
-
 
684
		return r;
-
 
685
	}
676
	}
686
	}
677
 
687
 
678
	DRM_DEBUG("evergreen blit allocated bo %08x vs %08x ps %08x\n",
688
	DRM_DEBUG("evergreen blit allocated bo %08x vs %08x ps %08x\n",
Line 679... Line 689...
679
		  obj_size,
689
		  obj_size,
Line 712... Line 722...
712
			*(u32 *)((unsigned long)ptr + rdev->r600_blit.ps_offset + i * 4) = cpu_to_le32(cayman_ps[i]);
722
			*(u32 *)((unsigned long)ptr + rdev->r600_blit.ps_offset + i * 4) = cpu_to_le32(cayman_ps[i]);
713
	}
723
	}
714
	radeon_bo_kunmap(rdev->r600_blit.shader_obj);
724
	radeon_bo_kunmap(rdev->r600_blit.shader_obj);
715
	radeon_bo_unreserve(rdev->r600_blit.shader_obj);
725
	radeon_bo_unreserve(rdev->r600_blit.shader_obj);
Line 716... Line -...
716
 
-
 
717
done:
-
 
718
	r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false);
-
 
719
	if (unlikely(r != 0))
-
 
720
		return r;
-
 
721
	r = radeon_bo_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM,
-
 
722
			  &rdev->r600_blit.shader_gpu_addr);
-
 
723
	radeon_bo_unreserve(rdev->r600_blit.shader_obj);
-
 
724
	if (r) {
-
 
725
		dev_err(rdev->dev, "(%d) pin blit object failed\n", r);
-
 
726
		return r;
-
 
727
	}
726
 
Line 728... Line 727...
728
//   radeon_ttm_set_active_vram_size(rdev, rdev->mc.real_vram_size);
727
//   radeon_ttm_set_active_vram_size(rdev, rdev->mc.real_vram_size);
Line 729... Line 728...
729
 
728