aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
diff options
context:
space:
mode:
authorFlora Cui <Flora.Cui@amd.com>2016-12-14 01:35:49 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-12-20 19:42:12 -0500
commit7c0a705e0326a7eed2149eb0b7b30e23897becda (patch)
treecfc37ba3e928da492343f11fafb78f4cc458ebd2 /drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
parenta1f49cc179ce6b7b7758ae3ff5cdb138d0ee0f56 (diff)
drm/amdgpu: update golden setting/tiling table of tahiti
Signed-off-by: Flora Cui <Flora.Cui@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c344
1 files changed, 198 insertions, 146 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
index 558640aee15a..aa4472343901 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
@@ -656,239 +656,291 @@ static void gfx_v6_0_tiling_mode_table_init(struct amdgpu_device *adev)
656 } else if ((adev->asic_type == CHIP_TAHITI) || (adev->asic_type == CHIP_PITCAIRN)) { 656 } else if ((adev->asic_type == CHIP_TAHITI) || (adev->asic_type == CHIP_PITCAIRN)) {
657 for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) { 657 for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) {
658 switch (reg_offset) { 658 switch (reg_offset) {
659 case 0: /* non-AA compressed depth or any compressed stencil */ 659 case 0:
660 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 660 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
661 MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) | 661 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
662 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 662 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
663 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) | 663 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
664 NUM_BANKS(ADDR_SURF_16_BANK) |
665 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 664 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
666 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | 665 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
667 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 666 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
667 NUM_BANKS(ADDR_SURF_16_BANK));
668 break; 668 break;
669 case 1: /* 2xAA/4xAA compressed depth only */ 669 case 1:
670 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 670 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
671 MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) | 671 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
672 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 672 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
673 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) | 673 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
674 NUM_BANKS(ADDR_SURF_16_BANK) |
675 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 674 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
676 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | 675 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
677 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 676 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
677 NUM_BANKS(ADDR_SURF_16_BANK));
678 break; 678 break;
679 case 2: /* 8xAA compressed depth only */ 679 case 2:
680 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 680 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
681 MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) | 681 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
682 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 682 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
683 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | 683 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
684 NUM_BANKS(ADDR_SURF_16_BANK) |
685 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 684 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
686 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | 685 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
687 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 686 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
687 NUM_BANKS(ADDR_SURF_16_BANK));
688 break; 688 break;
689 case 3: /* 2xAA/4xAA compressed depth with stencil (for depth buffer) */ 689 case 3:
690 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 690 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
691 MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) | 691 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
692 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 692 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
693 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
694 NUM_BANKS(ADDR_SURF_16_BANK) |
695 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 693 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
696 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | 694 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
697 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 695 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
696 NUM_BANKS(ADDR_SURF_4_BANK) |
697 TILE_SPLIT(split_equal_to_row_size));
698 break; 698 break;
699 case 4: /* Maps w/ a dimension less than the 2D macro-tile dimensions (for mipmapped depth textures) */ 699 case 4:
700 gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) | 700 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
701 MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) | 701 ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
702 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 702 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16));
703 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
704 NUM_BANKS(ADDR_SURF_16_BANK) |
705 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
706 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
707 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
708 break; 703 break;
709 case 5: /* Uncompressed 16bpp depth - and stencil buffer allocated with it */ 704 case 5:
710 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 705 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
711 MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) | 706 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
712 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 707 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
713 TILE_SPLIT(split_equal_to_row_size) | 708 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
714 NUM_BANKS(ADDR_SURF_16_BANK) |
715 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 709 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
716 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) | 710 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
717 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 711 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
712 NUM_BANKS(ADDR_SURF_2_BANK));
718 break; 713 break;
719 case 6: /* Uncompressed 32bpp depth - and stencil buffer allocated with it */ 714 case 6:
720 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 715 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
721 MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) | 716 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
722 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 717 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
723 TILE_SPLIT(split_equal_to_row_size) | 718 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
724 NUM_BANKS(ADDR_SURF_16_BANK) |
725 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 719 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
726 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | 720 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
727 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1)); 721 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
722 NUM_BANKS(ADDR_SURF_2_BANK));
728 break; 723 break;
729 case 7: /* Uncompressed 8bpp stencil without depth (drivers typically do not use) */ 724 case 7:
730 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 725 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
731 MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) | 726 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
732 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 727 PIPE_CONFIG(ADDR_SURF_P4_8x16) |
733 TILE_SPLIT(split_equal_to_row_size) | 728 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
734 NUM_BANKS(ADDR_SURF_16_BANK) |
735 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 729 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
736 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | 730 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
737 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 731 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
732 NUM_BANKS(ADDR_SURF_2_BANK));
738 break; 733 break;
739 case 8: /* 1D and 1D Array Surfaces */ 734 case 8:
740 gb_tile_moden = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED) | 735 gb_tile_moden = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED));
741 MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
742 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
743 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
744 NUM_BANKS(ADDR_SURF_16_BANK) |
745 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
746 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
747 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
748 break; 736 break;
749 case 9: /* Displayable maps. */ 737 case 9:
750 gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) | 738 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
751 MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) | 739 ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
752 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 740 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16));
753 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
754 NUM_BANKS(ADDR_SURF_16_BANK) |
755 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
756 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
757 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
758 break; 741 break;
759 case 10: /* Display 8bpp. */ 742 case 10:
760 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 743 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
761 MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) | 744 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
762 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 745 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
763 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | 746 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
764 NUM_BANKS(ADDR_SURF_16_BANK) |
765 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 747 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
766 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | 748 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
767 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 749 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
750 NUM_BANKS(ADDR_SURF_16_BANK));
768 break; 751 break;
769 case 11: /* Display 16bpp. */ 752 case 11:
770 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 753 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
771 MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) | 754 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
772 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 755 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
773 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | 756 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
774 NUM_BANKS(ADDR_SURF_16_BANK) |
775 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 757 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
776 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) | 758 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
777 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 759 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
760 NUM_BANKS(ADDR_SURF_16_BANK));
778 break; 761 break;
779 case 12: /* Display 32bpp. */ 762 case 12:
780 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 763 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
781 MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) | 764 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
782 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 765 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
783 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) | 766 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
784 NUM_BANKS(ADDR_SURF_16_BANK) |
785 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 767 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
786 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | 768 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
787 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1)); 769 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
770 NUM_BANKS(ADDR_SURF_16_BANK));
788 break; 771 break;
789 case 13: /* Thin. */ 772 case 13:
790 gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) | 773 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
791 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 774 ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
792 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 775 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16));
793 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
794 NUM_BANKS(ADDR_SURF_16_BANK) |
795 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
796 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
797 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
798 break; 776 break;
799 case 14: /* Thin 8 bpp. */ 777 case 14:
800 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 778 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
801 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 779 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
802 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 780 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
803 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | 781 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
804 NUM_BANKS(ADDR_SURF_16_BANK) |
805 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 782 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
806 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | 783 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
807 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1)); 784 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
785 NUM_BANKS(ADDR_SURF_16_BANK));
808 break; 786 break;
809 case 15: /* Thin 16 bpp. */ 787 case 15:
810 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 788 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
811 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 789 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
812 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 790 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
813 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | 791 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
814 NUM_BANKS(ADDR_SURF_16_BANK) |
815 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 792 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
816 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) | 793 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
817 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1)); 794 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
795 NUM_BANKS(ADDR_SURF_16_BANK));
818 break; 796 break;
819 case 16: /* Thin 32 bpp. */ 797 case 16:
820 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 798 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
821 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 799 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
822 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 800 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
823 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) | 801 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
824 NUM_BANKS(ADDR_SURF_16_BANK) |
825 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 802 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
826 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | 803 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
827 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1)); 804 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
805 NUM_BANKS(ADDR_SURF_16_BANK));
828 break; 806 break;
829 case 17: /* Thin 64 bpp. */ 807 case 17:
830 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 808 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
831 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 809 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
832 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 810 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
833 TILE_SPLIT(split_equal_to_row_size) | 811 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
812 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
813 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
834 NUM_BANKS(ADDR_SURF_16_BANK) | 814 NUM_BANKS(ADDR_SURF_16_BANK) |
815 TILE_SPLIT(split_equal_to_row_size));
816 break;
817 case 18:
818 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
819 ARRAY_MODE(ARRAY_1D_TILED_THICK) |
820 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16));
821 break;
822 case 19:
823 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
824 ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
825 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
835 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 826 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
836 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | 827 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
837 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1)); 828 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
829 NUM_BANKS(ADDR_SURF_16_BANK) |
830 TILE_SPLIT(split_equal_to_row_size));
838 break; 831 break;
839 case 21: /* 8 bpp PRT. */ 832 case 20:
840 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 833 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
841 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 834 ARRAY_MODE(ARRAY_2D_TILED_THICK) |
842 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 835 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
843 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | 836 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
837 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
838 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
844 NUM_BANKS(ADDR_SURF_16_BANK) | 839 NUM_BANKS(ADDR_SURF_16_BANK) |
845 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) | 840 TILE_SPLIT(split_equal_to_row_size));
846 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
847 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
848 break; 841 break;
849 case 22: /* 16 bpp PRT */ 842 case 21:
850 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 843 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
851 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 844 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
845 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
846 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
847 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
848 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
849 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
850 NUM_BANKS(ADDR_SURF_4_BANK));
851 break;
852 case 22:
853 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
854 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
852 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 855 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
853 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | 856 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
854 NUM_BANKS(ADDR_SURF_16_BANK) |
855 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 857 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
856 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | 858 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
857 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4)); 859 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
860 NUM_BANKS(ADDR_SURF_4_BANK));
858 break; 861 break;
859 case 23: /* 32 bpp PRT */ 862 case 23:
860 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 863 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
861 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 864 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
862 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 865 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
863 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | 866 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
864 NUM_BANKS(ADDR_SURF_16_BANK) |
865 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 867 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
866 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) | 868 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
867 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 869 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
870 NUM_BANKS(ADDR_SURF_2_BANK));
868 break; 871 break;
869 case 24: /* 64 bpp PRT */ 872 case 24:
870 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 873 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
871 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 874 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
872 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 875 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
873 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) | 876 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
874 NUM_BANKS(ADDR_SURF_16_BANK) |
875 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 877 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
876 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | 878 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
877 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2)); 879 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
880 NUM_BANKS(ADDR_SURF_2_BANK));
878 break; 881 break;
879 case 25: /* 128 bpp PRT */ 882 case 25:
880 gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | 883 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
881 MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) | 884 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
882 PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) | 885 PIPE_CONFIG(ADDR_SURF_P4_8x16) |
883 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) | 886 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
884 NUM_BANKS(ADDR_SURF_8_BANK) |
885 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | 887 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
886 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | 888 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
887 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1)); 889 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
890 NUM_BANKS(ADDR_SURF_2_BANK));
888 break; 891 break;
889 default: 892 case 26:
890 gb_tile_moden = 0; 893 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
894 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
895 PIPE_CONFIG(ADDR_SURF_P4_8x16) |
896 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
897 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
898 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
899 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
900 NUM_BANKS(ADDR_SURF_2_BANK));
901 break;
902 case 27:
903 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
904 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
905 PIPE_CONFIG(ADDR_SURF_P4_8x16) |
906 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
907 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
908 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
909 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
910 NUM_BANKS(ADDR_SURF_2_BANK));
891 break; 911 break;
912 case 28:
913 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
914 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
915 PIPE_CONFIG(ADDR_SURF_P4_8x16) |
916 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
917 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
918 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
919 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
920 NUM_BANKS(ADDR_SURF_2_BANK));
921 break;
922 case 29:
923 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
924 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
925 PIPE_CONFIG(ADDR_SURF_P4_8x16) |
926 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
927 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
928 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
929 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
930 NUM_BANKS(ADDR_SURF_2_BANK));
931 break;
932 case 30:
933 gb_tile_moden = (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
934 ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
935 PIPE_CONFIG(ADDR_SURF_P4_8x16) |
936 TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) |
937 BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
938 BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
939 MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
940 NUM_BANKS(ADDR_SURF_2_BANK));
941 break;
942 default:
943 continue;
892 } 944 }
893 adev->gfx.config.tile_mode_array[reg_offset] = gb_tile_moden; 945 adev->gfx.config.tile_mode_array[reg_offset] = gb_tile_moden;
894 WREG32(mmGB_TILE_MODE0 + reg_offset, gb_tile_moden); 946 WREG32(mmGB_TILE_MODE0 + reg_offset, gb_tile_moden);