[PATCH 1/5] drm/amd/amdgpu: Clean up GFX6 tilemode programming

Deucher, Alexander Alexander.Deucher at amd.com
Tue May 23 14:29:41 UTC 2017


> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Tom St Denis
> Sent: Monday, May 15, 2017 9:49 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: StDenis, Tom
> Subject: [PATCH 1/5] drm/amd/amdgpu: Clean up GFX6 tilemode
> programming
> 
> Signed-off-by: Tom St Denis <tom.stdenis at amd.com>

Patches 1-4 are:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 1556 ++++++++++++++---------
> ----------
>  1 file changed, 676 insertions(+), 880 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> index 5d9e95bcd011..36a70e93b293 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> @@ -393,8 +393,11 @@ static int gfx_v6_0_init_microcode(struct
> amdgpu_device *adev)
> 
>  static void gfx_v6_0_tiling_mode_table_init(struct amdgpu_device *adev)
>  {
> -	const u32 num_tile_mode_states = 32;
> -	u32 reg_offset, gb_tile_moden, split_equal_to_row_size;
> +	const u32 num_tile_mode_states = ARRAY_SIZE(adev-
> >gfx.config.tile_mode_array);
> +	u32 reg_offset, split_equal_to_row_size, *tilemode;
> +
> +	memset(adev->gfx.config.tile_mode_array, 0, sizeof(adev-
> >gfx.config.tile_mode_array));
> +	tilemode = adev->gfx.config.tile_mode_array;
> 
>  	switch (adev->gfx.config.mem_row_size_in_kb) {
>  	case 1:
> @@ -410,887 +413,680 @@ static void
> gfx_v6_0_tiling_mode_table_init(struct amdgpu_device *adev)
>  	}
> 
>  	if (adev->asic_type == CHIP_VERDE) {
> -		for (reg_offset = 0; reg_offset < num_tile_mode_states;
> reg_offset++) {
> -			switch (reg_offset) {
> -			case 0:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 1:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 2:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 3:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 4:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16));
> -				break;
> -			case 5:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 6:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 7:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 8:
> -				gb_tile_moden =
> (ARRAY_MODE(ARRAY_LINEAR_ALIGNED));
> -				break;
> -			case 9:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16));
> -				break;
> -			case 10:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 11:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 12:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 13:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16));
> -				break;
> -			case 14:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 15:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 16:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 17:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 18:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16));
> -				break;
> -			case 19:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 20:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 21:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK));
> -				break;
> -			case 22:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK));
> -				break;
> -			case 23:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 24:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 25:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 26:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 27:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 28:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 29:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 30:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			default:
> -				continue;
> -			}
> -			adev->gfx.config.tile_mode_array[reg_offset] =
> gb_tile_moden;
> -			WREG32(mmGB_TILE_MODE0 + reg_offset,
> gb_tile_moden);
> -		}
> -	} else if (adev->asic_type == CHIP_OLAND ||
> -	    adev->asic_type == CHIP_HAINAN) {
> -		for (reg_offset = 0; reg_offset < num_tile_mode_states;
> reg_offset++) {
> -			switch (reg_offset) {
> -			case 0:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 1:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 2:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 3:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 4:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2));
> -				break;
> -			case 5:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK));
> -				break;
> -			case 6:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK));
> -				break;
> -			case 7:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 8:
> -				gb_tile_moden =
> (ARRAY_MODE(ARRAY_LINEAR_ALIGNED));
> -				break;
> -			case 9:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2));
> -				break;
> -			case 10:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 11:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 12:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 13:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2));
> -				break;
> -			case 14:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 15:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 16:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 17:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 18:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P2));
> -				break;
> -			case 19:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 20:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 21:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK));
> -				break;
> -			case 22:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK));
> -				break;
> -			case 23:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK));
> -				break;
> -			case 24:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_8_BANK));
> -				break;
> -			case 25:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 26:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 27:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 28:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 29:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 30:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P2) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			default:
> -				continue;
> -			}
> -			adev->gfx.config.tile_mode_array[reg_offset] =
> gb_tile_moden;
> -			WREG32(mmGB_TILE_MODE0 + reg_offset,
> gb_tile_moden);
> -		}
> +		tilemode[0] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[1] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[2] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[3] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[4] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16);
> +		tilemode[5] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[6] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[7] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[8] =   ARRAY_MODE(ARRAY_LINEAR_ALIGNED);
> +		tilemode[9] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16);
> +		tilemode[10] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[11] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[12] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[13] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16);
> +		tilemode[14] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[15] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[16] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[17] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[18] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THICK) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16);
> +		tilemode[19] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[20] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THICK) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[21] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK);
> +		tilemode[22] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK);
> +		tilemode[23] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[24] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[25] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[26] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[27] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[28] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[29] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[30] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		for (reg_offset = 0; reg_offset < num_tile_mode_states;
> reg_offset++)
> +			WREG32(mmGB_TILE_MODE0 + reg_offset,
> tilemode[reg_offset]);
> +	} else if (adev->asic_type == CHIP_OLAND || adev->asic_type ==
> CHIP_HAINAN) {
> +		tilemode[0] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[1] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[2] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[3] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[4] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2);
> +		tilemode[5] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK);
> +		tilemode[6] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK);
> +		tilemode[7] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[8] =   ARRAY_MODE(ARRAY_LINEAR_ALIGNED);
> +		tilemode[9] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2);
> +		tilemode[10] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[11] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[12] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[13] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2);
> +		tilemode[14] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[15] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[16] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[17] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[18] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THICK) |
> +				PIPE_CONFIG(ADDR_SURF_P2);
> +		tilemode[19] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[20] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THICK) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[21] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK);
> +		tilemode[22] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK);
> +		tilemode[23] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK);
> +		tilemode[24] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_8_BANK);
> +		tilemode[25] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[26] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[27] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[28] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[29] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[30] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P2) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		for (reg_offset = 0; reg_offset < num_tile_mode_states;
> reg_offset++)
> +			WREG32(mmGB_TILE_MODE0 + reg_offset,
> tilemode[reg_offset]);
>  	} else if ((adev->asic_type == CHIP_TAHITI) || (adev->asic_type ==
> CHIP_PITCAIRN)) {
> -		for (reg_offset = 0; reg_offset < num_tile_mode_states;
> reg_offset++) {
> -			switch (reg_offset) {
> -			case 0:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 1:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 2:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 3:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 4:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16));
> -				break;
> -			case 5:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 6:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 7:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 8:
> -				gb_tile_moden =
> (ARRAY_MODE(ARRAY_LINEAR_ALIGNED));
> -				break;
> -			case 9:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16));
> -				break;
> -			case 10:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 11:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 12:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 13:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16));
> -				break;
> -			case 14:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 15:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 16:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK));
> -				break;
> -			case 17:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 18:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_1D_TILED_THICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16));
> -				break;
> -			case 19:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 20:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THICK) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_16_BANK) |
> -
> TILE_SPLIT(split_equal_to_row_size));
> -				break;
> -			case 21:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 22:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_4_BANK));
> -				break;
> -			case 23:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 24:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 25:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 26:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 27:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 28:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 29:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			case 30:
> -				gb_tile_moden =
> (MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> -
> ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> -
> PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> -
> TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) |
> -
> BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
> -
> BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> -
> MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> -
> NUM_BANKS(ADDR_SURF_2_BANK));
> -				break;
> -			default:
> -				continue;
> -			}
> -			adev->gfx.config.tile_mode_array[reg_offset] =
> gb_tile_moden;
> -			WREG32(mmGB_TILE_MODE0 + reg_offset,
> gb_tile_moden);
> -		}
> -	} else{
> -
> +		tilemode[0] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[1] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[2] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[3] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[4] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16);
> +		tilemode[5] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[6] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[7] =
> MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[8] =   ARRAY_MODE(ARRAY_LINEAR_ALIGNED);
> +		tilemode[9] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16);
> +		tilemode[10] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[11] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[12] =
> MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[13] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16);
> +		tilemode[14] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[15] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[16] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_16_BANK);
> +		tilemode[17] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[18] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_1D_TILED_THICK) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16);
> +		tilemode[19] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[20] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THICK) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_16_BANK) |
> +				TILE_SPLIT(split_equal_to_row_size);
> +		tilemode[21] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[22] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_4_BANK);
> +		tilemode[23] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[24] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16)
> |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[25] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[26] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[27] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[28] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[29] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		tilemode[30] =
> MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
> +				ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
> +				PIPE_CONFIG(ADDR_SURF_P4_8x16) |
> +				TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) |
> +				BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1)
> |
> +
> 	BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
> +
> 	MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
> +				NUM_BANKS(ADDR_SURF_2_BANK);
> +		for (reg_offset = 0; reg_offset < num_tile_mode_states;
> reg_offset++)
> +			WREG32(mmGB_TILE_MODE0 + reg_offset,
> tilemode[reg_offset]);
> +	} else {
>  		DRM_ERROR("unknown asic: 0x%x\n", adev->asic_type);
>  	}
> -
>  }
> 
>  static void gfx_v6_0_select_se_sh(struct amdgpu_device *adev, u32
> se_num,
> --
> 2.12.0
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list