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 |