13ce0a23dSJerome Glisse /* 23ce0a23dSJerome Glisse * Copyright 2009 Advanced Micro Devices, Inc. 33ce0a23dSJerome Glisse * Copyright 2009 Red Hat Inc. 43ce0a23dSJerome Glisse * 53ce0a23dSJerome Glisse * Permission is hereby granted, free of charge, to any person obtaining a 63ce0a23dSJerome Glisse * copy of this software and associated documentation files (the "Software"), 73ce0a23dSJerome Glisse * to deal in the Software without restriction, including without limitation 83ce0a23dSJerome Glisse * the rights to use, copy, modify, merge, publish, distribute, sublicense, 93ce0a23dSJerome Glisse * and/or sell copies of the Software, and to permit persons to whom the 103ce0a23dSJerome Glisse * Software is furnished to do so, subject to the following conditions: 113ce0a23dSJerome Glisse * 123ce0a23dSJerome Glisse * The above copyright notice and this permission notice shall be included in 133ce0a23dSJerome Glisse * all copies or substantial portions of the Software. 143ce0a23dSJerome Glisse * 153ce0a23dSJerome Glisse * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 163ce0a23dSJerome Glisse * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 173ce0a23dSJerome Glisse * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 183ce0a23dSJerome Glisse * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 193ce0a23dSJerome Glisse * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 203ce0a23dSJerome Glisse * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 213ce0a23dSJerome Glisse * OTHER DEALINGS IN THE SOFTWARE. 223ce0a23dSJerome Glisse * 233ce0a23dSJerome Glisse * Authors: Dave Airlie 243ce0a23dSJerome Glisse * Alex Deucher 253ce0a23dSJerome Glisse * Jerome Glisse 263ce0a23dSJerome Glisse */ 273ce0a23dSJerome Glisse #ifndef R600D_H 283ce0a23dSJerome Glisse #define R600D_H 293ce0a23dSJerome Glisse 303ce0a23dSJerome Glisse #define CP_PACKET2 0x80000000 313ce0a23dSJerome Glisse #define PACKET2_PAD_SHIFT 0 323ce0a23dSJerome Glisse #define PACKET2_PAD_MASK (0x3fffffff << 0) 333ce0a23dSJerome Glisse 343ce0a23dSJerome Glisse #define PACKET2(v) (CP_PACKET2 | REG_SET(PACKET2_PAD, (v))) 353ce0a23dSJerome Glisse 363ce0a23dSJerome Glisse #define R6XX_MAX_SH_GPRS 256 373ce0a23dSJerome Glisse #define R6XX_MAX_TEMP_GPRS 16 383ce0a23dSJerome Glisse #define R6XX_MAX_SH_THREADS 256 393ce0a23dSJerome Glisse #define R6XX_MAX_SH_STACK_ENTRIES 4096 403ce0a23dSJerome Glisse #define R6XX_MAX_BACKENDS 8 413ce0a23dSJerome Glisse #define R6XX_MAX_BACKENDS_MASK 0xff 423ce0a23dSJerome Glisse #define R6XX_MAX_SIMDS 8 433ce0a23dSJerome Glisse #define R6XX_MAX_SIMDS_MASK 0xff 443ce0a23dSJerome Glisse #define R6XX_MAX_PIPES 8 453ce0a23dSJerome Glisse #define R6XX_MAX_PIPES_MASK 0xff 463ce0a23dSJerome Glisse 4716790569SAlex Deucher /* tiling bits */ 4816790569SAlex Deucher #define ARRAY_LINEAR_GENERAL 0x00000000 4916790569SAlex Deucher #define ARRAY_LINEAR_ALIGNED 0x00000001 5016790569SAlex Deucher #define ARRAY_1D_TILED_THIN1 0x00000002 5116790569SAlex Deucher #define ARRAY_2D_TILED_THIN1 0x00000004 5216790569SAlex Deucher 533ce0a23dSJerome Glisse /* Registers */ 543ce0a23dSJerome Glisse #define ARB_POP 0x2418 553ce0a23dSJerome Glisse #define ENABLE_TC128 (1 << 30) 563ce0a23dSJerome Glisse #define ARB_GDEC_RD_CNTL 0x246C 573ce0a23dSJerome Glisse 583ce0a23dSJerome Glisse #define CC_GC_SHADER_PIPE_CONFIG 0x8950 593ce0a23dSJerome Glisse #define CC_RB_BACKEND_DISABLE 0x98F4 603ce0a23dSJerome Glisse #define BACKEND_DISABLE(x) ((x) << 16) 613ce0a23dSJerome Glisse 62523885deSMarek Olšák #define R_028808_CB_COLOR_CONTROL 0x28808 63523885deSMarek Olšák #define S_028808_SPECIAL_OP(x) (((x) & 0x7) << 4) 64523885deSMarek Olšák #define G_028808_SPECIAL_OP(x) (((x) >> 4) & 0x7) 65523885deSMarek Olšák #define C_028808_SPECIAL_OP 0xFFFFFF8F 66523885deSMarek Olšák #define V_028808_SPECIAL_NORMAL 0x00 67523885deSMarek Olšák #define V_028808_SPECIAL_DISABLE 0x01 68523885deSMarek Olšák #define V_028808_SPECIAL_RESOLVE_BOX 0x07 69523885deSMarek Olšák 703ce0a23dSJerome Glisse #define CB_COLOR0_BASE 0x28040 713ce0a23dSJerome Glisse #define CB_COLOR1_BASE 0x28044 723ce0a23dSJerome Glisse #define CB_COLOR2_BASE 0x28048 733ce0a23dSJerome Glisse #define CB_COLOR3_BASE 0x2804C 743ce0a23dSJerome Glisse #define CB_COLOR4_BASE 0x28050 753ce0a23dSJerome Glisse #define CB_COLOR5_BASE 0x28054 763ce0a23dSJerome Glisse #define CB_COLOR6_BASE 0x28058 773ce0a23dSJerome Glisse #define CB_COLOR7_BASE 0x2805C 783ce0a23dSJerome Glisse #define CB_COLOR7_FRAG 0x280FC 793ce0a23dSJerome Glisse 803ce0a23dSJerome Glisse #define CB_COLOR0_SIZE 0x28060 813ce0a23dSJerome Glisse #define CB_COLOR0_VIEW 0x28080 82285484e2SJerome Glisse #define R_028080_CB_COLOR0_VIEW 0x028080 83285484e2SJerome Glisse #define S_028080_SLICE_START(x) (((x) & 0x7FF) << 0) 84285484e2SJerome Glisse #define G_028080_SLICE_START(x) (((x) >> 0) & 0x7FF) 85285484e2SJerome Glisse #define C_028080_SLICE_START 0xFFFFF800 86285484e2SJerome Glisse #define S_028080_SLICE_MAX(x) (((x) & 0x7FF) << 13) 87285484e2SJerome Glisse #define G_028080_SLICE_MAX(x) (((x) >> 13) & 0x7FF) 88285484e2SJerome Glisse #define C_028080_SLICE_MAX 0xFF001FFF 89285484e2SJerome Glisse #define R_028084_CB_COLOR1_VIEW 0x028084 90285484e2SJerome Glisse #define R_028088_CB_COLOR2_VIEW 0x028088 91285484e2SJerome Glisse #define R_02808C_CB_COLOR3_VIEW 0x02808C 92285484e2SJerome Glisse #define R_028090_CB_COLOR4_VIEW 0x028090 93285484e2SJerome Glisse #define R_028094_CB_COLOR5_VIEW 0x028094 94285484e2SJerome Glisse #define R_028098_CB_COLOR6_VIEW 0x028098 95285484e2SJerome Glisse #define R_02809C_CB_COLOR7_VIEW 0x02809C 96c116cc94SMarek Olšák #define R_028100_CB_COLOR0_MASK 0x028100 97c116cc94SMarek Olšák #define S_028100_CMASK_BLOCK_MAX(x) (((x) & 0xFFF) << 0) 98c116cc94SMarek Olšák #define G_028100_CMASK_BLOCK_MAX(x) (((x) >> 0) & 0xFFF) 99c116cc94SMarek Olšák #define C_028100_CMASK_BLOCK_MAX 0xFFFFF000 100c116cc94SMarek Olšák #define S_028100_FMASK_TILE_MAX(x) (((x) & 0xFFFFF) << 12) 101c116cc94SMarek Olšák #define G_028100_FMASK_TILE_MAX(x) (((x) >> 12) & 0xFFFFF) 102c116cc94SMarek Olšák #define C_028100_FMASK_TILE_MAX 0x00000FFF 103c116cc94SMarek Olšák #define R_028104_CB_COLOR1_MASK 0x028104 104c116cc94SMarek Olšák #define R_028108_CB_COLOR2_MASK 0x028108 105c116cc94SMarek Olšák #define R_02810C_CB_COLOR3_MASK 0x02810C 106c116cc94SMarek Olšák #define R_028110_CB_COLOR4_MASK 0x028110 107c116cc94SMarek Olšák #define R_028114_CB_COLOR5_MASK 0x028114 108c116cc94SMarek Olšák #define R_028118_CB_COLOR6_MASK 0x028118 109c116cc94SMarek Olšák #define R_02811C_CB_COLOR7_MASK 0x02811C 1103ce0a23dSJerome Glisse #define CB_COLOR0_INFO 0x280a0 1113a38612eSIlija Hadzic # define CB_FORMAT(x) ((x) << 2) 1123a38612eSIlija Hadzic # define CB_ARRAY_MODE(x) ((x) << 8) 1133a38612eSIlija Hadzic # define CB_SOURCE_FORMAT(x) ((x) << 27) 1143a38612eSIlija Hadzic # define CB_SF_EXPORT_FULL 0 1153a38612eSIlija Hadzic # define CB_SF_EXPORT_NORM 1 1163ce0a23dSJerome Glisse #define CB_COLOR0_TILE 0x280c0 1173ce0a23dSJerome Glisse #define CB_COLOR0_FRAG 0x280e0 1183ce0a23dSJerome Glisse #define CB_COLOR0_MASK 0x28100 1193ce0a23dSJerome Glisse 1205f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_0 0x28940 1215f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_1 0x28944 1225f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_2 0x28948 1235f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_3 0x2894c 1245f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_4 0x28950 1255f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_5 0x28954 1265f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_6 0x28958 1275f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_7 0x2895c 1285f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_8 0x28960 1295f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_9 0x28964 1305f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_10 0x28968 1315f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_11 0x2896c 1325f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_12 0x28970 1335f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_13 0x28974 1345f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_14 0x28978 1355f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_PS_15 0x2897c 1365f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_0 0x28980 1375f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_1 0x28984 1385f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_2 0x28988 1395f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_3 0x2898c 1405f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_4 0x28990 1415f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_5 0x28994 1425f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_6 0x28998 1435f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_7 0x2899c 1445f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_8 0x289a0 1455f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_9 0x289a4 1465f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_10 0x289a8 1475f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_11 0x289ac 1485f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_12 0x289b0 1495f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_13 0x289b4 1505f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_14 0x289b8 1515f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_VS_15 0x289bc 1525f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_0 0x289c0 1535f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_1 0x289c4 1545f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_2 0x289c8 1555f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_3 0x289cc 1565f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_4 0x289d0 1575f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_5 0x289d4 1585f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_6 0x289d8 1595f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_7 0x289dc 1605f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_8 0x289e0 1615f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_9 0x289e4 1625f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_10 0x289e8 1635f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_11 0x289ec 1645f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_12 0x289f0 1655f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_13 0x289f4 1665f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_14 0x289f8 1675f77df36SAlex Deucher #define SQ_ALU_CONST_CACHE_GS_15 0x289fc 1685f77df36SAlex Deucher 1693ce0a23dSJerome Glisse #define CONFIG_MEMSIZE 0x5428 17028d52043SDave Airlie #define CONFIG_CNTL 0x5424 171440a7cd8SJerome Glisse #define CP_STALLED_STAT1 0x8674 172440a7cd8SJerome Glisse #define CP_STALLED_STAT2 0x8678 173440a7cd8SJerome Glisse #define CP_BUSY_STAT 0x867C 1743ce0a23dSJerome Glisse #define CP_STAT 0x8680 1753ce0a23dSJerome Glisse #define CP_COHER_BASE 0x85F8 1763ce0a23dSJerome Glisse #define CP_DEBUG 0xC1FC 1773ce0a23dSJerome Glisse #define R_0086D8_CP_ME_CNTL 0x86D8 178d3cb781eSAlex Deucher #define S_0086D8_CP_PFP_HALT(x) (((x) & 1)<<26) 179d3cb781eSAlex Deucher #define C_0086D8_CP_PFP_HALT(x) ((x) & 0xFBFFFFFF) 1803ce0a23dSJerome Glisse #define S_0086D8_CP_ME_HALT(x) (((x) & 1)<<28) 1813ce0a23dSJerome Glisse #define C_0086D8_CP_ME_HALT(x) ((x) & 0xEFFFFFFF) 1823ce0a23dSJerome Glisse #define CP_ME_RAM_DATA 0xC160 1833ce0a23dSJerome Glisse #define CP_ME_RAM_RADDR 0xC158 1843ce0a23dSJerome Glisse #define CP_ME_RAM_WADDR 0xC15C 1853ce0a23dSJerome Glisse #define CP_MEQ_THRESHOLDS 0x8764 1863ce0a23dSJerome Glisse #define MEQ_END(x) ((x) << 16) 1873ce0a23dSJerome Glisse #define ROQ_END(x) ((x) << 24) 1883ce0a23dSJerome Glisse #define CP_PERFMON_CNTL 0x87FC 1893ce0a23dSJerome Glisse #define CP_PFP_UCODE_ADDR 0xC150 1903ce0a23dSJerome Glisse #define CP_PFP_UCODE_DATA 0xC154 1913ce0a23dSJerome Glisse #define CP_QUEUE_THRESHOLDS 0x8760 1923ce0a23dSJerome Glisse #define ROQ_IB1_START(x) ((x) << 0) 1933ce0a23dSJerome Glisse #define ROQ_IB2_START(x) ((x) << 8) 1943ce0a23dSJerome Glisse #define CP_RB_BASE 0xC100 1953ce0a23dSJerome Glisse #define CP_RB_CNTL 0xC104 1963ce0a23dSJerome Glisse #define RB_BUFSZ(x) ((x) << 0) 1973ce0a23dSJerome Glisse #define RB_BLKSZ(x) ((x) << 8) 1983ce0a23dSJerome Glisse #define RB_NO_UPDATE (1 << 27) 1993ce0a23dSJerome Glisse #define RB_RPTR_WR_ENA (1 << 31) 2003ce0a23dSJerome Glisse #define BUF_SWAP_32BIT (2 << 16) 2013ce0a23dSJerome Glisse #define CP_RB_RPTR 0x8700 2023ce0a23dSJerome Glisse #define CP_RB_RPTR_ADDR 0xC10C 2034eace7fdSCédric Cano #define RB_RPTR_SWAP(x) ((x) << 0) 2043ce0a23dSJerome Glisse #define CP_RB_RPTR_ADDR_HI 0xC110 2053ce0a23dSJerome Glisse #define CP_RB_RPTR_WR 0xC108 2063ce0a23dSJerome Glisse #define CP_RB_WPTR 0xC114 2073ce0a23dSJerome Glisse #define CP_RB_WPTR_ADDR 0xC118 2083ce0a23dSJerome Glisse #define CP_RB_WPTR_ADDR_HI 0xC11C 2093ce0a23dSJerome Glisse #define CP_RB_WPTR_DELAY 0x8704 2103ce0a23dSJerome Glisse #define CP_ROQ_IB1_STAT 0x8784 2113ce0a23dSJerome Glisse #define CP_ROQ_IB2_STAT 0x8788 2123ce0a23dSJerome Glisse #define CP_SEM_WAIT_TIMER 0x85BC 2133ce0a23dSJerome Glisse 2143ce0a23dSJerome Glisse #define DB_DEBUG 0x9830 2153ce0a23dSJerome Glisse #define PREZ_MUST_WAIT_FOR_POSTZ_DONE (1 << 31) 2163ce0a23dSJerome Glisse #define DB_DEPTH_BASE 0x2800C 217a39533b4SAlex Deucher #define DB_HTILE_DATA_BASE 0x28014 21888f50c80SJerome Glisse #define DB_HTILE_SURFACE 0x28D24 21988f50c80SJerome Glisse #define S_028D24_HTILE_WIDTH(x) (((x) & 0x1) << 0) 22088f50c80SJerome Glisse #define G_028D24_HTILE_WIDTH(x) (((x) >> 0) & 0x1) 22188f50c80SJerome Glisse #define C_028D24_HTILE_WIDTH 0xFFFFFFFE 22288f50c80SJerome Glisse #define S_028D24_HTILE_HEIGHT(x) (((x) & 0x1) << 1) 22388f50c80SJerome Glisse #define G_028D24_HTILE_HEIGHT(x) (((x) >> 1) & 0x1) 22488f50c80SJerome Glisse #define C_028D24_HTILE_HEIGHT 0xFFFFFFFD 22588f50c80SJerome Glisse #define G_028D24_LINEAR(x) (((x) >> 2) & 0x1) 2263ce0a23dSJerome Glisse #define DB_WATERMARKS 0x9838 2273ce0a23dSJerome Glisse #define DEPTH_FREE(x) ((x) << 0) 2283ce0a23dSJerome Glisse #define DEPTH_FLUSH(x) ((x) << 5) 2293ce0a23dSJerome Glisse #define DEPTH_PENDING_FREE(x) ((x) << 15) 2303ce0a23dSJerome Glisse #define DEPTH_CACHELINE_FREE(x) ((x) << 20) 2313ce0a23dSJerome Glisse 2323ce0a23dSJerome Glisse #define DCP_TILING_CONFIG 0x6CA0 2333ce0a23dSJerome Glisse #define PIPE_TILING(x) ((x) << 1) 2343ce0a23dSJerome Glisse #define BANK_TILING(x) ((x) << 4) 2353ce0a23dSJerome Glisse #define GROUP_SIZE(x) ((x) << 6) 2363ce0a23dSJerome Glisse #define ROW_TILING(x) ((x) << 8) 2373ce0a23dSJerome Glisse #define BANK_SWAPS(x) ((x) << 11) 2383ce0a23dSJerome Glisse #define SAMPLE_SPLIT(x) ((x) << 14) 2393ce0a23dSJerome Glisse #define BACKEND_MAP(x) ((x) << 16) 2403ce0a23dSJerome Glisse 2413ce0a23dSJerome Glisse #define GB_TILING_CONFIG 0x98F0 242416a2bd2SAlex Deucher #define PIPE_TILING__SHIFT 1 243416a2bd2SAlex Deucher #define PIPE_TILING__MASK 0x0000000e 2443ce0a23dSJerome Glisse 2453ce0a23dSJerome Glisse #define GC_USER_SHADER_PIPE_CONFIG 0x8954 2463ce0a23dSJerome Glisse #define INACTIVE_QD_PIPES(x) ((x) << 8) 2473ce0a23dSJerome Glisse #define INACTIVE_QD_PIPES_MASK 0x0000FF00 2483ce0a23dSJerome Glisse #define INACTIVE_SIMDS(x) ((x) << 16) 2493ce0a23dSJerome Glisse #define INACTIVE_SIMDS_MASK 0x00FF0000 2503ce0a23dSJerome Glisse 2513ce0a23dSJerome Glisse #define SQ_CONFIG 0x8c00 2523ce0a23dSJerome Glisse # define VC_ENABLE (1 << 0) 2533ce0a23dSJerome Glisse # define EXPORT_SRC_C (1 << 1) 2543ce0a23dSJerome Glisse # define DX9_CONSTS (1 << 2) 2553ce0a23dSJerome Glisse # define ALU_INST_PREFER_VECTOR (1 << 3) 2563ce0a23dSJerome Glisse # define DX10_CLAMP (1 << 4) 2573ce0a23dSJerome Glisse # define CLAUSE_SEQ_PRIO(x) ((x) << 8) 2583ce0a23dSJerome Glisse # define PS_PRIO(x) ((x) << 24) 2593ce0a23dSJerome Glisse # define VS_PRIO(x) ((x) << 26) 2603ce0a23dSJerome Glisse # define GS_PRIO(x) ((x) << 28) 2613ce0a23dSJerome Glisse # define ES_PRIO(x) ((x) << 30) 2623ce0a23dSJerome Glisse #define SQ_GPR_RESOURCE_MGMT_1 0x8c04 2633ce0a23dSJerome Glisse # define NUM_PS_GPRS(x) ((x) << 0) 2643ce0a23dSJerome Glisse # define NUM_VS_GPRS(x) ((x) << 16) 2653ce0a23dSJerome Glisse # define NUM_CLAUSE_TEMP_GPRS(x) ((x) << 28) 2663ce0a23dSJerome Glisse #define SQ_GPR_RESOURCE_MGMT_2 0x8c08 2673ce0a23dSJerome Glisse # define NUM_GS_GPRS(x) ((x) << 0) 2683ce0a23dSJerome Glisse # define NUM_ES_GPRS(x) ((x) << 16) 2693ce0a23dSJerome Glisse #define SQ_THREAD_RESOURCE_MGMT 0x8c0c 2703ce0a23dSJerome Glisse # define NUM_PS_THREADS(x) ((x) << 0) 2713ce0a23dSJerome Glisse # define NUM_VS_THREADS(x) ((x) << 8) 2723ce0a23dSJerome Glisse # define NUM_GS_THREADS(x) ((x) << 16) 2733ce0a23dSJerome Glisse # define NUM_ES_THREADS(x) ((x) << 24) 2743ce0a23dSJerome Glisse #define SQ_STACK_RESOURCE_MGMT_1 0x8c10 2753ce0a23dSJerome Glisse # define NUM_PS_STACK_ENTRIES(x) ((x) << 0) 2763ce0a23dSJerome Glisse # define NUM_VS_STACK_ENTRIES(x) ((x) << 16) 2773ce0a23dSJerome Glisse #define SQ_STACK_RESOURCE_MGMT_2 0x8c14 2783ce0a23dSJerome Glisse # define NUM_GS_STACK_ENTRIES(x) ((x) << 0) 2793ce0a23dSJerome Glisse # define NUM_ES_STACK_ENTRIES(x) ((x) << 16) 280a39533b4SAlex Deucher #define SQ_ESGS_RING_BASE 0x8c40 281a39533b4SAlex Deucher #define SQ_GSVS_RING_BASE 0x8c48 282a39533b4SAlex Deucher #define SQ_ESTMP_RING_BASE 0x8c50 283a39533b4SAlex Deucher #define SQ_GSTMP_RING_BASE 0x8c58 284a39533b4SAlex Deucher #define SQ_VSTMP_RING_BASE 0x8c60 285a39533b4SAlex Deucher #define SQ_PSTMP_RING_BASE 0x8c68 286a39533b4SAlex Deucher #define SQ_FBUF_RING_BASE 0x8c70 287a39533b4SAlex Deucher #define SQ_REDUC_RING_BASE 0x8c78 2883ce0a23dSJerome Glisse 2893ce0a23dSJerome Glisse #define GRBM_CNTL 0x8000 2903ce0a23dSJerome Glisse # define GRBM_READ_TIMEOUT(x) ((x) << 0) 2913ce0a23dSJerome Glisse #define GRBM_STATUS 0x8010 2923ce0a23dSJerome Glisse #define CMDFIFO_AVAIL_MASK 0x0000001F 2933ce0a23dSJerome Glisse #define GUI_ACTIVE (1<<31) 2943ce0a23dSJerome Glisse #define GRBM_STATUS2 0x8014 2953ce0a23dSJerome Glisse #define GRBM_SOFT_RESET 0x8020 2963ce0a23dSJerome Glisse #define SOFT_RESET_CP (1<<0) 2973ce0a23dSJerome Glisse 2984a6369e9SAlex Deucher #define CG_THERMAL_CTRL 0x7F0 2994a6369e9SAlex Deucher #define DIG_THERM_DPM(x) ((x) << 12) 3004a6369e9SAlex Deucher #define DIG_THERM_DPM_MASK 0x000FF000 3014a6369e9SAlex Deucher #define DIG_THERM_DPM_SHIFT 12 30221a8122aSAlex Deucher #define CG_THERMAL_STATUS 0x7F4 30321a8122aSAlex Deucher #define ASIC_T(x) ((x) << 0) 30421a8122aSAlex Deucher #define ASIC_T_MASK 0x1FF 30521a8122aSAlex Deucher #define ASIC_T_SHIFT 0 3064a6369e9SAlex Deucher #define CG_THERMAL_INT 0x7F8 3074a6369e9SAlex Deucher #define DIG_THERM_INTH(x) ((x) << 8) 3084a6369e9SAlex Deucher #define DIG_THERM_INTH_MASK 0x0000FF00 3094a6369e9SAlex Deucher #define DIG_THERM_INTH_SHIFT 8 3104a6369e9SAlex Deucher #define DIG_THERM_INTL(x) ((x) << 16) 3114a6369e9SAlex Deucher #define DIG_THERM_INTL_MASK 0x00FF0000 3124a6369e9SAlex Deucher #define DIG_THERM_INTL_SHIFT 16 3134a6369e9SAlex Deucher #define THERM_INT_MASK_HIGH (1 << 24) 3144a6369e9SAlex Deucher #define THERM_INT_MASK_LOW (1 << 25) 31521a8122aSAlex Deucher 31666229b20SAlex Deucher #define RV770_CG_THERMAL_INT 0x734 31766229b20SAlex Deucher 3183ce0a23dSJerome Glisse #define HDP_HOST_PATH_CNTL 0x2C00 3193ce0a23dSJerome Glisse #define HDP_NONSURFACE_BASE 0x2C04 3203ce0a23dSJerome Glisse #define HDP_NONSURFACE_INFO 0x2C08 3213ce0a23dSJerome Glisse #define HDP_NONSURFACE_SIZE 0x2C0C 3223ce0a23dSJerome Glisse #define HDP_REG_COHERENCY_FLUSH_CNTL 0x54A0 3233ce0a23dSJerome Glisse #define HDP_TILING_CONFIG 0x2F3C 324812d0469SAlex Deucher #define HDP_DEBUG1 0x2F34 3253ce0a23dSJerome Glisse 326115365e8SChristian König #define MC_CONFIG 0x2000 3273ce0a23dSJerome Glisse #define MC_VM_AGP_TOP 0x2184 3283ce0a23dSJerome Glisse #define MC_VM_AGP_BOT 0x2188 3293ce0a23dSJerome Glisse #define MC_VM_AGP_BASE 0x218C 3303ce0a23dSJerome Glisse #define MC_VM_FB_LOCATION 0x2180 331a8fba64aSChristian König #define MC_VM_L1_TLB_MCB_RD_UVD_CNTL 0x2124 3323ce0a23dSJerome Glisse #define ENABLE_L1_TLB (1 << 0) 3333ce0a23dSJerome Glisse #define ENABLE_L1_FRAGMENT_PROCESSING (1 << 1) 3343ce0a23dSJerome Glisse #define ENABLE_L1_STRICT_ORDERING (1 << 2) 3353ce0a23dSJerome Glisse #define SYSTEM_ACCESS_MODE_MASK 0x000000C0 3363ce0a23dSJerome Glisse #define SYSTEM_ACCESS_MODE_SHIFT 6 3373ce0a23dSJerome Glisse #define SYSTEM_ACCESS_MODE_PA_ONLY (0 << 6) 3383ce0a23dSJerome Glisse #define SYSTEM_ACCESS_MODE_USE_SYS_MAP (1 << 6) 3393ce0a23dSJerome Glisse #define SYSTEM_ACCESS_MODE_IN_SYS (2 << 6) 3403ce0a23dSJerome Glisse #define SYSTEM_ACCESS_MODE_NOT_IN_SYS (3 << 6) 3413ce0a23dSJerome Glisse #define SYSTEM_APERTURE_UNMAPPED_ACCESS_PASS_THRU (0 << 8) 3423ce0a23dSJerome Glisse #define SYSTEM_APERTURE_UNMAPPED_ACCESS_DEFAULT_PAGE (1 << 8) 3433ce0a23dSJerome Glisse #define ENABLE_SEMAPHORE_MODE (1 << 10) 3443ce0a23dSJerome Glisse #define ENABLE_WAIT_L2_QUERY (1 << 11) 3453ce0a23dSJerome Glisse #define EFFECTIVE_L1_TLB_SIZE(x) (((x) & 7) << 12) 3463ce0a23dSJerome Glisse #define EFFECTIVE_L1_TLB_SIZE_MASK 0x00007000 3473ce0a23dSJerome Glisse #define EFFECTIVE_L1_TLB_SIZE_SHIFT 12 3483ce0a23dSJerome Glisse #define EFFECTIVE_L1_QUEUE_SIZE(x) (((x) & 7) << 15) 3493ce0a23dSJerome Glisse #define EFFECTIVE_L1_QUEUE_SIZE_MASK 0x00038000 3503ce0a23dSJerome Glisse #define EFFECTIVE_L1_QUEUE_SIZE_SHIFT 15 351a8fba64aSChristian König #define MC_VM_L1_TLB_MCD_RD_A_CNTL 0x219C 3523ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCD_RD_B_CNTL 0x21A0 3533ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_RD_GFX_CNTL 0x21FC 3543ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_RD_HDP_CNTL 0x2204 3553ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_RD_PDMA_CNTL 0x2208 3563ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_RD_SEM_CNTL 0x220C 3573ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_RD_SYS_CNTL 0x2200 358a8fba64aSChristian König #define MC_VM_L1_TLB_MCB_WR_UVD_CNTL 0x212c 3593ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCD_WR_A_CNTL 0x21A4 3603ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCD_WR_B_CNTL 0x21A8 3613ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_WR_GFX_CNTL 0x2210 3623ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_WR_HDP_CNTL 0x2218 3633ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_WR_PDMA_CNTL 0x221C 3643ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_WR_SEM_CNTL 0x2220 3653ce0a23dSJerome Glisse #define MC_VM_L1_TLB_MCB_WR_SYS_CNTL 0x2214 3663ce0a23dSJerome Glisse #define MC_VM_SYSTEM_APERTURE_LOW_ADDR 0x2190 3673ce0a23dSJerome Glisse #define LOGICAL_PAGE_NUMBER_MASK 0x000FFFFF 3683ce0a23dSJerome Glisse #define LOGICAL_PAGE_NUMBER_SHIFT 0 3693ce0a23dSJerome Glisse #define MC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x2194 3703ce0a23dSJerome Glisse #define MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR 0x2198 3713ce0a23dSJerome Glisse 372115365e8SChristian König #define RS_DQ_RD_RET_CONF 0x2348 373115365e8SChristian König 3743ce0a23dSJerome Glisse #define PA_CL_ENHANCE 0x8A14 3753ce0a23dSJerome Glisse #define CLIP_VTX_REORDER_ENA (1 << 0) 3763ce0a23dSJerome Glisse #define NUM_CLIP_SEQ(x) ((x) << 1) 3773ce0a23dSJerome Glisse #define PA_SC_AA_CONFIG 0x28C04 3783ce0a23dSJerome Glisse #define PA_SC_AA_SAMPLE_LOCS_2S 0x8B40 3793ce0a23dSJerome Glisse #define PA_SC_AA_SAMPLE_LOCS_4S 0x8B44 3803ce0a23dSJerome Glisse #define PA_SC_AA_SAMPLE_LOCS_8S_WD0 0x8B48 3813ce0a23dSJerome Glisse #define PA_SC_AA_SAMPLE_LOCS_8S_WD1 0x8B4C 3823ce0a23dSJerome Glisse #define S0_X(x) ((x) << 0) 3833ce0a23dSJerome Glisse #define S0_Y(x) ((x) << 4) 3843ce0a23dSJerome Glisse #define S1_X(x) ((x) << 8) 3853ce0a23dSJerome Glisse #define S1_Y(x) ((x) << 12) 3863ce0a23dSJerome Glisse #define S2_X(x) ((x) << 16) 3873ce0a23dSJerome Glisse #define S2_Y(x) ((x) << 20) 3883ce0a23dSJerome Glisse #define S3_X(x) ((x) << 24) 3893ce0a23dSJerome Glisse #define S3_Y(x) ((x) << 28) 3903ce0a23dSJerome Glisse #define S4_X(x) ((x) << 0) 3913ce0a23dSJerome Glisse #define S4_Y(x) ((x) << 4) 3923ce0a23dSJerome Glisse #define S5_X(x) ((x) << 8) 3933ce0a23dSJerome Glisse #define S5_Y(x) ((x) << 12) 3943ce0a23dSJerome Glisse #define S6_X(x) ((x) << 16) 3953ce0a23dSJerome Glisse #define S6_Y(x) ((x) << 20) 3963ce0a23dSJerome Glisse #define S7_X(x) ((x) << 24) 3973ce0a23dSJerome Glisse #define S7_Y(x) ((x) << 28) 3983ce0a23dSJerome Glisse #define PA_SC_CLIPRECT_RULE 0x2820c 3993ce0a23dSJerome Glisse #define PA_SC_ENHANCE 0x8BF0 4003ce0a23dSJerome Glisse #define FORCE_EOV_MAX_CLK_CNT(x) ((x) << 0) 4013ce0a23dSJerome Glisse #define FORCE_EOV_MAX_TILE_CNT(x) ((x) << 12) 4023ce0a23dSJerome Glisse #define PA_SC_LINE_STIPPLE 0x28A0C 4033ce0a23dSJerome Glisse #define PA_SC_LINE_STIPPLE_STATE 0x8B10 4043ce0a23dSJerome Glisse #define PA_SC_MODE_CNTL 0x28A4C 4053ce0a23dSJerome Glisse #define PA_SC_MULTI_CHIP_CNTL 0x8B20 4063ce0a23dSJerome Glisse 4073ce0a23dSJerome Glisse #define PA_SC_SCREEN_SCISSOR_TL 0x28030 4083ce0a23dSJerome Glisse #define PA_SC_GENERIC_SCISSOR_TL 0x28240 4093ce0a23dSJerome Glisse #define PA_SC_WINDOW_SCISSOR_TL 0x28204 4103ce0a23dSJerome Glisse 4113ce0a23dSJerome Glisse #define PCIE_PORT_INDEX 0x0038 4123ce0a23dSJerome Glisse #define PCIE_PORT_DATA 0x003C 4133ce0a23dSJerome Glisse 4145885b7a9SAlex Deucher #define CHMAP 0x2004 4155885b7a9SAlex Deucher #define NOOFCHAN_SHIFT 12 4165885b7a9SAlex Deucher #define NOOFCHAN_MASK 0x00003000 4175885b7a9SAlex Deucher 4183ce0a23dSJerome Glisse #define RAMCFG 0x2408 4193ce0a23dSJerome Glisse #define NOOFBANK_SHIFT 0 4203ce0a23dSJerome Glisse #define NOOFBANK_MASK 0x00000001 4213ce0a23dSJerome Glisse #define NOOFRANK_SHIFT 1 4223ce0a23dSJerome Glisse #define NOOFRANK_MASK 0x00000002 4233ce0a23dSJerome Glisse #define NOOFROWS_SHIFT 2 4243ce0a23dSJerome Glisse #define NOOFROWS_MASK 0x0000001C 4253ce0a23dSJerome Glisse #define NOOFCOLS_SHIFT 5 4263ce0a23dSJerome Glisse #define NOOFCOLS_MASK 0x00000060 4273ce0a23dSJerome Glisse #define CHANSIZE_SHIFT 7 4283ce0a23dSJerome Glisse #define CHANSIZE_MASK 0x00000080 4293ce0a23dSJerome Glisse #define BURSTLENGTH_SHIFT 8 4303ce0a23dSJerome Glisse #define BURSTLENGTH_MASK 0x00000100 4313ce0a23dSJerome Glisse #define CHANSIZE_OVERRIDE (1 << 10) 4323ce0a23dSJerome Glisse 4333ce0a23dSJerome Glisse #define SCRATCH_REG0 0x8500 4343ce0a23dSJerome Glisse #define SCRATCH_REG1 0x8504 4353ce0a23dSJerome Glisse #define SCRATCH_REG2 0x8508 4363ce0a23dSJerome Glisse #define SCRATCH_REG3 0x850C 4373ce0a23dSJerome Glisse #define SCRATCH_REG4 0x8510 4383ce0a23dSJerome Glisse #define SCRATCH_REG5 0x8514 4393ce0a23dSJerome Glisse #define SCRATCH_REG6 0x8518 4403ce0a23dSJerome Glisse #define SCRATCH_REG7 0x851C 4413ce0a23dSJerome Glisse #define SCRATCH_UMSK 0x8540 4423ce0a23dSJerome Glisse #define SCRATCH_ADDR 0x8544 4433ce0a23dSJerome Glisse 4443ce0a23dSJerome Glisse #define SPI_CONFIG_CNTL 0x9100 4453ce0a23dSJerome Glisse #define GPR_WRITE_PRIORITY(x) ((x) << 0) 4463ce0a23dSJerome Glisse #define DISABLE_INTERP_1 (1 << 5) 4473ce0a23dSJerome Glisse #define SPI_CONFIG_CNTL_1 0x913C 4483ce0a23dSJerome Glisse #define VTX_DONE_DELAY(x) ((x) << 0) 4493ce0a23dSJerome Glisse #define INTERP_ONE_PRIM_PER_ROW (1 << 4) 4503ce0a23dSJerome Glisse #define SPI_INPUT_Z 0x286D8 4513ce0a23dSJerome Glisse #define SPI_PS_IN_CONTROL_0 0x286CC 4523ce0a23dSJerome Glisse #define NUM_INTERP(x) ((x)<<0) 4533ce0a23dSJerome Glisse #define POSITION_ENA (1<<8) 4543ce0a23dSJerome Glisse #define POSITION_CENTROID (1<<9) 4553ce0a23dSJerome Glisse #define POSITION_ADDR(x) ((x)<<10) 4563ce0a23dSJerome Glisse #define PARAM_GEN(x) ((x)<<15) 4573ce0a23dSJerome Glisse #define PARAM_GEN_ADDR(x) ((x)<<19) 4583ce0a23dSJerome Glisse #define BARYC_SAMPLE_CNTL(x) ((x)<<26) 4593ce0a23dSJerome Glisse #define PERSP_GRADIENT_ENA (1<<28) 4603ce0a23dSJerome Glisse #define LINEAR_GRADIENT_ENA (1<<29) 4613ce0a23dSJerome Glisse #define POSITION_SAMPLE (1<<30) 4623ce0a23dSJerome Glisse #define BARYC_AT_SAMPLE_ENA (1<<31) 4633ce0a23dSJerome Glisse #define SPI_PS_IN_CONTROL_1 0x286D0 4643ce0a23dSJerome Glisse #define GEN_INDEX_PIX (1<<0) 4653ce0a23dSJerome Glisse #define GEN_INDEX_PIX_ADDR(x) ((x)<<1) 4663ce0a23dSJerome Glisse #define FRONT_FACE_ENA (1<<8) 4673ce0a23dSJerome Glisse #define FRONT_FACE_CHAN(x) ((x)<<9) 4683ce0a23dSJerome Glisse #define FRONT_FACE_ALL_BITS (1<<11) 4693ce0a23dSJerome Glisse #define FRONT_FACE_ADDR(x) ((x)<<12) 4703ce0a23dSJerome Glisse #define FOG_ADDR(x) ((x)<<17) 4713ce0a23dSJerome Glisse #define FIXED_PT_POSITION_ENA (1<<24) 4723ce0a23dSJerome Glisse #define FIXED_PT_POSITION_ADDR(x) ((x)<<25) 4733ce0a23dSJerome Glisse 4743ce0a23dSJerome Glisse #define SQ_MS_FIFO_SIZES 0x8CF0 4753ce0a23dSJerome Glisse #define CACHE_FIFO_SIZE(x) ((x) << 0) 4763ce0a23dSJerome Glisse #define FETCH_FIFO_HIWATER(x) ((x) << 8) 4773ce0a23dSJerome Glisse #define DONE_FIFO_HIWATER(x) ((x) << 16) 4783ce0a23dSJerome Glisse #define ALU_UPDATE_FIFO_HIWATER(x) ((x) << 24) 4793ce0a23dSJerome Glisse #define SQ_PGM_START_ES 0x28880 4803ce0a23dSJerome Glisse #define SQ_PGM_START_FS 0x28894 4813ce0a23dSJerome Glisse #define SQ_PGM_START_GS 0x2886C 4823ce0a23dSJerome Glisse #define SQ_PGM_START_PS 0x28840 4833ce0a23dSJerome Glisse #define SQ_PGM_RESOURCES_PS 0x28850 4843ce0a23dSJerome Glisse #define SQ_PGM_EXPORTS_PS 0x28854 4853ce0a23dSJerome Glisse #define SQ_PGM_CF_OFFSET_PS 0x288cc 4863ce0a23dSJerome Glisse #define SQ_PGM_START_VS 0x28858 4873ce0a23dSJerome Glisse #define SQ_PGM_RESOURCES_VS 0x28868 4883ce0a23dSJerome Glisse #define SQ_PGM_CF_OFFSET_VS 0x288d0 4893a38612eSIlija Hadzic 4903a38612eSIlija Hadzic #define SQ_VTX_CONSTANT_WORD0_0 0x30000 4913a38612eSIlija Hadzic #define SQ_VTX_CONSTANT_WORD1_0 0x30004 4923a38612eSIlija Hadzic #define SQ_VTX_CONSTANT_WORD2_0 0x30008 4933a38612eSIlija Hadzic # define SQ_VTXC_BASE_ADDR_HI(x) ((x) << 0) 4943a38612eSIlija Hadzic # define SQ_VTXC_STRIDE(x) ((x) << 8) 4953a38612eSIlija Hadzic # define SQ_VTXC_ENDIAN_SWAP(x) ((x) << 30) 4963a38612eSIlija Hadzic # define SQ_ENDIAN_NONE 0 4973a38612eSIlija Hadzic # define SQ_ENDIAN_8IN16 1 4983a38612eSIlija Hadzic # define SQ_ENDIAN_8IN32 2 4993a38612eSIlija Hadzic #define SQ_VTX_CONSTANT_WORD3_0 0x3000c 5003ce0a23dSJerome Glisse #define SQ_VTX_CONSTANT_WORD6_0 0x38018 5013ce0a23dSJerome Glisse #define S__SQ_VTX_CONSTANT_TYPE(x) (((x) & 3) << 30) 5023ce0a23dSJerome Glisse #define G__SQ_VTX_CONSTANT_TYPE(x) (((x) >> 30) & 3) 5033ce0a23dSJerome Glisse #define SQ_TEX_VTX_INVALID_TEXTURE 0x0 5043ce0a23dSJerome Glisse #define SQ_TEX_VTX_INVALID_BUFFER 0x1 5053ce0a23dSJerome Glisse #define SQ_TEX_VTX_VALID_TEXTURE 0x2 5063ce0a23dSJerome Glisse #define SQ_TEX_VTX_VALID_BUFFER 0x3 5073ce0a23dSJerome Glisse 5083ce0a23dSJerome Glisse 5093ce0a23dSJerome Glisse #define SX_MISC 0x28350 510a39533b4SAlex Deucher #define SX_MEMORY_EXPORT_BASE 0x9010 5113ce0a23dSJerome Glisse #define SX_DEBUG_1 0x9054 5123ce0a23dSJerome Glisse #define SMX_EVENT_RELEASE (1 << 0) 5133ce0a23dSJerome Glisse #define ENABLE_NEW_SMX_ADDRESS (1 << 16) 5143ce0a23dSJerome Glisse 5153ce0a23dSJerome Glisse #define TA_CNTL_AUX 0x9508 5163ce0a23dSJerome Glisse #define DISABLE_CUBE_WRAP (1 << 0) 5173ce0a23dSJerome Glisse #define DISABLE_CUBE_ANISO (1 << 1) 5183ce0a23dSJerome Glisse #define SYNC_GRADIENT (1 << 24) 5193ce0a23dSJerome Glisse #define SYNC_WALKER (1 << 25) 5203ce0a23dSJerome Glisse #define SYNC_ALIGNER (1 << 26) 5213ce0a23dSJerome Glisse #define BILINEAR_PRECISION_6_BIT (0 << 31) 5223ce0a23dSJerome Glisse #define BILINEAR_PRECISION_8_BIT (1 << 31) 5233ce0a23dSJerome Glisse 5243ce0a23dSJerome Glisse #define TC_CNTL 0x9608 5253ce0a23dSJerome Glisse #define TC_L2_SIZE(x) ((x)<<5) 5263ce0a23dSJerome Glisse #define L2_DISABLE_LATE_HIT (1<<9) 5273ce0a23dSJerome Glisse 528b866d133SAlex Deucher #define VC_ENHANCE 0x9714 5293ce0a23dSJerome Glisse 5303ce0a23dSJerome Glisse #define VGT_CACHE_INVALIDATION 0x88C4 5313ce0a23dSJerome Glisse #define CACHE_INVALIDATION(x) ((x)<<0) 5323ce0a23dSJerome Glisse #define VC_ONLY 0 5333ce0a23dSJerome Glisse #define TC_ONLY 1 5343ce0a23dSJerome Glisse #define VC_AND_TC 2 5353ce0a23dSJerome Glisse #define VGT_DMA_BASE 0x287E8 5363ce0a23dSJerome Glisse #define VGT_DMA_BASE_HI 0x287E4 5373ce0a23dSJerome Glisse #define VGT_ES_PER_GS 0x88CC 5383ce0a23dSJerome Glisse #define VGT_GS_PER_ES 0x88C8 5393ce0a23dSJerome Glisse #define VGT_GS_PER_VS 0x88E8 5403ce0a23dSJerome Glisse #define VGT_GS_VERTEX_REUSE 0x88D4 5413ce0a23dSJerome Glisse #define VGT_PRIMITIVE_TYPE 0x8958 5423ce0a23dSJerome Glisse #define VGT_NUM_INSTANCES 0x8974 5433ce0a23dSJerome Glisse #define VGT_OUT_DEALLOC_CNTL 0x28C5C 5443ce0a23dSJerome Glisse #define DEALLOC_DIST_MASK 0x0000007F 5453ce0a23dSJerome Glisse #define VGT_STRMOUT_BASE_OFFSET_0 0x28B10 5463ce0a23dSJerome Glisse #define VGT_STRMOUT_BASE_OFFSET_1 0x28B14 5473ce0a23dSJerome Glisse #define VGT_STRMOUT_BASE_OFFSET_2 0x28B18 5483ce0a23dSJerome Glisse #define VGT_STRMOUT_BASE_OFFSET_3 0x28B1c 5493ce0a23dSJerome Glisse #define VGT_STRMOUT_BASE_OFFSET_HI_0 0x28B44 5503ce0a23dSJerome Glisse #define VGT_STRMOUT_BASE_OFFSET_HI_1 0x28B48 5513ce0a23dSJerome Glisse #define VGT_STRMOUT_BASE_OFFSET_HI_2 0x28B4c 5523ce0a23dSJerome Glisse #define VGT_STRMOUT_BASE_OFFSET_HI_3 0x28B50 5533ce0a23dSJerome Glisse #define VGT_STRMOUT_BUFFER_BASE_0 0x28AD8 5543ce0a23dSJerome Glisse #define VGT_STRMOUT_BUFFER_BASE_1 0x28AE8 5553ce0a23dSJerome Glisse #define VGT_STRMOUT_BUFFER_BASE_2 0x28AF8 5563ce0a23dSJerome Glisse #define VGT_STRMOUT_BUFFER_BASE_3 0x28B08 5573ce0a23dSJerome Glisse #define VGT_STRMOUT_BUFFER_OFFSET_0 0x28ADC 5583ce0a23dSJerome Glisse #define VGT_STRMOUT_BUFFER_OFFSET_1 0x28AEC 5593ce0a23dSJerome Glisse #define VGT_STRMOUT_BUFFER_OFFSET_2 0x28AFC 5603ce0a23dSJerome Glisse #define VGT_STRMOUT_BUFFER_OFFSET_3 0x28B0C 561dd220a00SMarek Olšák #define VGT_STRMOUT_BUFFER_SIZE_0 0x28AD0 562dd220a00SMarek Olšák #define VGT_STRMOUT_BUFFER_SIZE_1 0x28AE0 563dd220a00SMarek Olšák #define VGT_STRMOUT_BUFFER_SIZE_2 0x28AF0 564dd220a00SMarek Olšák #define VGT_STRMOUT_BUFFER_SIZE_3 0x28B00 565dd220a00SMarek Olšák 5663ce0a23dSJerome Glisse #define VGT_STRMOUT_EN 0x28AB0 5673ce0a23dSJerome Glisse #define VGT_VERTEX_REUSE_BLOCK_CNTL 0x28C58 5683ce0a23dSJerome Glisse #define VTX_REUSE_DEPTH_MASK 0x000000FF 5693ce0a23dSJerome Glisse #define VGT_EVENT_INITIATOR 0x28a90 570d0f8a854SAlex Deucher # define CACHE_FLUSH_AND_INV_EVENT_TS (0x14 << 0) 5713ce0a23dSJerome Glisse # define CACHE_FLUSH_AND_INV_EVENT (0x16 << 0) 5723ce0a23dSJerome Glisse 5733ce0a23dSJerome Glisse #define VM_CONTEXT0_CNTL 0x1410 5743ce0a23dSJerome Glisse #define ENABLE_CONTEXT (1 << 0) 5753ce0a23dSJerome Glisse #define PAGE_TABLE_DEPTH(x) (((x) & 3) << 1) 5763ce0a23dSJerome Glisse #define RANGE_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 4) 5773ce0a23dSJerome Glisse #define VM_CONTEXT0_INVALIDATION_LOW_ADDR 0x1490 5783ce0a23dSJerome Glisse #define VM_CONTEXT0_INVALIDATION_HIGH_ADDR 0x14B0 5793ce0a23dSJerome Glisse #define VM_CONTEXT0_PAGE_TABLE_BASE_ADDR 0x1574 5803ce0a23dSJerome Glisse #define VM_CONTEXT0_PAGE_TABLE_START_ADDR 0x1594 5813ce0a23dSJerome Glisse #define VM_CONTEXT0_PAGE_TABLE_END_ADDR 0x15B4 5823ce0a23dSJerome Glisse #define VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR 0x1554 5833ce0a23dSJerome Glisse #define VM_CONTEXT0_REQUEST_RESPONSE 0x1470 5843ce0a23dSJerome Glisse #define REQUEST_TYPE(x) (((x) & 0xf) << 0) 5853ce0a23dSJerome Glisse #define RESPONSE_TYPE_MASK 0x000000F0 5863ce0a23dSJerome Glisse #define RESPONSE_TYPE_SHIFT 4 5873ce0a23dSJerome Glisse #define VM_L2_CNTL 0x1400 5883ce0a23dSJerome Glisse #define ENABLE_L2_CACHE (1 << 0) 5893ce0a23dSJerome Glisse #define ENABLE_L2_FRAGMENT_PROCESSING (1 << 1) 5903ce0a23dSJerome Glisse #define ENABLE_L2_PTE_CACHE_LRU_UPDATE_BY_WRITE (1 << 9) 5913ce0a23dSJerome Glisse #define EFFECTIVE_L2_QUEUE_SIZE(x) (((x) & 7) << 13) 5923ce0a23dSJerome Glisse #define VM_L2_CNTL2 0x1404 5933ce0a23dSJerome Glisse #define INVALIDATE_ALL_L1_TLBS (1 << 0) 5943ce0a23dSJerome Glisse #define INVALIDATE_L2_CACHE (1 << 1) 5953ce0a23dSJerome Glisse #define VM_L2_CNTL3 0x1408 5963ce0a23dSJerome Glisse #define BANK_SELECT_0(x) (((x) & 0x1f) << 0) 5973ce0a23dSJerome Glisse #define BANK_SELECT_1(x) (((x) & 0x1f) << 5) 5983ce0a23dSJerome Glisse #define L2_CACHE_UPDATE_MODE(x) (((x) & 3) << 10) 5993ce0a23dSJerome Glisse #define VM_L2_STATUS 0x140C 6003ce0a23dSJerome Glisse #define L2_BUSY (1 << 0) 6013ce0a23dSJerome Glisse 6023ce0a23dSJerome Glisse #define WAIT_UNTIL 0x8040 603072b5accSAlex Deucher #define WAIT_CP_DMA_IDLE_bit (1 << 8) 6043ce0a23dSJerome Glisse #define WAIT_2D_IDLE_bit (1 << 14) 6053ce0a23dSJerome Glisse #define WAIT_3D_IDLE_bit (1 << 15) 6063ce0a23dSJerome Glisse #define WAIT_2D_IDLECLEAN_bit (1 << 16) 6073ce0a23dSJerome Glisse #define WAIT_3D_IDLECLEAN_bit (1 << 17) 6083ce0a23dSJerome Glisse 6094d75658bSAlex Deucher /* async DMA */ 6104d75658bSAlex Deucher #define DMA_TILING_CONFIG 0x3ec4 6114d75658bSAlex Deucher #define DMA_CONFIG 0x3e4c 6124d75658bSAlex Deucher 6134d75658bSAlex Deucher #define DMA_RB_CNTL 0xd000 6144d75658bSAlex Deucher # define DMA_RB_ENABLE (1 << 0) 6154d75658bSAlex Deucher # define DMA_RB_SIZE(x) ((x) << 1) /* log2 */ 6164d75658bSAlex Deucher # define DMA_RB_SWAP_ENABLE (1 << 9) /* 8IN32 */ 6174d75658bSAlex Deucher # define DMA_RPTR_WRITEBACK_ENABLE (1 << 12) 6184d75658bSAlex Deucher # define DMA_RPTR_WRITEBACK_SWAP_ENABLE (1 << 13) /* 8IN32 */ 6194d75658bSAlex Deucher # define DMA_RPTR_WRITEBACK_TIMER(x) ((x) << 16) /* log2 */ 6204d75658bSAlex Deucher #define DMA_RB_BASE 0xd004 6214d75658bSAlex Deucher #define DMA_RB_RPTR 0xd008 6224d75658bSAlex Deucher #define DMA_RB_WPTR 0xd00c 6234d75658bSAlex Deucher 6244d75658bSAlex Deucher #define DMA_RB_RPTR_ADDR_HI 0xd01c 6254d75658bSAlex Deucher #define DMA_RB_RPTR_ADDR_LO 0xd020 6264d75658bSAlex Deucher 6274d75658bSAlex Deucher #define DMA_IB_CNTL 0xd024 6284d75658bSAlex Deucher # define DMA_IB_ENABLE (1 << 0) 6294d75658bSAlex Deucher # define DMA_IB_SWAP_ENABLE (1 << 4) 6304d75658bSAlex Deucher #define DMA_IB_RPTR 0xd028 6314d75658bSAlex Deucher #define DMA_CNTL 0xd02c 6324d75658bSAlex Deucher # define TRAP_ENABLE (1 << 0) 6334d75658bSAlex Deucher # define SEM_INCOMPLETE_INT_ENABLE (1 << 1) 6344d75658bSAlex Deucher # define SEM_WAIT_INT_ENABLE (1 << 2) 6354d75658bSAlex Deucher # define DATA_SWAP_ENABLE (1 << 3) 6364d75658bSAlex Deucher # define FENCE_SWAP_ENABLE (1 << 4) 6374d75658bSAlex Deucher # define CTXEMPTY_INT_ENABLE (1 << 28) 6384d75658bSAlex Deucher #define DMA_STATUS_REG 0xd034 6394d75658bSAlex Deucher # define DMA_IDLE (1 << 0) 6404d75658bSAlex Deucher #define DMA_SEM_INCOMPLETE_TIMER_CNTL 0xd044 6414d75658bSAlex Deucher #define DMA_SEM_WAIT_FAIL_TIMER_CNTL 0xd048 6424d75658bSAlex Deucher #define DMA_MODE 0xd0bc 6434d75658bSAlex Deucher 6444d75658bSAlex Deucher /* async DMA packets */ 6454d75658bSAlex Deucher #define DMA_PACKET(cmd, t, s, n) ((((cmd) & 0xF) << 28) | \ 6464d75658bSAlex Deucher (((t) & 0x1) << 23) | \ 6474d75658bSAlex Deucher (((s) & 0x1) << 22) | \ 6484d75658bSAlex Deucher (((n) & 0xFFFF) << 0)) 6494d75658bSAlex Deucher /* async DMA Packet types */ 6504d75658bSAlex Deucher #define DMA_PACKET_WRITE 0x2 6514d75658bSAlex Deucher #define DMA_PACKET_COPY 0x3 6524d75658bSAlex Deucher #define DMA_PACKET_INDIRECT_BUFFER 0x4 6534d75658bSAlex Deucher #define DMA_PACKET_SEMAPHORE 0x5 6544d75658bSAlex Deucher #define DMA_PACKET_FENCE 0x6 6554d75658bSAlex Deucher #define DMA_PACKET_TRAP 0x7 6564d75658bSAlex Deucher #define DMA_PACKET_CONSTANT_FILL 0xd /* 7xx only */ 6574d75658bSAlex Deucher #define DMA_PACKET_NOP 0xf 6584d75658bSAlex Deucher 659d8f60cfcSAlex Deucher #define IH_RB_CNTL 0x3e00 660d8f60cfcSAlex Deucher # define IH_RB_ENABLE (1 << 0) 6614d75658bSAlex Deucher # define IH_RB_SIZE(x) ((x) << 1) /* log2 */ 662d8f60cfcSAlex Deucher # define IH_RB_FULL_DRAIN_ENABLE (1 << 6) 663d8f60cfcSAlex Deucher # define IH_WPTR_WRITEBACK_ENABLE (1 << 8) 664d8f60cfcSAlex Deucher # define IH_WPTR_WRITEBACK_TIMER(x) ((x) << 9) /* log2 */ 665d8f60cfcSAlex Deucher # define IH_WPTR_OVERFLOW_ENABLE (1 << 16) 666d8f60cfcSAlex Deucher # define IH_WPTR_OVERFLOW_CLEAR (1 << 31) 667d8f60cfcSAlex Deucher #define IH_RB_BASE 0x3e04 668d8f60cfcSAlex Deucher #define IH_RB_RPTR 0x3e08 669d8f60cfcSAlex Deucher #define IH_RB_WPTR 0x3e0c 670d8f60cfcSAlex Deucher # define RB_OVERFLOW (1 << 0) 671d8f60cfcSAlex Deucher # define WPTR_OFFSET_MASK 0x3fffc 672d8f60cfcSAlex Deucher #define IH_RB_WPTR_ADDR_HI 0x3e10 673d8f60cfcSAlex Deucher #define IH_RB_WPTR_ADDR_LO 0x3e14 674d8f60cfcSAlex Deucher #define IH_CNTL 0x3e18 675d8f60cfcSAlex Deucher # define ENABLE_INTR (1 << 0) 676fcb857abSAlex Deucher # define IH_MC_SWAP(x) ((x) << 1) 677d8f60cfcSAlex Deucher # define IH_MC_SWAP_NONE 0 678d8f60cfcSAlex Deucher # define IH_MC_SWAP_16BIT 1 679d8f60cfcSAlex Deucher # define IH_MC_SWAP_32BIT 2 680d8f60cfcSAlex Deucher # define IH_MC_SWAP_64BIT 3 681d8f60cfcSAlex Deucher # define RPTR_REARM (1 << 4) 682d8f60cfcSAlex Deucher # define MC_WRREQ_CREDIT(x) ((x) << 15) 683d8f60cfcSAlex Deucher # define MC_WR_CLEAN_CNT(x) ((x) << 20) 6843ce0a23dSJerome Glisse 685d8f60cfcSAlex Deucher #define RLC_CNTL 0x3f00 686d8f60cfcSAlex Deucher # define RLC_ENABLE (1 << 0) 687d8f60cfcSAlex Deucher #define RLC_HB_BASE 0x3f10 688d8f60cfcSAlex Deucher #define RLC_HB_CNTL 0x3f0c 689d8f60cfcSAlex Deucher #define RLC_HB_RPTR 0x3f20 690d8f60cfcSAlex Deucher #define RLC_HB_WPTR 0x3f1c 691d8f60cfcSAlex Deucher #define RLC_HB_WPTR_LSB_ADDR 0x3f14 692d8f60cfcSAlex Deucher #define RLC_HB_WPTR_MSB_ADDR 0x3f18 6936759a0a7SMarek Olšák #define RLC_GPU_CLOCK_COUNT_LSB 0x3f38 6946759a0a7SMarek Olšák #define RLC_GPU_CLOCK_COUNT_MSB 0x3f3c 6956759a0a7SMarek Olšák #define RLC_CAPTURE_GPU_CLOCK_COUNT 0x3f40 696d8f60cfcSAlex Deucher #define RLC_MC_CNTL 0x3f44 697d8f60cfcSAlex Deucher #define RLC_UCODE_CNTL 0x3f48 698d8f60cfcSAlex Deucher #define RLC_UCODE_ADDR 0x3f2c 699d8f60cfcSAlex Deucher #define RLC_UCODE_DATA 0x3f30 700d8f60cfcSAlex Deucher 701d8f60cfcSAlex Deucher #define SRBM_SOFT_RESET 0xe60 702de9ae744SAlex Deucher # define SOFT_RESET_BIF (1 << 1) 7034d75658bSAlex Deucher # define SOFT_RESET_DMA (1 << 12) 704d8f60cfcSAlex Deucher # define SOFT_RESET_RLC (1 << 13) 705f2ba57b5SChristian König # define SOFT_RESET_UVD (1 << 18) 7064d75658bSAlex Deucher # define RV770_SOFT_RESET_DMA (1 << 20) 707d8f60cfcSAlex Deucher 708de9ae744SAlex Deucher #define BIF_SCRATCH0 0x5438 709de9ae744SAlex Deucher 710de9ae744SAlex Deucher #define BUS_CNTL 0x5420 711de9ae744SAlex Deucher # define BIOS_ROM_DIS (1 << 1) 712de9ae744SAlex Deucher # define VGA_COHE_SPEC_TIMER_DIS (1 << 9) 713de9ae744SAlex Deucher 714d8f60cfcSAlex Deucher #define CP_INT_CNTL 0xc124 715d8f60cfcSAlex Deucher # define CNTX_BUSY_INT_ENABLE (1 << 19) 716d8f60cfcSAlex Deucher # define CNTX_EMPTY_INT_ENABLE (1 << 20) 717d8f60cfcSAlex Deucher # define SCRATCH_INT_ENABLE (1 << 25) 718d8f60cfcSAlex Deucher # define TIME_STAMP_INT_ENABLE (1 << 26) 719d8f60cfcSAlex Deucher # define IB2_INT_ENABLE (1 << 29) 720d8f60cfcSAlex Deucher # define IB1_INT_ENABLE (1 << 30) 721d8f60cfcSAlex Deucher # define RB_INT_ENABLE (1 << 31) 722d8f60cfcSAlex Deucher #define CP_INT_STATUS 0xc128 723d8f60cfcSAlex Deucher # define SCRATCH_INT_STAT (1 << 25) 724d8f60cfcSAlex Deucher # define TIME_STAMP_INT_STAT (1 << 26) 725d8f60cfcSAlex Deucher # define IB2_INT_STAT (1 << 29) 726d8f60cfcSAlex Deucher # define IB1_INT_STAT (1 << 30) 727d8f60cfcSAlex Deucher # define RB_INT_STAT (1 << 31) 728d8f60cfcSAlex Deucher 729d8f60cfcSAlex Deucher #define GRBM_INT_CNTL 0x8060 730d8f60cfcSAlex Deucher # define RDERR_INT_ENABLE (1 << 0) 731d8f60cfcSAlex Deucher # define WAIT_COUNT_TIMEOUT_INT_ENABLE (1 << 1) 732d8f60cfcSAlex Deucher # define GUI_IDLE_INT_ENABLE (1 << 19) 733d8f60cfcSAlex Deucher 734d8f60cfcSAlex Deucher #define INTERRUPT_CNTL 0x5468 735d8f60cfcSAlex Deucher # define IH_DUMMY_RD_OVERRIDE (1 << 0) 736d8f60cfcSAlex Deucher # define IH_DUMMY_RD_EN (1 << 1) 737d8f60cfcSAlex Deucher # define IH_REQ_NONSNOOP_EN (1 << 3) 738d8f60cfcSAlex Deucher # define GEN_IH_INT_EN (1 << 8) 739d8f60cfcSAlex Deucher #define INTERRUPT_CNTL2 0x546c 740d8f60cfcSAlex Deucher 741d8f60cfcSAlex Deucher #define D1MODE_VBLANK_STATUS 0x6534 742d8f60cfcSAlex Deucher #define D2MODE_VBLANK_STATUS 0x6d34 743d8f60cfcSAlex Deucher # define DxMODE_VBLANK_OCCURRED (1 << 0) 744d8f60cfcSAlex Deucher # define DxMODE_VBLANK_ACK (1 << 4) 745d8f60cfcSAlex Deucher # define DxMODE_VBLANK_STAT (1 << 12) 746d8f60cfcSAlex Deucher # define DxMODE_VBLANK_INTERRUPT (1 << 16) 747d8f60cfcSAlex Deucher # define DxMODE_VBLANK_INTERRUPT_TYPE (1 << 17) 748d8f60cfcSAlex Deucher #define D1MODE_VLINE_STATUS 0x653c 749d8f60cfcSAlex Deucher #define D2MODE_VLINE_STATUS 0x6d3c 750d8f60cfcSAlex Deucher # define DxMODE_VLINE_OCCURRED (1 << 0) 751d8f60cfcSAlex Deucher # define DxMODE_VLINE_ACK (1 << 4) 752d8f60cfcSAlex Deucher # define DxMODE_VLINE_STAT (1 << 12) 753d8f60cfcSAlex Deucher # define DxMODE_VLINE_INTERRUPT (1 << 16) 754d8f60cfcSAlex Deucher # define DxMODE_VLINE_INTERRUPT_TYPE (1 << 17) 755d8f60cfcSAlex Deucher #define DxMODE_INT_MASK 0x6540 756d8f60cfcSAlex Deucher # define D1MODE_VBLANK_INT_MASK (1 << 0) 757d8f60cfcSAlex Deucher # define D1MODE_VLINE_INT_MASK (1 << 4) 758d8f60cfcSAlex Deucher # define D2MODE_VBLANK_INT_MASK (1 << 8) 759d8f60cfcSAlex Deucher # define D2MODE_VLINE_INT_MASK (1 << 12) 760d8f60cfcSAlex Deucher #define DCE3_DISP_INTERRUPT_STATUS 0x7ddc 761d8f60cfcSAlex Deucher # define DC_HPD1_INTERRUPT (1 << 18) 762d8f60cfcSAlex Deucher # define DC_HPD2_INTERRUPT (1 << 19) 763d8f60cfcSAlex Deucher #define DISP_INTERRUPT_STATUS 0x7edc 764d8f60cfcSAlex Deucher # define LB_D1_VLINE_INTERRUPT (1 << 2) 765d8f60cfcSAlex Deucher # define LB_D2_VLINE_INTERRUPT (1 << 3) 766d8f60cfcSAlex Deucher # define LB_D1_VBLANK_INTERRUPT (1 << 4) 767d8f60cfcSAlex Deucher # define LB_D2_VBLANK_INTERRUPT (1 << 5) 768d8f60cfcSAlex Deucher # define DACA_AUTODETECT_INTERRUPT (1 << 16) 769d8f60cfcSAlex Deucher # define DACB_AUTODETECT_INTERRUPT (1 << 17) 770d8f60cfcSAlex Deucher # define DC_HOT_PLUG_DETECT1_INTERRUPT (1 << 18) 771d8f60cfcSAlex Deucher # define DC_HOT_PLUG_DETECT2_INTERRUPT (1 << 19) 772d8f60cfcSAlex Deucher # define DC_I2C_SW_DONE_INTERRUPT (1 << 20) 773d8f60cfcSAlex Deucher # define DC_I2C_HW_DONE_INTERRUPT (1 << 21) 774b500f680SAlex Deucher #define DISP_INTERRUPT_STATUS_CONTINUE 0x7ee8 775d8f60cfcSAlex Deucher #define DCE3_DISP_INTERRUPT_STATUS_CONTINUE 0x7de8 776d8f60cfcSAlex Deucher # define DC_HPD4_INTERRUPT (1 << 14) 777d8f60cfcSAlex Deucher # define DC_HPD4_RX_INTERRUPT (1 << 15) 778d8f60cfcSAlex Deucher # define DC_HPD3_INTERRUPT (1 << 28) 779d8f60cfcSAlex Deucher # define DC_HPD1_RX_INTERRUPT (1 << 29) 780d8f60cfcSAlex Deucher # define DC_HPD2_RX_INTERRUPT (1 << 30) 781d8f60cfcSAlex Deucher #define DCE3_DISP_INTERRUPT_STATUS_CONTINUE2 0x7dec 782d8f60cfcSAlex Deucher # define DC_HPD3_RX_INTERRUPT (1 << 0) 783d8f60cfcSAlex Deucher # define DIGA_DP_VID_STREAM_DISABLE_INTERRUPT (1 << 1) 784d8f60cfcSAlex Deucher # define DIGA_DP_STEER_FIFO_OVERFLOW_INTERRUPT (1 << 2) 785d8f60cfcSAlex Deucher # define DIGB_DP_VID_STREAM_DISABLE_INTERRUPT (1 << 3) 786d8f60cfcSAlex Deucher # define DIGB_DP_STEER_FIFO_OVERFLOW_INTERRUPT (1 << 4) 787d8f60cfcSAlex Deucher # define AUX1_SW_DONE_INTERRUPT (1 << 5) 788d8f60cfcSAlex Deucher # define AUX1_LS_DONE_INTERRUPT (1 << 6) 789d8f60cfcSAlex Deucher # define AUX2_SW_DONE_INTERRUPT (1 << 7) 790d8f60cfcSAlex Deucher # define AUX2_LS_DONE_INTERRUPT (1 << 8) 791d8f60cfcSAlex Deucher # define AUX3_SW_DONE_INTERRUPT (1 << 9) 792d8f60cfcSAlex Deucher # define AUX3_LS_DONE_INTERRUPT (1 << 10) 793d8f60cfcSAlex Deucher # define AUX4_SW_DONE_INTERRUPT (1 << 11) 794d8f60cfcSAlex Deucher # define AUX4_LS_DONE_INTERRUPT (1 << 12) 795d8f60cfcSAlex Deucher # define DIGA_DP_FAST_TRAINING_COMPLETE_INTERRUPT (1 << 13) 796d8f60cfcSAlex Deucher # define DIGB_DP_FAST_TRAINING_COMPLETE_INTERRUPT (1 << 14) 797d8f60cfcSAlex Deucher /* DCE 3.2 */ 798d8f60cfcSAlex Deucher # define AUX5_SW_DONE_INTERRUPT (1 << 15) 799d8f60cfcSAlex Deucher # define AUX5_LS_DONE_INTERRUPT (1 << 16) 800d8f60cfcSAlex Deucher # define AUX6_SW_DONE_INTERRUPT (1 << 17) 801d8f60cfcSAlex Deucher # define AUX6_LS_DONE_INTERRUPT (1 << 18) 802d8f60cfcSAlex Deucher # define DC_HPD5_INTERRUPT (1 << 19) 803d8f60cfcSAlex Deucher # define DC_HPD5_RX_INTERRUPT (1 << 20) 804d8f60cfcSAlex Deucher # define DC_HPD6_INTERRUPT (1 << 21) 805d8f60cfcSAlex Deucher # define DC_HPD6_RX_INTERRUPT (1 << 22) 806d8f60cfcSAlex Deucher 807b500f680SAlex Deucher #define DACA_AUTO_DETECT_CONTROL 0x7828 808b500f680SAlex Deucher #define DACB_AUTO_DETECT_CONTROL 0x7a28 809b500f680SAlex Deucher #define DCE3_DACA_AUTO_DETECT_CONTROL 0x7028 810b500f680SAlex Deucher #define DCE3_DACB_AUTO_DETECT_CONTROL 0x7128 811b500f680SAlex Deucher # define DACx_AUTODETECT_MODE(x) ((x) << 0) 812b500f680SAlex Deucher # define DACx_AUTODETECT_MODE_NONE 0 813b500f680SAlex Deucher # define DACx_AUTODETECT_MODE_CONNECT 1 814b500f680SAlex Deucher # define DACx_AUTODETECT_MODE_DISCONNECT 2 815b500f680SAlex Deucher # define DACx_AUTODETECT_FRAME_TIME_COUNTER(x) ((x) << 8) 816b500f680SAlex Deucher /* bit 18 = R/C, 17 = G/Y, 16 = B/Comp */ 817b500f680SAlex Deucher # define DACx_AUTODETECT_CHECK_MASK(x) ((x) << 16) 818b500f680SAlex Deucher 819d8f60cfcSAlex Deucher #define DCE3_DACA_AUTODETECT_INT_CONTROL 0x7038 820d8f60cfcSAlex Deucher #define DCE3_DACB_AUTODETECT_INT_CONTROL 0x7138 821d8f60cfcSAlex Deucher #define DACA_AUTODETECT_INT_CONTROL 0x7838 822d8f60cfcSAlex Deucher #define DACB_AUTODETECT_INT_CONTROL 0x7a38 823d8f60cfcSAlex Deucher # define DACx_AUTODETECT_ACK (1 << 0) 824d8f60cfcSAlex Deucher # define DACx_AUTODETECT_INT_ENABLE (1 << 16) 825d8f60cfcSAlex Deucher 826b500f680SAlex Deucher #define DC_HOT_PLUG_DETECT1_CONTROL 0x7d00 827b500f680SAlex Deucher #define DC_HOT_PLUG_DETECT2_CONTROL 0x7d10 828b500f680SAlex Deucher #define DC_HOT_PLUG_DETECT3_CONTROL 0x7d24 829b500f680SAlex Deucher # define DC_HOT_PLUG_DETECTx_EN (1 << 0) 830b500f680SAlex Deucher 831b500f680SAlex Deucher #define DC_HOT_PLUG_DETECT1_INT_STATUS 0x7d04 832b500f680SAlex Deucher #define DC_HOT_PLUG_DETECT2_INT_STATUS 0x7d14 833b500f680SAlex Deucher #define DC_HOT_PLUG_DETECT3_INT_STATUS 0x7d28 834b500f680SAlex Deucher # define DC_HOT_PLUG_DETECTx_INT_STATUS (1 << 0) 835b500f680SAlex Deucher # define DC_HOT_PLUG_DETECTx_SENSE (1 << 1) 836b500f680SAlex Deucher 837b500f680SAlex Deucher /* DCE 3.0 */ 838b500f680SAlex Deucher #define DC_HPD1_INT_STATUS 0x7d00 839b500f680SAlex Deucher #define DC_HPD2_INT_STATUS 0x7d0c 840b500f680SAlex Deucher #define DC_HPD3_INT_STATUS 0x7d18 841b500f680SAlex Deucher #define DC_HPD4_INT_STATUS 0x7d24 842b500f680SAlex Deucher /* DCE 3.2 */ 843b500f680SAlex Deucher #define DC_HPD5_INT_STATUS 0x7dc0 844b500f680SAlex Deucher #define DC_HPD6_INT_STATUS 0x7df4 845b500f680SAlex Deucher # define DC_HPDx_INT_STATUS (1 << 0) 846b500f680SAlex Deucher # define DC_HPDx_SENSE (1 << 1) 847b500f680SAlex Deucher # define DC_HPDx_RX_INT_STATUS (1 << 8) 848b500f680SAlex Deucher 849d8f60cfcSAlex Deucher #define DC_HOT_PLUG_DETECT1_INT_CONTROL 0x7d08 850d8f60cfcSAlex Deucher #define DC_HOT_PLUG_DETECT2_INT_CONTROL 0x7d18 851d8f60cfcSAlex Deucher #define DC_HOT_PLUG_DETECT3_INT_CONTROL 0x7d2c 852d8f60cfcSAlex Deucher # define DC_HOT_PLUG_DETECTx_INT_ACK (1 << 0) 853d8f60cfcSAlex Deucher # define DC_HOT_PLUG_DETECTx_INT_POLARITY (1 << 8) 854d8f60cfcSAlex Deucher # define DC_HOT_PLUG_DETECTx_INT_EN (1 << 16) 855b500f680SAlex Deucher /* DCE 3.0 */ 856d8f60cfcSAlex Deucher #define DC_HPD1_INT_CONTROL 0x7d04 857d8f60cfcSAlex Deucher #define DC_HPD2_INT_CONTROL 0x7d10 858d8f60cfcSAlex Deucher #define DC_HPD3_INT_CONTROL 0x7d1c 859d8f60cfcSAlex Deucher #define DC_HPD4_INT_CONTROL 0x7d28 860b500f680SAlex Deucher /* DCE 3.2 */ 861b500f680SAlex Deucher #define DC_HPD5_INT_CONTROL 0x7dc4 862b500f680SAlex Deucher #define DC_HPD6_INT_CONTROL 0x7df8 863d8f60cfcSAlex Deucher # define DC_HPDx_INT_ACK (1 << 0) 864d8f60cfcSAlex Deucher # define DC_HPDx_INT_POLARITY (1 << 8) 865d8f60cfcSAlex Deucher # define DC_HPDx_INT_EN (1 << 16) 866d8f60cfcSAlex Deucher # define DC_HPDx_RX_INT_ACK (1 << 20) 867d8f60cfcSAlex Deucher # define DC_HPDx_RX_INT_EN (1 << 24) 8683ce0a23dSJerome Glisse 869b500f680SAlex Deucher /* DCE 3.0 */ 870b500f680SAlex Deucher #define DC_HPD1_CONTROL 0x7d08 871b500f680SAlex Deucher #define DC_HPD2_CONTROL 0x7d14 872b500f680SAlex Deucher #define DC_HPD3_CONTROL 0x7d20 873b500f680SAlex Deucher #define DC_HPD4_CONTROL 0x7d2c 874b500f680SAlex Deucher /* DCE 3.2 */ 875b500f680SAlex Deucher #define DC_HPD5_CONTROL 0x7dc8 876b500f680SAlex Deucher #define DC_HPD6_CONTROL 0x7dfc 877b500f680SAlex Deucher # define DC_HPDx_CONNECTION_TIMER(x) ((x) << 0) 878b500f680SAlex Deucher # define DC_HPDx_RX_INT_TIMER(x) ((x) << 16) 879b500f680SAlex Deucher /* DCE 3.2 */ 880b500f680SAlex Deucher # define DC_HPDx_EN (1 << 28) 881b500f680SAlex Deucher 8826f34be50SAlex Deucher #define D1GRPH_INTERRUPT_STATUS 0x6158 8836f34be50SAlex Deucher #define D2GRPH_INTERRUPT_STATUS 0x6958 8846f34be50SAlex Deucher # define DxGRPH_PFLIP_INT_OCCURRED (1 << 0) 8856f34be50SAlex Deucher # define DxGRPH_PFLIP_INT_CLEAR (1 << 8) 8866f34be50SAlex Deucher #define D1GRPH_INTERRUPT_CONTROL 0x615c 8876f34be50SAlex Deucher #define D2GRPH_INTERRUPT_CONTROL 0x695c 8886f34be50SAlex Deucher # define DxGRPH_PFLIP_INT_MASK (1 << 0) 8896f34be50SAlex Deucher # define DxGRPH_PFLIP_INT_TYPE (1 << 8) 8906f34be50SAlex Deucher 8919e46a48dSAlex Deucher /* PCIE link stuff */ 8929e46a48dSAlex Deucher #define PCIE_LC_TRAINING_CNTL 0xa1 /* PCIE_P */ 8939e46a48dSAlex Deucher # define LC_POINT_7_PLUS_EN (1 << 6) 8949e46a48dSAlex Deucher #define PCIE_LC_LINK_WIDTH_CNTL 0xa2 /* PCIE_P */ 8959e46a48dSAlex Deucher # define LC_LINK_WIDTH_SHIFT 0 8969e46a48dSAlex Deucher # define LC_LINK_WIDTH_MASK 0x7 8979e46a48dSAlex Deucher # define LC_LINK_WIDTH_X0 0 8989e46a48dSAlex Deucher # define LC_LINK_WIDTH_X1 1 8999e46a48dSAlex Deucher # define LC_LINK_WIDTH_X2 2 9009e46a48dSAlex Deucher # define LC_LINK_WIDTH_X4 3 9019e46a48dSAlex Deucher # define LC_LINK_WIDTH_X8 4 9029e46a48dSAlex Deucher # define LC_LINK_WIDTH_X16 6 9039e46a48dSAlex Deucher # define LC_LINK_WIDTH_RD_SHIFT 4 9049e46a48dSAlex Deucher # define LC_LINK_WIDTH_RD_MASK 0x70 9059e46a48dSAlex Deucher # define LC_RECONFIG_ARC_MISSING_ESCAPE (1 << 7) 9069e46a48dSAlex Deucher # define LC_RECONFIG_NOW (1 << 8) 9079e46a48dSAlex Deucher # define LC_RENEGOTIATION_SUPPORT (1 << 9) 9089e46a48dSAlex Deucher # define LC_RENEGOTIATE_EN (1 << 10) 9099e46a48dSAlex Deucher # define LC_SHORT_RECONFIG_EN (1 << 11) 9109e46a48dSAlex Deucher # define LC_UPCONFIGURE_SUPPORT (1 << 12) 9119e46a48dSAlex Deucher # define LC_UPCONFIGURE_DIS (1 << 13) 9129e46a48dSAlex Deucher #define PCIE_LC_SPEED_CNTL 0xa4 /* PCIE_P */ 9139e46a48dSAlex Deucher # define LC_GEN2_EN_STRAP (1 << 0) 9149e46a48dSAlex Deucher # define LC_TARGET_LINK_SPEED_OVERRIDE_EN (1 << 1) 9159e46a48dSAlex Deucher # define LC_FORCE_EN_HW_SPEED_CHANGE (1 << 5) 9169e46a48dSAlex Deucher # define LC_FORCE_DIS_HW_SPEED_CHANGE (1 << 6) 9179e46a48dSAlex Deucher # define LC_SPEED_CHANGE_ATTEMPTS_ALLOWED_MASK (0x3 << 8) 9189e46a48dSAlex Deucher # define LC_SPEED_CHANGE_ATTEMPTS_ALLOWED_SHIFT 3 9199e46a48dSAlex Deucher # define LC_CURRENT_DATA_RATE (1 << 11) 9209e46a48dSAlex Deucher # define LC_VOLTAGE_TIMER_SEL_MASK (0xf << 14) 9219e46a48dSAlex Deucher # define LC_CLR_FAILED_SPD_CHANGE_CNT (1 << 21) 9229e46a48dSAlex Deucher # define LC_OTHER_SIDE_EVER_SENT_GEN2 (1 << 23) 9239e46a48dSAlex Deucher # define LC_OTHER_SIDE_SUPPORTS_GEN2 (1 << 24) 9249e46a48dSAlex Deucher #define MM_CFGREGS_CNTL 0x544c 9259e46a48dSAlex Deucher # define MM_WR_TO_CFG_EN (1 << 3) 9269e46a48dSAlex Deucher #define LINK_CNTL2 0x88 /* F0 */ 9279e46a48dSAlex Deucher # define TARGET_LINK_SPEED_MASK (0xf << 0) 9289e46a48dSAlex Deucher # define SELECTABLE_DEEMPHASIS (1 << 6) 9299e46a48dSAlex Deucher 930d3d8c141SAlex Deucher /* Audio */ 931d3d8c141SAlex Deucher #define AZ_HOT_PLUG_CONTROL 0x7300 932d3d8c141SAlex Deucher # define AZ_FORCE_CODEC_WAKE (1 << 0) 933d3d8c141SAlex Deucher # define JACK_DETECTION_ENABLE (1 << 4) 934d3d8c141SAlex Deucher # define UNSOLICITED_RESPONSE_ENABLE (1 << 8) 935d3d8c141SAlex Deucher # define CODEC_HOT_PLUG_ENABLE (1 << 12) 936d3d8c141SAlex Deucher # define AUDIO_ENABLED (1 << 31) 937d3d8c141SAlex Deucher /* DCE3 adds */ 938d3d8c141SAlex Deucher # define PIN0_JACK_DETECTION_ENABLE (1 << 4) 939d3d8c141SAlex Deucher # define PIN1_JACK_DETECTION_ENABLE (1 << 5) 940d3d8c141SAlex Deucher # define PIN2_JACK_DETECTION_ENABLE (1 << 6) 941d3d8c141SAlex Deucher # define PIN3_JACK_DETECTION_ENABLE (1 << 7) 942d3d8c141SAlex Deucher # define PIN0_AUDIO_ENABLED (1 << 24) 943d3d8c141SAlex Deucher # define PIN1_AUDIO_ENABLED (1 << 25) 944d3d8c141SAlex Deucher # define PIN2_AUDIO_ENABLED (1 << 26) 945d3d8c141SAlex Deucher # define PIN3_AUDIO_ENABLED (1 << 27) 946d3d8c141SAlex Deucher 9471586505aSAlex Deucher /* Audio clocks DCE 2.0/3.0 */ 9481586505aSAlex Deucher #define AUDIO_DTO 0x7340 9491586505aSAlex Deucher # define AUDIO_DTO_PHASE(x) (((x) & 0xffff) << 0) 9501586505aSAlex Deucher # define AUDIO_DTO_MODULE(x) (((x) & 0xffff) << 16) 9511586505aSAlex Deucher 9521586505aSAlex Deucher /* Audio clocks DCE 3.2 */ 9533a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO0_PHASE 0x0514 9543a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO0_MODULE 0x0518 9553a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO0_LOAD 0x051c 9563a2a67aaSAlex Deucher # define DTO_LOAD (1 << 31) 9573a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO0_CNTL 0x0520 9581518dd8eSAlex Deucher # define DCCG_AUDIO_DTO_WALLCLOCK_RATIO(x) (((x) & 7) << 0) 9591518dd8eSAlex Deucher # define DCCG_AUDIO_DTO_WALLCLOCK_RATIO_MASK 7 9601518dd8eSAlex Deucher # define DCCG_AUDIO_DTO_WALLCLOCK_RATIO_SHIFT 0 9613a2a67aaSAlex Deucher 9623a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO1_PHASE 0x0524 9633a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO1_MODULE 0x0528 9643a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO1_LOAD 0x052c 9653a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO1_CNTL 0x0530 9663a2a67aaSAlex Deucher 9673a2a67aaSAlex Deucher #define DCCG_AUDIO_DTO_SELECT 0x0534 9683a2a67aaSAlex Deucher 9693a2a67aaSAlex Deucher /* digital blocks */ 9703a2a67aaSAlex Deucher #define TMDSA_CNTL 0x7880 9713a2a67aaSAlex Deucher # define TMDSA_HDMI_EN (1 << 2) 9723a2a67aaSAlex Deucher #define LVTMA_CNTL 0x7a80 9733a2a67aaSAlex Deucher # define LVTMA_HDMI_EN (1 << 2) 9743a2a67aaSAlex Deucher #define DDIA_CNTL 0x7200 9753a2a67aaSAlex Deucher # define DDIA_HDMI_EN (1 << 2) 9763a2a67aaSAlex Deucher #define DIG0_CNTL 0x75a0 9773a2a67aaSAlex Deucher # define DIG_MODE(x) (((x) & 7) << 8) 9783a2a67aaSAlex Deucher # define DIG_MODE_DP 0 9793a2a67aaSAlex Deucher # define DIG_MODE_LVDS 1 9803a2a67aaSAlex Deucher # define DIG_MODE_TMDS_DVI 2 9813a2a67aaSAlex Deucher # define DIG_MODE_TMDS_HDMI 3 9823a2a67aaSAlex Deucher # define DIG_MODE_SDVO 4 9833a2a67aaSAlex Deucher #define DIG1_CNTL 0x79a0 9843a2a67aaSAlex Deucher 9850ffae60cSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_CHANNEL_SPEAKER 0x71bc 9860ffae60cSAlex Deucher #define SPEAKER_ALLOCATION(x) (((x) & 0x7f) << 0) 9870ffae60cSAlex Deucher #define SPEAKER_ALLOCATION_MASK (0x7f << 0) 9880ffae60cSAlex Deucher #define SPEAKER_ALLOCATION_SHIFT 0 9890ffae60cSAlex Deucher #define HDMI_CONNECTION (1 << 16) 9900ffae60cSAlex Deucher #define DP_CONNECTION (1 << 17) 9910ffae60cSAlex Deucher 992c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR0 0x71c8 /* LPCM */ 993c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR1 0x71cc /* AC3 */ 994c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR2 0x71d0 /* MPEG1 */ 995c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR3 0x71d4 /* MP3 */ 996c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR4 0x71d8 /* MPEG2 */ 997c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR5 0x71dc /* AAC */ 998c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR6 0x71e0 /* DTS */ 999c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR7 0x71e4 /* ATRAC */ 1000c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR8 0x71e8 /* one bit audio - leave at 0 (default) */ 1001c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR9 0x71ec /* Dolby Digital */ 1002c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR10 0x71f0 /* DTS-HD */ 1003c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR11 0x71f4 /* MAT-MLP */ 1004c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR12 0x71f8 /* DTS */ 1005c1cbee0eSAlex Deucher #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR13 0x71fc /* WMA Pro */ 1006c1cbee0eSAlex Deucher # define MAX_CHANNELS(x) (((x) & 0x7) << 0) 1007c1cbee0eSAlex Deucher /* max channels minus one. 7 = 8 channels */ 1008c1cbee0eSAlex Deucher # define SUPPORTED_FREQUENCIES(x) (((x) & 0xff) << 8) 1009c1cbee0eSAlex Deucher # define DESCRIPTOR_BYTE_2(x) (((x) & 0xff) << 16) 1010c1cbee0eSAlex Deucher # define SUPPORTED_FREQUENCIES_STEREO(x) (((x) & 0xff) << 24) /* LPCM only */ 1011c1cbee0eSAlex Deucher /* SUPPORTED_FREQUENCIES, SUPPORTED_FREQUENCIES_STEREO 1012c1cbee0eSAlex Deucher * bit0 = 32 kHz 1013c1cbee0eSAlex Deucher * bit1 = 44.1 kHz 1014c1cbee0eSAlex Deucher * bit2 = 48 kHz 1015c1cbee0eSAlex Deucher * bit3 = 88.2 kHz 1016c1cbee0eSAlex Deucher * bit4 = 96 kHz 1017c1cbee0eSAlex Deucher * bit5 = 176.4 kHz 1018c1cbee0eSAlex Deucher * bit6 = 192 kHz 1019c1cbee0eSAlex Deucher */ 1020c1cbee0eSAlex Deucher 10213a2a67aaSAlex Deucher /* rs6xx/rs740 and r6xx share the same HDMI blocks, however, rs6xx has only one 10223a2a67aaSAlex Deucher * instance of the blocks while r6xx has 2. DCE 3.0 cards are slightly 10233a2a67aaSAlex Deucher * different due to the new DIG blocks, but also have 2 instances. 10243a2a67aaSAlex Deucher * DCE 3.0 HDMI blocks are part of each DIG encoder. 10253a2a67aaSAlex Deucher */ 10263a2a67aaSAlex Deucher 10273a2a67aaSAlex Deucher /* rs6xx/rs740/r6xx/dce3 */ 10283a2a67aaSAlex Deucher #define HDMI0_CONTROL 0x7400 10293a2a67aaSAlex Deucher /* rs6xx/rs740/r6xx */ 10303a2a67aaSAlex Deucher # define HDMI0_ENABLE (1 << 0) 10313a2a67aaSAlex Deucher # define HDMI0_STREAM(x) (((x) & 3) << 2) 10323a2a67aaSAlex Deucher # define HDMI0_STREAM_TMDSA 0 10333a2a67aaSAlex Deucher # define HDMI0_STREAM_LVTMA 1 10343a2a67aaSAlex Deucher # define HDMI0_STREAM_DVOA 2 10353a2a67aaSAlex Deucher # define HDMI0_STREAM_DDIA 3 10363a2a67aaSAlex Deucher /* rs6xx/r6xx/dce3 */ 10373a2a67aaSAlex Deucher # define HDMI0_ERROR_ACK (1 << 8) 10383a2a67aaSAlex Deucher # define HDMI0_ERROR_MASK (1 << 9) 10393a2a67aaSAlex Deucher #define HDMI0_STATUS 0x7404 10403a2a67aaSAlex Deucher # define HDMI0_ACTIVE_AVMUTE (1 << 0) 10413a2a67aaSAlex Deucher # define HDMI0_AUDIO_ENABLE (1 << 4) 10423a2a67aaSAlex Deucher # define HDMI0_AZ_FORMAT_WTRIG (1 << 28) 10433a2a67aaSAlex Deucher # define HDMI0_AZ_FORMAT_WTRIG_INT (1 << 29) 10443a2a67aaSAlex Deucher #define HDMI0_AUDIO_PACKET_CONTROL 0x7408 10453a2a67aaSAlex Deucher # define HDMI0_AUDIO_SAMPLE_SEND (1 << 0) 10463a2a67aaSAlex Deucher # define HDMI0_AUDIO_DELAY_EN(x) (((x) & 3) << 4) 104768706337SRafał Miłecki # define HDMI0_AUDIO_DELAY_EN_MASK (3 << 4) 10483a2a67aaSAlex Deucher # define HDMI0_AUDIO_SEND_MAX_PACKETS (1 << 8) 10493a2a67aaSAlex Deucher # define HDMI0_AUDIO_TEST_EN (1 << 12) 10503a2a67aaSAlex Deucher # define HDMI0_AUDIO_PACKETS_PER_LINE(x) (((x) & 0x1f) << 16) 105168706337SRafał Miłecki # define HDMI0_AUDIO_PACKETS_PER_LINE_MASK (0x1f << 16) 10523a2a67aaSAlex Deucher # define HDMI0_AUDIO_CHANNEL_SWAP (1 << 24) 10533a2a67aaSAlex Deucher # define HDMI0_60958_CS_UPDATE (1 << 26) 10543a2a67aaSAlex Deucher # define HDMI0_AZ_FORMAT_WTRIG_MASK (1 << 28) 10553a2a67aaSAlex Deucher # define HDMI0_AZ_FORMAT_WTRIG_ACK (1 << 29) 10563a2a67aaSAlex Deucher #define HDMI0_AUDIO_CRC_CONTROL 0x740c 10573a2a67aaSAlex Deucher # define HDMI0_AUDIO_CRC_EN (1 << 0) 10582e93cac9SRafał Miłecki #define DCE3_HDMI0_ACR_PACKET_CONTROL 0x740c 10593a2a67aaSAlex Deucher #define HDMI0_VBI_PACKET_CONTROL 0x7410 10603a2a67aaSAlex Deucher # define HDMI0_NULL_SEND (1 << 0) 10613a2a67aaSAlex Deucher # define HDMI0_GC_SEND (1 << 4) 10623a2a67aaSAlex Deucher # define HDMI0_GC_CONT (1 << 5) /* 0 - once; 1 - every frame */ 10633a2a67aaSAlex Deucher #define HDMI0_INFOFRAME_CONTROL0 0x7414 10643a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_SEND (1 << 0) 10653a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_CONT (1 << 1) 10663a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_SEND (1 << 4) 10673a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_CONT (1 << 5) 1068d592fca9SDamien Lespiau # define HDMI0_AUDIO_INFO_SOURCE (1 << 6) /* 0 - sound block; 1 - hdmi regs */ 10693a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_UPDATE (1 << 7) 10703a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_SEND (1 << 8) 10713a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_CONT (1 << 9) 10723a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_UPDATE (1 << 10) 10733a2a67aaSAlex Deucher #define HDMI0_INFOFRAME_CONTROL1 0x7418 10743a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_LINE(x) (((x) & 0x3f) << 0) 107568706337SRafał Miłecki # define HDMI0_AVI_INFO_LINE_MASK (0x3f << 0) 10763a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_LINE(x) (((x) & 0x3f) << 8) 107768706337SRafał Miłecki # define HDMI0_AUDIO_INFO_LINE_MASK (0x3f << 8) 10783a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_LINE(x) (((x) & 0x3f) << 16) 10793a2a67aaSAlex Deucher #define HDMI0_GENERIC_PACKET_CONTROL 0x741c 10803a2a67aaSAlex Deucher # define HDMI0_GENERIC0_SEND (1 << 0) 10813a2a67aaSAlex Deucher # define HDMI0_GENERIC0_CONT (1 << 1) 10823a2a67aaSAlex Deucher # define HDMI0_GENERIC0_UPDATE (1 << 2) 10833a2a67aaSAlex Deucher # define HDMI0_GENERIC1_SEND (1 << 4) 10843a2a67aaSAlex Deucher # define HDMI0_GENERIC1_CONT (1 << 5) 10853a2a67aaSAlex Deucher # define HDMI0_GENERIC0_LINE(x) (((x) & 0x3f) << 16) 108668706337SRafał Miłecki # define HDMI0_GENERIC0_LINE_MASK (0x3f << 16) 10873a2a67aaSAlex Deucher # define HDMI0_GENERIC1_LINE(x) (((x) & 0x3f) << 24) 108868706337SRafał Miłecki # define HDMI0_GENERIC1_LINE_MASK (0x3f << 24) 10893a2a67aaSAlex Deucher #define HDMI0_GC 0x7428 10903a2a67aaSAlex Deucher # define HDMI0_GC_AVMUTE (1 << 0) 10913a2a67aaSAlex Deucher #define HDMI0_AVI_INFO0 0x7454 10923a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 10933a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_S(x) (((x) & 3) << 8) 10943a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_B(x) (((x) & 3) << 10) 10953a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_A(x) (((x) & 1) << 12) 10963a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_Y(x) (((x) & 3) << 13) 10973a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_Y_RGB 0 10983a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_Y_YCBCR422 1 10993a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_Y_YCBCR444 2 11003a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_Y_A_B_S(x) (((x) & 0xff) << 8) 11013a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_R(x) (((x) & 0xf) << 16) 11023a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_M(x) (((x) & 0x3) << 20) 11033a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_C(x) (((x) & 0x3) << 22) 11043a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_C_M_R(x) (((x) & 0xff) << 16) 11053a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_SC(x) (((x) & 0x3) << 24) 11063a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_ITC_EC_Q_SC(x) (((x) & 0xff) << 24) 11073a2a67aaSAlex Deucher #define HDMI0_AVI_INFO1 0x7458 11083a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_VIC(x) (((x) & 0x7f) << 0) /* don't use avi infoframe v1 */ 11093a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_PR(x) (((x) & 0xf) << 8) /* don't use avi infoframe v1 */ 11103a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_TOP(x) (((x) & 0xffff) << 16) 11113a2a67aaSAlex Deucher #define HDMI0_AVI_INFO2 0x745c 11123a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_BOTTOM(x) (((x) & 0xffff) << 0) 11133a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_LEFT(x) (((x) & 0xffff) << 16) 11143a2a67aaSAlex Deucher #define HDMI0_AVI_INFO3 0x7460 11153a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_RIGHT(x) (((x) & 0xffff) << 0) 11163a2a67aaSAlex Deucher # define HDMI0_AVI_INFO_VERSION(x) (((x) & 3) << 24) 11173a2a67aaSAlex Deucher #define HDMI0_MPEG_INFO0 0x7464 11183a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 11193a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_MB0(x) (((x) & 0xff) << 8) 11203a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_MB1(x) (((x) & 0xff) << 16) 11213a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_MB2(x) (((x) & 0xff) << 24) 11223a2a67aaSAlex Deucher #define HDMI0_MPEG_INFO1 0x7468 11233a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_MB3(x) (((x) & 0xff) << 0) 11243a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_MF(x) (((x) & 3) << 8) 11253a2a67aaSAlex Deucher # define HDMI0_MPEG_INFO_FR(x) (((x) & 1) << 12) 11263a2a67aaSAlex Deucher #define HDMI0_GENERIC0_HDR 0x746c 11273a2a67aaSAlex Deucher #define HDMI0_GENERIC0_0 0x7470 11283a2a67aaSAlex Deucher #define HDMI0_GENERIC0_1 0x7474 11293a2a67aaSAlex Deucher #define HDMI0_GENERIC0_2 0x7478 11303a2a67aaSAlex Deucher #define HDMI0_GENERIC0_3 0x747c 11313a2a67aaSAlex Deucher #define HDMI0_GENERIC0_4 0x7480 11323a2a67aaSAlex Deucher #define HDMI0_GENERIC0_5 0x7484 11333a2a67aaSAlex Deucher #define HDMI0_GENERIC0_6 0x7488 11343a2a67aaSAlex Deucher #define HDMI0_GENERIC1_HDR 0x748c 11353a2a67aaSAlex Deucher #define HDMI0_GENERIC1_0 0x7490 11363a2a67aaSAlex Deucher #define HDMI0_GENERIC1_1 0x7494 11373a2a67aaSAlex Deucher #define HDMI0_GENERIC1_2 0x7498 11383a2a67aaSAlex Deucher #define HDMI0_GENERIC1_3 0x749c 11393a2a67aaSAlex Deucher #define HDMI0_GENERIC1_4 0x74a0 11403a2a67aaSAlex Deucher #define HDMI0_GENERIC1_5 0x74a4 11413a2a67aaSAlex Deucher #define HDMI0_GENERIC1_6 0x74a8 11423a2a67aaSAlex Deucher #define HDMI0_ACR_32_0 0x74ac 11433a2a67aaSAlex Deucher # define HDMI0_ACR_CTS_32(x) (((x) & 0xfffff) << 12) 114468706337SRafał Miłecki # define HDMI0_ACR_CTS_32_MASK (0xfffff << 12) 11453a2a67aaSAlex Deucher #define HDMI0_ACR_32_1 0x74b0 11463a2a67aaSAlex Deucher # define HDMI0_ACR_N_32(x) (((x) & 0xfffff) << 0) 114768706337SRafał Miłecki # define HDMI0_ACR_N_32_MASK (0xfffff << 0) 11483a2a67aaSAlex Deucher #define HDMI0_ACR_44_0 0x74b4 11493a2a67aaSAlex Deucher # define HDMI0_ACR_CTS_44(x) (((x) & 0xfffff) << 12) 115068706337SRafał Miłecki # define HDMI0_ACR_CTS_44_MASK (0xfffff << 12) 11513a2a67aaSAlex Deucher #define HDMI0_ACR_44_1 0x74b8 11523a2a67aaSAlex Deucher # define HDMI0_ACR_N_44(x) (((x) & 0xfffff) << 0) 115368706337SRafał Miłecki # define HDMI0_ACR_N_44_MASK (0xfffff << 0) 11543a2a67aaSAlex Deucher #define HDMI0_ACR_48_0 0x74bc 11553a2a67aaSAlex Deucher # define HDMI0_ACR_CTS_48(x) (((x) & 0xfffff) << 12) 115668706337SRafał Miłecki # define HDMI0_ACR_CTS_48_MASK (0xfffff << 12) 11573a2a67aaSAlex Deucher #define HDMI0_ACR_48_1 0x74c0 11583a2a67aaSAlex Deucher # define HDMI0_ACR_N_48(x) (((x) & 0xfffff) << 0) 115968706337SRafał Miłecki # define HDMI0_ACR_N_48_MASK (0xfffff << 0) 11603a2a67aaSAlex Deucher #define HDMI0_ACR_STATUS_0 0x74c4 11613a2a67aaSAlex Deucher #define HDMI0_ACR_STATUS_1 0x74c8 11623a2a67aaSAlex Deucher #define HDMI0_AUDIO_INFO0 0x74cc 11633a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 11643a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_CC(x) (((x) & 7) << 8) 11653a2a67aaSAlex Deucher #define HDMI0_AUDIO_INFO1 0x74d0 11663a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_CA(x) (((x) & 0xff) << 0) 11673a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_LSV(x) (((x) & 0xf) << 11) 11683a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_DM_INH(x) (((x) & 1) << 15) 11693a2a67aaSAlex Deucher # define HDMI0_AUDIO_INFO_DM_INH_LSV(x) (((x) & 0xff) << 8) 11703a2a67aaSAlex Deucher #define HDMI0_60958_0 0x74d4 11713a2a67aaSAlex Deucher # define HDMI0_60958_CS_A(x) (((x) & 1) << 0) 11723a2a67aaSAlex Deucher # define HDMI0_60958_CS_B(x) (((x) & 1) << 1) 11733a2a67aaSAlex Deucher # define HDMI0_60958_CS_C(x) (((x) & 1) << 2) 11743a2a67aaSAlex Deucher # define HDMI0_60958_CS_D(x) (((x) & 3) << 3) 11753a2a67aaSAlex Deucher # define HDMI0_60958_CS_MODE(x) (((x) & 3) << 6) 11763a2a67aaSAlex Deucher # define HDMI0_60958_CS_CATEGORY_CODE(x) (((x) & 0xff) << 8) 11773a2a67aaSAlex Deucher # define HDMI0_60958_CS_SOURCE_NUMBER(x) (((x) & 0xf) << 16) 11783a2a67aaSAlex Deucher # define HDMI0_60958_CS_CHANNEL_NUMBER_L(x) (((x) & 0xf) << 20) 117968706337SRafał Miłecki # define HDMI0_60958_CS_CHANNEL_NUMBER_L_MASK (0xf << 20) 11803a2a67aaSAlex Deucher # define HDMI0_60958_CS_SAMPLING_FREQUENCY(x) (((x) & 0xf) << 24) 11813a2a67aaSAlex Deucher # define HDMI0_60958_CS_CLOCK_ACCURACY(x) (((x) & 3) << 28) 118268706337SRafał Miłecki # define HDMI0_60958_CS_CLOCK_ACCURACY_MASK (3 << 28) 11833a2a67aaSAlex Deucher #define HDMI0_60958_1 0x74d8 11843a2a67aaSAlex Deucher # define HDMI0_60958_CS_WORD_LENGTH(x) (((x) & 0xf) << 0) 11853a2a67aaSAlex Deucher # define HDMI0_60958_CS_ORIGINAL_SAMPLING_FREQUENCY(x) (((x) & 0xf) << 4) 11863a2a67aaSAlex Deucher # define HDMI0_60958_CS_VALID_L(x) (((x) & 1) << 16) 11873a2a67aaSAlex Deucher # define HDMI0_60958_CS_VALID_R(x) (((x) & 1) << 18) 11883a2a67aaSAlex Deucher # define HDMI0_60958_CS_CHANNEL_NUMBER_R(x) (((x) & 0xf) << 20) 118968706337SRafał Miłecki # define HDMI0_60958_CS_CHANNEL_NUMBER_R_MASK (0xf << 20) 11903a2a67aaSAlex Deucher #define HDMI0_ACR_PACKET_CONTROL 0x74dc 11913a2a67aaSAlex Deucher # define HDMI0_ACR_SEND (1 << 0) 11923a2a67aaSAlex Deucher # define HDMI0_ACR_CONT (1 << 1) 11933a2a67aaSAlex Deucher # define HDMI0_ACR_SELECT(x) (((x) & 3) << 4) 11943a2a67aaSAlex Deucher # define HDMI0_ACR_HW 0 11953a2a67aaSAlex Deucher # define HDMI0_ACR_32 1 11963a2a67aaSAlex Deucher # define HDMI0_ACR_44 2 11973a2a67aaSAlex Deucher # define HDMI0_ACR_48 3 11983a2a67aaSAlex Deucher # define HDMI0_ACR_SOURCE (1 << 8) /* 0 - hw; 1 - cts value */ 11993a2a67aaSAlex Deucher # define HDMI0_ACR_AUTO_SEND (1 << 12) 12002e93cac9SRafał Miłecki #define DCE3_HDMI0_AUDIO_CRC_CONTROL 0x74dc 12013a2a67aaSAlex Deucher #define HDMI0_RAMP_CONTROL0 0x74e0 12023a2a67aaSAlex Deucher # define HDMI0_RAMP_MAX_COUNT(x) (((x) & 0xffffff) << 0) 12033a2a67aaSAlex Deucher #define HDMI0_RAMP_CONTROL1 0x74e4 12043a2a67aaSAlex Deucher # define HDMI0_RAMP_MIN_COUNT(x) (((x) & 0xffffff) << 0) 12053a2a67aaSAlex Deucher #define HDMI0_RAMP_CONTROL2 0x74e8 12063a2a67aaSAlex Deucher # define HDMI0_RAMP_INC_COUNT(x) (((x) & 0xffffff) << 0) 12073a2a67aaSAlex Deucher #define HDMI0_RAMP_CONTROL3 0x74ec 12083a2a67aaSAlex Deucher # define HDMI0_RAMP_DEC_COUNT(x) (((x) & 0xffffff) << 0) 12093a2a67aaSAlex Deucher /* HDMI0_60958_2 is r7xx only */ 12103a2a67aaSAlex Deucher #define HDMI0_60958_2 0x74f0 12113a2a67aaSAlex Deucher # define HDMI0_60958_CS_CHANNEL_NUMBER_2(x) (((x) & 0xf) << 0) 12123a2a67aaSAlex Deucher # define HDMI0_60958_CS_CHANNEL_NUMBER_3(x) (((x) & 0xf) << 4) 12133a2a67aaSAlex Deucher # define HDMI0_60958_CS_CHANNEL_NUMBER_4(x) (((x) & 0xf) << 8) 12143a2a67aaSAlex Deucher # define HDMI0_60958_CS_CHANNEL_NUMBER_5(x) (((x) & 0xf) << 12) 12153a2a67aaSAlex Deucher # define HDMI0_60958_CS_CHANNEL_NUMBER_6(x) (((x) & 0xf) << 16) 12163a2a67aaSAlex Deucher # define HDMI0_60958_CS_CHANNEL_NUMBER_7(x) (((x) & 0xf) << 20) 12173a2a67aaSAlex Deucher /* r6xx only; second instance starts at 0x7700 */ 12183a2a67aaSAlex Deucher #define HDMI1_CONTROL 0x7700 12193a2a67aaSAlex Deucher #define HDMI1_STATUS 0x7704 12203a2a67aaSAlex Deucher #define HDMI1_AUDIO_PACKET_CONTROL 0x7708 12213a2a67aaSAlex Deucher /* DCE3; second instance starts at 0x7800 NOT 0x7700 */ 12223a2a67aaSAlex Deucher #define DCE3_HDMI1_CONTROL 0x7800 12233a2a67aaSAlex Deucher #define DCE3_HDMI1_STATUS 0x7804 12243a2a67aaSAlex Deucher #define DCE3_HDMI1_AUDIO_PACKET_CONTROL 0x7808 12253a2a67aaSAlex Deucher /* DCE3.2 (for interrupts) */ 12263a2a67aaSAlex Deucher #define AFMT_STATUS 0x7600 12273a2a67aaSAlex Deucher # define AFMT_AUDIO_ENABLE (1 << 4) 12283a2a67aaSAlex Deucher # define AFMT_AZ_FORMAT_WTRIG (1 << 28) 12293a2a67aaSAlex Deucher # define AFMT_AZ_FORMAT_WTRIG_INT (1 << 29) 12303a2a67aaSAlex Deucher # define AFMT_AZ_AUDIO_ENABLE_CHG (1 << 30) 12313a2a67aaSAlex Deucher #define AFMT_AUDIO_PACKET_CONTROL 0x7604 12323a2a67aaSAlex Deucher # define AFMT_AUDIO_SAMPLE_SEND (1 << 0) 12333a2a67aaSAlex Deucher # define AFMT_AUDIO_TEST_EN (1 << 12) 12343a2a67aaSAlex Deucher # define AFMT_AUDIO_CHANNEL_SWAP (1 << 24) 12353a2a67aaSAlex Deucher # define AFMT_60958_CS_UPDATE (1 << 26) 12363a2a67aaSAlex Deucher # define AFMT_AZ_AUDIO_ENABLE_CHG_MASK (1 << 27) 12373a2a67aaSAlex Deucher # define AFMT_AZ_FORMAT_WTRIG_MASK (1 << 28) 12383a2a67aaSAlex Deucher # define AFMT_AZ_FORMAT_WTRIG_ACK (1 << 29) 12393a2a67aaSAlex Deucher # define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1 << 30) 1240c6543a6eSRafał Miłecki 1241134b480fSAlex Deucher /* DCE3 FMT blocks */ 1242134b480fSAlex Deucher #define FMT_CONTROL 0x6700 1243134b480fSAlex Deucher # define FMT_PIXEL_ENCODING (1 << 16) 1244134b480fSAlex Deucher /* 0 = RGB 4:4:4 or YCbCr 4:4:4, 1 = YCbCr 4:2:2 */ 1245134b480fSAlex Deucher #define FMT_BIT_DEPTH_CONTROL 0x6710 1246134b480fSAlex Deucher # define FMT_TRUNCATE_EN (1 << 0) 1247134b480fSAlex Deucher # define FMT_TRUNCATE_DEPTH (1 << 4) 1248134b480fSAlex Deucher # define FMT_SPATIAL_DITHER_EN (1 << 8) 1249134b480fSAlex Deucher # define FMT_SPATIAL_DITHER_MODE(x) ((x) << 9) 1250134b480fSAlex Deucher # define FMT_SPATIAL_DITHER_DEPTH (1 << 12) 1251134b480fSAlex Deucher # define FMT_FRAME_RANDOM_ENABLE (1 << 13) 1252134b480fSAlex Deucher # define FMT_RGB_RANDOM_ENABLE (1 << 14) 1253134b480fSAlex Deucher # define FMT_HIGHPASS_RANDOM_ENABLE (1 << 15) 1254134b480fSAlex Deucher # define FMT_TEMPORAL_DITHER_EN (1 << 16) 1255134b480fSAlex Deucher # define FMT_TEMPORAL_DITHER_DEPTH (1 << 20) 1256134b480fSAlex Deucher # define FMT_TEMPORAL_DITHER_OFFSET(x) ((x) << 21) 1257134b480fSAlex Deucher # define FMT_TEMPORAL_LEVEL (1 << 24) 1258134b480fSAlex Deucher # define FMT_TEMPORAL_DITHER_RESET (1 << 25) 1259134b480fSAlex Deucher # define FMT_25FRC_SEL(x) ((x) << 26) 1260134b480fSAlex Deucher # define FMT_50FRC_SEL(x) ((x) << 28) 1261134b480fSAlex Deucher # define FMT_75FRC_SEL(x) ((x) << 30) 1262134b480fSAlex Deucher #define FMT_CLAMP_CONTROL 0x672c 1263134b480fSAlex Deucher # define FMT_CLAMP_DATA_EN (1 << 0) 1264134b480fSAlex Deucher # define FMT_CLAMP_COLOR_FORMAT(x) ((x) << 16) 1265134b480fSAlex Deucher # define FMT_CLAMP_6BPC 0 1266134b480fSAlex Deucher # define FMT_CLAMP_8BPC 1 1267134b480fSAlex Deucher # define FMT_CLAMP_10BPC 2 1268134b480fSAlex Deucher 12692e9d4c05SAlex Deucher /* Power management */ 12702e9d4c05SAlex Deucher #define CG_SPLL_FUNC_CNTL 0x600 12712e9d4c05SAlex Deucher # define SPLL_RESET (1 << 0) 12722e9d4c05SAlex Deucher # define SPLL_SLEEP (1 << 1) 12732e9d4c05SAlex Deucher # define SPLL_REF_DIV(x) ((x) << 2) 12742e9d4c05SAlex Deucher # define SPLL_REF_DIV_MASK (7 << 2) 12752e9d4c05SAlex Deucher # define SPLL_FB_DIV(x) ((x) << 5) 12762e9d4c05SAlex Deucher # define SPLL_FB_DIV_MASK (0xff << 5) 12772e9d4c05SAlex Deucher # define SPLL_PULSEEN (1 << 13) 12782e9d4c05SAlex Deucher # define SPLL_PULSENUM(x) ((x) << 14) 12792e9d4c05SAlex Deucher # define SPLL_PULSENUM_MASK (3 << 14) 12802e9d4c05SAlex Deucher # define SPLL_SW_HILEN(x) ((x) << 16) 12812e9d4c05SAlex Deucher # define SPLL_SW_HILEN_MASK (0xf << 16) 12822e9d4c05SAlex Deucher # define SPLL_SW_LOLEN(x) ((x) << 20) 12832e9d4c05SAlex Deucher # define SPLL_SW_LOLEN_MASK (0xf << 20) 12842e9d4c05SAlex Deucher # define SPLL_DIVEN (1 << 24) 12852e9d4c05SAlex Deucher # define SPLL_BYPASS_EN (1 << 25) 12862e9d4c05SAlex Deucher # define SPLL_CHG_STATUS (1 << 29) 12872e9d4c05SAlex Deucher # define SPLL_CTLREQ (1 << 30) 12882e9d4c05SAlex Deucher # define SPLL_CTLACK (1 << 31) 12892e9d4c05SAlex Deucher 12902e9d4c05SAlex Deucher #define GENERAL_PWRMGT 0x618 12912e9d4c05SAlex Deucher # define GLOBAL_PWRMGT_EN (1 << 0) 12922e9d4c05SAlex Deucher # define STATIC_PM_EN (1 << 1) 12932e9d4c05SAlex Deucher # define MOBILE_SU (1 << 2) 12942e9d4c05SAlex Deucher # define THERMAL_PROTECTION_DIS (1 << 3) 12952e9d4c05SAlex Deucher # define THERMAL_PROTECTION_TYPE (1 << 4) 12962e9d4c05SAlex Deucher # define ENABLE_GEN2PCIE (1 << 5) 12972e9d4c05SAlex Deucher # define SW_GPIO_INDEX(x) ((x) << 6) 12982e9d4c05SAlex Deucher # define SW_GPIO_INDEX_MASK (3 << 6) 12992e9d4c05SAlex Deucher # define LOW_VOLT_D2_ACPI (1 << 8) 13002e9d4c05SAlex Deucher # define LOW_VOLT_D3_ACPI (1 << 9) 13012e9d4c05SAlex Deucher # define VOLT_PWRMGT_EN (1 << 10) 13022e9d4c05SAlex Deucher #define CG_TPC 0x61c 13032e9d4c05SAlex Deucher # define TPCC(x) ((x) << 0) 13042e9d4c05SAlex Deucher # define TPCC_MASK (0x7fffff << 0) 13052e9d4c05SAlex Deucher # define TPU(x) ((x) << 23) 13062e9d4c05SAlex Deucher # define TPU_MASK (0x1f << 23) 13072e9d4c05SAlex Deucher #define SCLK_PWRMGT_CNTL 0x620 13082e9d4c05SAlex Deucher # define SCLK_PWRMGT_OFF (1 << 0) 13092e9d4c05SAlex Deucher # define SCLK_TURNOFF (1 << 1) 13102e9d4c05SAlex Deucher # define SPLL_TURNOFF (1 << 2) 13112e9d4c05SAlex Deucher # define SU_SCLK_USE_BCLK (1 << 3) 13122e9d4c05SAlex Deucher # define DYNAMIC_GFX_ISLAND_PWR_DOWN (1 << 4) 13132e9d4c05SAlex Deucher # define DYNAMIC_GFX_ISLAND_PWR_LP (1 << 5) 13142e9d4c05SAlex Deucher # define CLK_TURN_ON_STAGGER (1 << 6) 13152e9d4c05SAlex Deucher # define CLK_TURN_OFF_STAGGER (1 << 7) 13162e9d4c05SAlex Deucher # define FIR_FORCE_TREND_SEL (1 << 8) 13172e9d4c05SAlex Deucher # define FIR_TREND_MODE (1 << 9) 13182e9d4c05SAlex Deucher # define DYN_GFX_CLK_OFF_EN (1 << 10) 13192e9d4c05SAlex Deucher # define VDDC3D_TURNOFF_D1 (1 << 11) 13202e9d4c05SAlex Deucher # define VDDC3D_TURNOFF_D2 (1 << 12) 13212e9d4c05SAlex Deucher # define VDDC3D_TURNOFF_D3 (1 << 13) 13222e9d4c05SAlex Deucher # define SPLL_TURNOFF_D2 (1 << 14) 13232e9d4c05SAlex Deucher # define SCLK_LOW_D1 (1 << 15) 13242e9d4c05SAlex Deucher # define DYN_GFX_CLK_OFF_MC_EN (1 << 16) 13252e9d4c05SAlex Deucher #define MCLK_PWRMGT_CNTL 0x624 13262e9d4c05SAlex Deucher # define MPLL_PWRMGT_OFF (1 << 0) 13272e9d4c05SAlex Deucher # define YCLK_TURNOFF (1 << 1) 13282e9d4c05SAlex Deucher # define MPLL_TURNOFF (1 << 2) 13292e9d4c05SAlex Deucher # define SU_MCLK_USE_BCLK (1 << 3) 13302e9d4c05SAlex Deucher # define DLL_READY (1 << 4) 13312e9d4c05SAlex Deucher # define MC_BUSY (1 << 5) 13322e9d4c05SAlex Deucher # define MC_INT_CNTL (1 << 7) 13332e9d4c05SAlex Deucher # define MRDCKA_SLEEP (1 << 8) 13342e9d4c05SAlex Deucher # define MRDCKB_SLEEP (1 << 9) 13352e9d4c05SAlex Deucher # define MRDCKC_SLEEP (1 << 10) 13362e9d4c05SAlex Deucher # define MRDCKD_SLEEP (1 << 11) 13372e9d4c05SAlex Deucher # define MRDCKE_SLEEP (1 << 12) 13382e9d4c05SAlex Deucher # define MRDCKF_SLEEP (1 << 13) 13392e9d4c05SAlex Deucher # define MRDCKG_SLEEP (1 << 14) 13402e9d4c05SAlex Deucher # define MRDCKH_SLEEP (1 << 15) 13412e9d4c05SAlex Deucher # define MRDCKA_RESET (1 << 16) 13422e9d4c05SAlex Deucher # define MRDCKB_RESET (1 << 17) 13432e9d4c05SAlex Deucher # define MRDCKC_RESET (1 << 18) 13442e9d4c05SAlex Deucher # define MRDCKD_RESET (1 << 19) 13452e9d4c05SAlex Deucher # define MRDCKE_RESET (1 << 20) 13462e9d4c05SAlex Deucher # define MRDCKF_RESET (1 << 21) 13472e9d4c05SAlex Deucher # define MRDCKG_RESET (1 << 22) 13482e9d4c05SAlex Deucher # define MRDCKH_RESET (1 << 23) 13492e9d4c05SAlex Deucher # define DLL_READY_READ (1 << 24) 13502e9d4c05SAlex Deucher # define USE_DISPLAY_GAP (1 << 25) 13512e9d4c05SAlex Deucher # define USE_DISPLAY_URGENT_NORMAL (1 << 26) 13522e9d4c05SAlex Deucher # define USE_DISPLAY_GAP_CTXSW (1 << 27) 13532e9d4c05SAlex Deucher # define MPLL_TURNOFF_D2 (1 << 28) 13542e9d4c05SAlex Deucher # define USE_DISPLAY_URGENT_CTXSW (1 << 29) 13552e9d4c05SAlex Deucher 13562e9d4c05SAlex Deucher #define MPLL_TIME 0x634 13572e9d4c05SAlex Deucher # define MPLL_LOCK_TIME(x) ((x) << 0) 13582e9d4c05SAlex Deucher # define MPLL_LOCK_TIME_MASK (0xffff << 0) 13592e9d4c05SAlex Deucher # define MPLL_RESET_TIME(x) ((x) << 16) 13602e9d4c05SAlex Deucher # define MPLL_RESET_TIME_MASK (0xffff << 16) 13612e9d4c05SAlex Deucher 13622e9d4c05SAlex Deucher #define SCLK_FREQ_SETTING_STEP_0_PART1 0x648 13632e9d4c05SAlex Deucher # define STEP_0_SPLL_POST_DIV(x) ((x) << 0) 13642e9d4c05SAlex Deucher # define STEP_0_SPLL_POST_DIV_MASK (0xff << 0) 13652e9d4c05SAlex Deucher # define STEP_0_SPLL_FB_DIV(x) ((x) << 8) 13662e9d4c05SAlex Deucher # define STEP_0_SPLL_FB_DIV_MASK (0xff << 8) 13672e9d4c05SAlex Deucher # define STEP_0_SPLL_REF_DIV(x) ((x) << 16) 13682e9d4c05SAlex Deucher # define STEP_0_SPLL_REF_DIV_MASK (7 << 16) 13692e9d4c05SAlex Deucher # define STEP_0_SPLL_STEP_TIME(x) ((x) << 19) 13702e9d4c05SAlex Deucher # define STEP_0_SPLL_STEP_TIME_MASK (0x1fff << 19) 13712e9d4c05SAlex Deucher #define SCLK_FREQ_SETTING_STEP_0_PART2 0x64c 13722e9d4c05SAlex Deucher # define STEP_0_PULSE_HIGH_CNT(x) ((x) << 0) 13732e9d4c05SAlex Deucher # define STEP_0_PULSE_HIGH_CNT_MASK (0x1ff << 0) 13742e9d4c05SAlex Deucher # define STEP_0_POST_DIV_EN (1 << 9) 13752e9d4c05SAlex Deucher # define STEP_0_SPLL_STEP_ENABLE (1 << 30) 13762e9d4c05SAlex Deucher # define STEP_0_SPLL_ENTRY_VALID (1 << 31) 13772e9d4c05SAlex Deucher 13782e9d4c05SAlex Deucher #define VID_RT 0x6f8 13792e9d4c05SAlex Deucher # define VID_CRT(x) ((x) << 0) 13802e9d4c05SAlex Deucher # define VID_CRT_MASK (0x1fff << 0) 13812e9d4c05SAlex Deucher # define VID_CRTU(x) ((x) << 13) 13822e9d4c05SAlex Deucher # define VID_CRTU_MASK (7 << 13) 13832e9d4c05SAlex Deucher # define SSTU(x) ((x) << 16) 13842e9d4c05SAlex Deucher # define SSTU_MASK (7 << 16) 13852e9d4c05SAlex Deucher #define CTXSW_PROFILE_INDEX 0x6fc 13862e9d4c05SAlex Deucher # define CTXSW_FREQ_VIDS_CFG_INDEX(x) ((x) << 0) 13872e9d4c05SAlex Deucher # define CTXSW_FREQ_VIDS_CFG_INDEX_MASK (3 << 0) 13882e9d4c05SAlex Deucher # define CTXSW_FREQ_VIDS_CFG_INDEX_SHIFT 0 13892e9d4c05SAlex Deucher # define CTXSW_FREQ_MCLK_CFG_INDEX(x) ((x) << 2) 13902e9d4c05SAlex Deucher # define CTXSW_FREQ_MCLK_CFG_INDEX_MASK (3 << 2) 13912e9d4c05SAlex Deucher # define CTXSW_FREQ_MCLK_CFG_INDEX_SHIFT 2 13922e9d4c05SAlex Deucher # define CTXSW_FREQ_SCLK_CFG_INDEX(x) ((x) << 4) 13932e9d4c05SAlex Deucher # define CTXSW_FREQ_SCLK_CFG_INDEX_MASK (0x1f << 4) 13942e9d4c05SAlex Deucher # define CTXSW_FREQ_SCLK_CFG_INDEX_SHIFT 4 13952e9d4c05SAlex Deucher # define CTXSW_FREQ_STATE_SPLL_RESET_EN (1 << 9) 13962e9d4c05SAlex Deucher # define CTXSW_FREQ_STATE_ENABLE (1 << 10) 13972e9d4c05SAlex Deucher # define CTXSW_FREQ_DISPLAY_WATERMARK (1 << 11) 13982e9d4c05SAlex Deucher # define CTXSW_FREQ_GEN2PCIE_VOLT (1 << 12) 13992e9d4c05SAlex Deucher 14002e9d4c05SAlex Deucher #define TARGET_AND_CURRENT_PROFILE_INDEX 0x70c 14012e9d4c05SAlex Deucher # define TARGET_PROFILE_INDEX_MASK (3 << 0) 14022e9d4c05SAlex Deucher # define TARGET_PROFILE_INDEX_SHIFT 0 14032e9d4c05SAlex Deucher # define CURRENT_PROFILE_INDEX_MASK (3 << 2) 14042e9d4c05SAlex Deucher # define CURRENT_PROFILE_INDEX_SHIFT 2 14052e9d4c05SAlex Deucher # define DYN_PWR_ENTER_INDEX(x) ((x) << 4) 14062e9d4c05SAlex Deucher # define DYN_PWR_ENTER_INDEX_MASK (3 << 4) 14072e9d4c05SAlex Deucher # define DYN_PWR_ENTER_INDEX_SHIFT 4 14082e9d4c05SAlex Deucher # define CURR_MCLK_INDEX_MASK (3 << 6) 14092e9d4c05SAlex Deucher # define CURR_MCLK_INDEX_SHIFT 6 14102e9d4c05SAlex Deucher # define CURR_SCLK_INDEX_MASK (0x1f << 8) 14112e9d4c05SAlex Deucher # define CURR_SCLK_INDEX_SHIFT 8 14122e9d4c05SAlex Deucher # define CURR_VID_INDEX_MASK (3 << 13) 14132e9d4c05SAlex Deucher # define CURR_VID_INDEX_SHIFT 13 14142e9d4c05SAlex Deucher 14152e9d4c05SAlex Deucher #define LOWER_GPIO_ENABLE 0x710 14162e9d4c05SAlex Deucher #define UPPER_GPIO_ENABLE 0x714 14172e9d4c05SAlex Deucher #define CTXSW_VID_LOWER_GPIO_CNTL 0x718 14182e9d4c05SAlex Deucher 14192e9d4c05SAlex Deucher #define VID_UPPER_GPIO_CNTL 0x740 14202e9d4c05SAlex Deucher #define CG_CTX_CGTT3D_R 0x744 14212e9d4c05SAlex Deucher # define PHC(x) ((x) << 0) 14222e9d4c05SAlex Deucher # define PHC_MASK (0x1ff << 0) 14232e9d4c05SAlex Deucher # define SDC(x) ((x) << 9) 14242e9d4c05SAlex Deucher # define SDC_MASK (0x3fff << 9) 14252e9d4c05SAlex Deucher #define CG_VDDC3D_OOR 0x748 14262e9d4c05SAlex Deucher # define SU(x) ((x) << 23) 14272e9d4c05SAlex Deucher # define SU_MASK (0xf << 23) 14282e9d4c05SAlex Deucher #define CG_FTV 0x74c 14292e9d4c05SAlex Deucher #define CG_FFCT_0 0x750 14302e9d4c05SAlex Deucher # define UTC_0(x) ((x) << 0) 14312e9d4c05SAlex Deucher # define UTC_0_MASK (0x3ff << 0) 14322e9d4c05SAlex Deucher # define DTC_0(x) ((x) << 10) 14332e9d4c05SAlex Deucher # define DTC_0_MASK (0x3ff << 10) 14342e9d4c05SAlex Deucher 14352e9d4c05SAlex Deucher #define CG_BSP 0x78c 14362e9d4c05SAlex Deucher # define BSP(x) ((x) << 0) 14372e9d4c05SAlex Deucher # define BSP_MASK (0xffff << 0) 14382e9d4c05SAlex Deucher # define BSU(x) ((x) << 16) 14392e9d4c05SAlex Deucher # define BSU_MASK (0xf << 16) 14402e9d4c05SAlex Deucher #define CG_RT 0x790 14412e9d4c05SAlex Deucher # define FLS(x) ((x) << 0) 14422e9d4c05SAlex Deucher # define FLS_MASK (0xffff << 0) 14432e9d4c05SAlex Deucher # define FMS(x) ((x) << 16) 14442e9d4c05SAlex Deucher # define FMS_MASK (0xffff << 16) 14452e9d4c05SAlex Deucher #define CG_LT 0x794 14462e9d4c05SAlex Deucher # define FHS(x) ((x) << 0) 14472e9d4c05SAlex Deucher # define FHS_MASK (0xffff << 0) 14482e9d4c05SAlex Deucher #define CG_GIT 0x798 14492e9d4c05SAlex Deucher # define CG_GICST(x) ((x) << 0) 14502e9d4c05SAlex Deucher # define CG_GICST_MASK (0xffff << 0) 14512e9d4c05SAlex Deucher # define CG_GIPOT(x) ((x) << 16) 14522e9d4c05SAlex Deucher # define CG_GIPOT_MASK (0xffff << 16) 14532e9d4c05SAlex Deucher 14542e9d4c05SAlex Deucher #define CG_SSP 0x7a8 14552e9d4c05SAlex Deucher # define CG_SST(x) ((x) << 0) 14562e9d4c05SAlex Deucher # define CG_SST_MASK (0xffff << 0) 14572e9d4c05SAlex Deucher # define CG_SSTU(x) ((x) << 16) 14582e9d4c05SAlex Deucher # define CG_SSTU_MASK (0xf << 16) 14592e9d4c05SAlex Deucher 14602e9d4c05SAlex Deucher #define CG_RLC_REQ_AND_RSP 0x7c4 14612e9d4c05SAlex Deucher # define RLC_CG_REQ_TYPE_MASK 0xf 14622e9d4c05SAlex Deucher # define RLC_CG_REQ_TYPE_SHIFT 0 14632e9d4c05SAlex Deucher # define CG_RLC_RSP_TYPE_MASK 0xf0 14642e9d4c05SAlex Deucher # define CG_RLC_RSP_TYPE_SHIFT 4 14652e9d4c05SAlex Deucher 14662e9d4c05SAlex Deucher #define CG_FC_T 0x7cc 14672e9d4c05SAlex Deucher # define FC_T(x) ((x) << 0) 14682e9d4c05SAlex Deucher # define FC_T_MASK (0xffff << 0) 14692e9d4c05SAlex Deucher # define FC_TU(x) ((x) << 16) 14702e9d4c05SAlex Deucher # define FC_TU_MASK (0x1f << 16) 14712e9d4c05SAlex Deucher 14722e9d4c05SAlex Deucher #define GPIOPAD_MASK 0x1798 14732e9d4c05SAlex Deucher #define GPIOPAD_A 0x179c 14742e9d4c05SAlex Deucher #define GPIOPAD_EN 0x17a0 14752e9d4c05SAlex Deucher 14762e9d4c05SAlex Deucher #define GRBM_PWR_CNTL 0x800c 14772e9d4c05SAlex Deucher # define REQ_TYPE_MASK 0xf 14782e9d4c05SAlex Deucher # define REQ_TYPE_SHIFT 0 14792e9d4c05SAlex Deucher # define RSP_TYPE_MASK 0xf0 14802e9d4c05SAlex Deucher # define RSP_TYPE_SHIFT 4 14812e9d4c05SAlex Deucher 14823ce0a23dSJerome Glisse /* 1483f2ba57b5SChristian König * UVD 1484f2ba57b5SChristian König */ 1485f2ba57b5SChristian König #define UVD_SEMA_ADDR_LOW 0xef00 1486f2ba57b5SChristian König #define UVD_SEMA_ADDR_HIGH 0xef04 1487f2ba57b5SChristian König #define UVD_SEMA_CMD 0xef08 1488f2ba57b5SChristian König 1489f2ba57b5SChristian König #define UVD_GPCOM_VCPU_CMD 0xef0c 1490f2ba57b5SChristian König #define UVD_GPCOM_VCPU_DATA0 0xef10 1491f2ba57b5SChristian König #define UVD_GPCOM_VCPU_DATA1 0xef14 1492f2ba57b5SChristian König #define UVD_ENGINE_CNTL 0xef18 1493*4d6bdbadSAlex Deucher #define UVD_NO_OP 0xeffc 1494f2ba57b5SChristian König 1495f2ba57b5SChristian König #define UVD_SEMA_CNTL 0xf400 1496f2ba57b5SChristian König #define UVD_RB_ARB_CTRL 0xf480 1497f2ba57b5SChristian König 1498f2ba57b5SChristian König #define UVD_LMI_EXT40_ADDR 0xf498 1499f2ba57b5SChristian König #define UVD_CGC_GATE 0xf4a8 1500f2ba57b5SChristian König #define UVD_LMI_CTRL2 0xf4f4 1501f2ba57b5SChristian König #define UVD_MASTINT_EN 0xf500 1502856754c3SChristian König #define UVD_FW_START 0xf51C 1503f2ba57b5SChristian König #define UVD_LMI_ADDR_EXT 0xf594 1504f2ba57b5SChristian König #define UVD_LMI_CTRL 0xf598 1505f2ba57b5SChristian König #define UVD_LMI_SWAP_CNTL 0xf5b4 1506f2ba57b5SChristian König #define UVD_MP_SWAP_CNTL 0xf5bC 1507f2ba57b5SChristian König #define UVD_MPC_CNTL 0xf5dC 1508f2ba57b5SChristian König #define UVD_MPC_SET_MUXA0 0xf5e4 1509f2ba57b5SChristian König #define UVD_MPC_SET_MUXA1 0xf5e8 1510f2ba57b5SChristian König #define UVD_MPC_SET_MUXB0 0xf5eC 1511f2ba57b5SChristian König #define UVD_MPC_SET_MUXB1 0xf5f0 1512f2ba57b5SChristian König #define UVD_MPC_SET_MUX 0xf5f4 1513f2ba57b5SChristian König #define UVD_MPC_SET_ALU 0xf5f8 1514f2ba57b5SChristian König 1515856754c3SChristian König #define UVD_VCPU_CACHE_OFFSET0 0xf608 1516856754c3SChristian König #define UVD_VCPU_CACHE_SIZE0 0xf60c 1517856754c3SChristian König #define UVD_VCPU_CACHE_OFFSET1 0xf610 1518856754c3SChristian König #define UVD_VCPU_CACHE_SIZE1 0xf614 1519856754c3SChristian König #define UVD_VCPU_CACHE_OFFSET2 0xf618 1520856754c3SChristian König #define UVD_VCPU_CACHE_SIZE2 0xf61c 1521856754c3SChristian König 1522f2ba57b5SChristian König #define UVD_VCPU_CNTL 0xf660 1523f2ba57b5SChristian König #define UVD_SOFT_RESET 0xf680 1524f2ba57b5SChristian König #define RBC_SOFT_RESET (1<<0) 1525f2ba57b5SChristian König #define LBSI_SOFT_RESET (1<<1) 1526f2ba57b5SChristian König #define LMI_SOFT_RESET (1<<2) 1527f2ba57b5SChristian König #define VCPU_SOFT_RESET (1<<3) 1528f2ba57b5SChristian König #define CSM_SOFT_RESET (1<<5) 1529f2ba57b5SChristian König #define CXW_SOFT_RESET (1<<6) 1530f2ba57b5SChristian König #define TAP_SOFT_RESET (1<<7) 1531f2ba57b5SChristian König #define LMI_UMC_SOFT_RESET (1<<13) 1532f2ba57b5SChristian König #define UVD_RBC_IB_BASE 0xf684 1533f2ba57b5SChristian König #define UVD_RBC_IB_SIZE 0xf688 1534f2ba57b5SChristian König #define UVD_RBC_RB_BASE 0xf68c 1535f2ba57b5SChristian König #define UVD_RBC_RB_RPTR 0xf690 1536f2ba57b5SChristian König #define UVD_RBC_RB_WPTR 0xf694 1537f2ba57b5SChristian König #define UVD_RBC_RB_WPTR_CNTL 0xf698 1538f2ba57b5SChristian König 1539f2ba57b5SChristian König #define UVD_STATUS 0xf6bc 1540f2ba57b5SChristian König 1541f2ba57b5SChristian König #define UVD_SEMA_TIMEOUT_STATUS 0xf6c0 1542f2ba57b5SChristian König #define UVD_SEMA_WAIT_INCOMPLETE_TIMEOUT_CNTL 0xf6c4 1543f2ba57b5SChristian König #define UVD_SEMA_WAIT_FAULT_TIMEOUT_CNTL 0xf6c8 1544f2ba57b5SChristian König #define UVD_SEMA_SIGNAL_INCOMPLETE_TIMEOUT_CNTL 0xf6cc 1545f2ba57b5SChristian König 1546f2ba57b5SChristian König #define UVD_RBC_RB_CNTL 0xf6a4 1547f2ba57b5SChristian König #define UVD_RBC_RB_RPTR_ADDR 0xf6a8 1548f2ba57b5SChristian König 1549f2ba57b5SChristian König #define UVD_CONTEXT_ID 0xf6f4 1550f2ba57b5SChristian König 15514a956a70SAlex Deucher /* rs780 only */ 15524a956a70SAlex Deucher #define GFX_MACRO_BYPASS_CNTL 0x30c0 15534a956a70SAlex Deucher #define SPLL_BYPASS_CNTL (1 << 0) 15544a956a70SAlex Deucher #define UPLL_BYPASS_CNTL (1 << 1) 15554a956a70SAlex Deucher 15564a956a70SAlex Deucher #define CG_UPLL_FUNC_CNTL 0x7e0 15574a956a70SAlex Deucher # define UPLL_RESET_MASK 0x00000001 15584a956a70SAlex Deucher # define UPLL_SLEEP_MASK 0x00000002 15594a956a70SAlex Deucher # define UPLL_BYPASS_EN_MASK 0x00000004 1560facd112dSChristian König # define UPLL_CTLREQ_MASK 0x00000008 15614a956a70SAlex Deucher # define UPLL_FB_DIV(x) ((x) << 4) 15624a956a70SAlex Deucher # define UPLL_FB_DIV_MASK 0x0000FFF0 15634a956a70SAlex Deucher # define UPLL_REF_DIV(x) ((x) << 16) 15644a956a70SAlex Deucher # define UPLL_REF_DIV_MASK 0x003F0000 15654a956a70SAlex Deucher # define UPLL_REFCLK_SRC_SEL_MASK 0x20000000 1566facd112dSChristian König # define UPLL_CTLACK_MASK 0x40000000 1567facd112dSChristian König # define UPLL_CTLACK2_MASK 0x80000000 15684a956a70SAlex Deucher #define CG_UPLL_FUNC_CNTL_2 0x7e4 15694a956a70SAlex Deucher # define UPLL_SW_HILEN(x) ((x) << 0) 15704a956a70SAlex Deucher # define UPLL_SW_LOLEN(x) ((x) << 4) 15714a956a70SAlex Deucher # define UPLL_SW_HILEN2(x) ((x) << 8) 15724a956a70SAlex Deucher # define UPLL_SW_LOLEN2(x) ((x) << 12) 15734a956a70SAlex Deucher # define UPLL_DIVEN_MASK 0x00010000 15744a956a70SAlex Deucher # define UPLL_DIVEN2_MASK 0x00020000 15754a956a70SAlex Deucher # define UPLL_SW_MASK 0x0003FFFF 15764a956a70SAlex Deucher # define VCLK_SRC_SEL(x) ((x) << 20) 15774a956a70SAlex Deucher # define VCLK_SRC_SEL_MASK 0x01F00000 15784a956a70SAlex Deucher # define DCLK_SRC_SEL(x) ((x) << 25) 15794a956a70SAlex Deucher # define DCLK_SRC_SEL_MASK 0x3E000000 1580facd112dSChristian König 1581f2ba57b5SChristian König /* 15823ce0a23dSJerome Glisse * PM4 15833ce0a23dSJerome Glisse */ 15844e872ae2SIlija Hadzic #define PACKET0(reg, n) ((RADEON_PACKET_TYPE0 << 30) | \ 15853ce0a23dSJerome Glisse (((reg) >> 2) & 0xFFFF) | \ 15863ce0a23dSJerome Glisse ((n) & 0x3FFF) << 16) 15874e872ae2SIlija Hadzic #define PACKET3(op, n) ((RADEON_PACKET_TYPE3 << 30) | \ 15883ce0a23dSJerome Glisse (((op) & 0xFF) << 8) | \ 15893ce0a23dSJerome Glisse ((n) & 0x3FFF) << 16) 15903ce0a23dSJerome Glisse 15913ce0a23dSJerome Glisse /* Packet 3 types */ 15923ce0a23dSJerome Glisse #define PACKET3_NOP 0x10 15933ce0a23dSJerome Glisse #define PACKET3_INDIRECT_BUFFER_END 0x17 15943ce0a23dSJerome Glisse #define PACKET3_SET_PREDICATION 0x20 15953ce0a23dSJerome Glisse #define PACKET3_REG_RMW 0x21 15963ce0a23dSJerome Glisse #define PACKET3_COND_EXEC 0x22 15973ce0a23dSJerome Glisse #define PACKET3_PRED_EXEC 0x23 15983ce0a23dSJerome Glisse #define PACKET3_START_3D_CMDBUF 0x24 15993ce0a23dSJerome Glisse #define PACKET3_DRAW_INDEX_2 0x27 16003ce0a23dSJerome Glisse #define PACKET3_CONTEXT_CONTROL 0x28 16013ce0a23dSJerome Glisse #define PACKET3_DRAW_INDEX_IMMD_BE 0x29 16023ce0a23dSJerome Glisse #define PACKET3_INDEX_TYPE 0x2A 16033ce0a23dSJerome Glisse #define PACKET3_DRAW_INDEX 0x2B 16043ce0a23dSJerome Glisse #define PACKET3_DRAW_INDEX_AUTO 0x2D 16053ce0a23dSJerome Glisse #define PACKET3_DRAW_INDEX_IMMD 0x2E 16063ce0a23dSJerome Glisse #define PACKET3_NUM_INSTANCES 0x2F 16073ce0a23dSJerome Glisse #define PACKET3_STRMOUT_BUFFER_UPDATE 0x34 16083ce0a23dSJerome Glisse #define PACKET3_INDIRECT_BUFFER_MP 0x38 16093ce0a23dSJerome Glisse #define PACKET3_MEM_SEMAPHORE 0x39 16100be70439SChristian König # define PACKET3_SEM_WAIT_ON_SIGNAL (0x1 << 12) 161115d3332fSChristian König # define PACKET3_SEM_SEL_SIGNAL (0x6 << 29) 161215d3332fSChristian König # define PACKET3_SEM_SEL_WAIT (0x7 << 29) 16133ce0a23dSJerome Glisse #define PACKET3_MPEG_INDEX 0x3A 1614dd220a00SMarek Olšák #define PACKET3_COPY_DW 0x3B 16153ce0a23dSJerome Glisse #define PACKET3_WAIT_REG_MEM 0x3C 16163ce0a23dSJerome Glisse #define PACKET3_MEM_WRITE 0x3D 16173ce0a23dSJerome Glisse #define PACKET3_INDIRECT_BUFFER 0x32 1618b997a8baSAlex Deucher #define PACKET3_CP_DMA 0x41 1619b997a8baSAlex Deucher /* 1. header 1620b997a8baSAlex Deucher * 2. SRC_ADDR_LO [31:0] 1621b997a8baSAlex Deucher * 3. CP_SYNC [31] | SRC_ADDR_HI [7:0] 1622b997a8baSAlex Deucher * 4. DST_ADDR_LO [31:0] 1623b997a8baSAlex Deucher * 5. DST_ADDR_HI [7:0] 1624b997a8baSAlex Deucher * 6. COMMAND [29:22] | BYTE_COUNT [20:0] 1625b997a8baSAlex Deucher */ 1626b997a8baSAlex Deucher # define PACKET3_CP_DMA_CP_SYNC (1 << 31) 1627b997a8baSAlex Deucher /* COMMAND */ 1628aa3e146dSAlex Deucher # define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22) 1629b997a8baSAlex Deucher /* 0 - none 1630b997a8baSAlex Deucher * 1 - 8 in 16 1631b997a8baSAlex Deucher * 2 - 8 in 32 1632b997a8baSAlex Deucher * 3 - 8 in 64 1633b997a8baSAlex Deucher */ 1634b997a8baSAlex Deucher # define PACKET3_CP_DMA_CMD_DST_SWAP(x) ((x) << 24) 1635b997a8baSAlex Deucher /* 0 - none 1636b997a8baSAlex Deucher * 1 - 8 in 16 1637b997a8baSAlex Deucher * 2 - 8 in 32 1638b997a8baSAlex Deucher * 3 - 8 in 64 1639b997a8baSAlex Deucher */ 1640b997a8baSAlex Deucher # define PACKET3_CP_DMA_CMD_SAS (1 << 26) 1641b997a8baSAlex Deucher /* 0 - memory 1642b997a8baSAlex Deucher * 1 - register 1643b997a8baSAlex Deucher */ 1644b997a8baSAlex Deucher # define PACKET3_CP_DMA_CMD_DAS (1 << 27) 1645b997a8baSAlex Deucher /* 0 - memory 1646b997a8baSAlex Deucher * 1 - register 1647b997a8baSAlex Deucher */ 1648b997a8baSAlex Deucher # define PACKET3_CP_DMA_CMD_SAIC (1 << 28) 1649b997a8baSAlex Deucher # define PACKET3_CP_DMA_CMD_DAIC (1 << 29) 165086302eeaSChristian König #define PACKET3_PFP_SYNC_ME 0x42 /* r7xx+ only */ 16513ce0a23dSJerome Glisse #define PACKET3_SURFACE_SYNC 0x43 16523ce0a23dSJerome Glisse # define PACKET3_CB0_DEST_BASE_ENA (1 << 6) 1653d45b964aSAlex Deucher # define PACKET3_FULL_CACHE_ENA (1 << 20) /* r7xx+ only */ 16543ce0a23dSJerome Glisse # define PACKET3_TC_ACTION_ENA (1 << 23) 16553ce0a23dSJerome Glisse # define PACKET3_VC_ACTION_ENA (1 << 24) 16563ce0a23dSJerome Glisse # define PACKET3_CB_ACTION_ENA (1 << 25) 16573ce0a23dSJerome Glisse # define PACKET3_DB_ACTION_ENA (1 << 26) 16583ce0a23dSJerome Glisse # define PACKET3_SH_ACTION_ENA (1 << 27) 16593ce0a23dSJerome Glisse # define PACKET3_SMX_ACTION_ENA (1 << 28) 16603ce0a23dSJerome Glisse #define PACKET3_ME_INITIALIZE 0x44 16613ce0a23dSJerome Glisse #define PACKET3_ME_INITIALIZE_DEVICE_ID(x) ((x) << 16) 16623ce0a23dSJerome Glisse #define PACKET3_COND_WRITE 0x45 16633ce0a23dSJerome Glisse #define PACKET3_EVENT_WRITE 0x46 1664d0f8a854SAlex Deucher #define EVENT_TYPE(x) ((x) << 0) 1665d0f8a854SAlex Deucher #define EVENT_INDEX(x) ((x) << 8) 1666d0f8a854SAlex Deucher /* 0 - any non-TS event 1667d0f8a854SAlex Deucher * 1 - ZPASS_DONE 1668d0f8a854SAlex Deucher * 2 - SAMPLE_PIPELINESTAT 1669d0f8a854SAlex Deucher * 3 - SAMPLE_STREAMOUTSTAT* 1670d0f8a854SAlex Deucher * 4 - *S_PARTIAL_FLUSH 1671d0f8a854SAlex Deucher * 5 - TS events 1672d0f8a854SAlex Deucher */ 16733ce0a23dSJerome Glisse #define PACKET3_EVENT_WRITE_EOP 0x47 1674d0f8a854SAlex Deucher #define DATA_SEL(x) ((x) << 29) 1675d0f8a854SAlex Deucher /* 0 - discard 1676d0f8a854SAlex Deucher * 1 - send low 32bit data 1677d0f8a854SAlex Deucher * 2 - send 64bit data 1678d0f8a854SAlex Deucher * 3 - send 64bit counter value 1679d0f8a854SAlex Deucher */ 1680d0f8a854SAlex Deucher #define INT_SEL(x) ((x) << 24) 1681d0f8a854SAlex Deucher /* 0 - none 1682d0f8a854SAlex Deucher * 1 - interrupt only (DATA_SEL = 0) 1683d0f8a854SAlex Deucher * 2 - interrupt when data write is confirmed 1684d0f8a854SAlex Deucher */ 16853ce0a23dSJerome Glisse #define PACKET3_ONE_REG_WRITE 0x57 16863ce0a23dSJerome Glisse #define PACKET3_SET_CONFIG_REG 0x68 16873ce0a23dSJerome Glisse #define PACKET3_SET_CONFIG_REG_OFFSET 0x00008000 16883ce0a23dSJerome Glisse #define PACKET3_SET_CONFIG_REG_END 0x0000ac00 16893ce0a23dSJerome Glisse #define PACKET3_SET_CONTEXT_REG 0x69 16903ce0a23dSJerome Glisse #define PACKET3_SET_CONTEXT_REG_OFFSET 0x00028000 16913ce0a23dSJerome Glisse #define PACKET3_SET_CONTEXT_REG_END 0x00029000 16923ce0a23dSJerome Glisse #define PACKET3_SET_ALU_CONST 0x6A 16933ce0a23dSJerome Glisse #define PACKET3_SET_ALU_CONST_OFFSET 0x00030000 16943ce0a23dSJerome Glisse #define PACKET3_SET_ALU_CONST_END 0x00032000 16953ce0a23dSJerome Glisse #define PACKET3_SET_BOOL_CONST 0x6B 16963ce0a23dSJerome Glisse #define PACKET3_SET_BOOL_CONST_OFFSET 0x0003e380 16973ce0a23dSJerome Glisse #define PACKET3_SET_BOOL_CONST_END 0x00040000 16983ce0a23dSJerome Glisse #define PACKET3_SET_LOOP_CONST 0x6C 16993ce0a23dSJerome Glisse #define PACKET3_SET_LOOP_CONST_OFFSET 0x0003e200 17003ce0a23dSJerome Glisse #define PACKET3_SET_LOOP_CONST_END 0x0003e380 17013ce0a23dSJerome Glisse #define PACKET3_SET_RESOURCE 0x6D 17023ce0a23dSJerome Glisse #define PACKET3_SET_RESOURCE_OFFSET 0x00038000 17033ce0a23dSJerome Glisse #define PACKET3_SET_RESOURCE_END 0x0003c000 17043ce0a23dSJerome Glisse #define PACKET3_SET_SAMPLER 0x6E 17053ce0a23dSJerome Glisse #define PACKET3_SET_SAMPLER_OFFSET 0x0003c000 17063ce0a23dSJerome Glisse #define PACKET3_SET_SAMPLER_END 0x0003cff0 17073ce0a23dSJerome Glisse #define PACKET3_SET_CTL_CONST 0x6F 17083ce0a23dSJerome Glisse #define PACKET3_SET_CTL_CONST_OFFSET 0x0003cff0 17093ce0a23dSJerome Glisse #define PACKET3_SET_CTL_CONST_END 0x0003e200 17107c77bf2aSAlex Deucher #define PACKET3_STRMOUT_BASE_UPDATE 0x72 /* r7xx */ 17113ce0a23dSJerome Glisse #define PACKET3_SURFACE_BASE_UPDATE 0x73 17123ce0a23dSJerome Glisse 171365337e60SSamuel Li #define R_000011_K8_FB_LOCATION 0x11 171465337e60SSamuel Li #define R_000012_MC_MISC_UMA_CNTL 0x12 171565337e60SSamuel Li #define G_000012_K8_ADDR_EXT(x) (((x) >> 0) & 0xFF) 171665337e60SSamuel Li #define R_0028F8_MC_INDEX 0x28F8 171765337e60SSamuel Li #define S_0028F8_MC_IND_ADDR(x) (((x) & 0x1FF) << 0) 171865337e60SSamuel Li #define C_0028F8_MC_IND_ADDR 0xFFFFFE00 171965337e60SSamuel Li #define S_0028F8_MC_IND_WR_EN(x) (((x) & 0x1) << 9) 172065337e60SSamuel Li #define R_0028FC_MC_DATA 0x28FC 17213ce0a23dSJerome Glisse 17223ce0a23dSJerome Glisse #define R_008020_GRBM_SOFT_RESET 0x8020 17233ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_CP(x) (((x) & 1) << 0) 17243ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_CB(x) (((x) & 1) << 1) 17253ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_CR(x) (((x) & 1) << 2) 17263ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_DB(x) (((x) & 1) << 3) 17273ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_PA(x) (((x) & 1) << 5) 17283ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_SC(x) (((x) & 1) << 6) 17293ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_SMX(x) (((x) & 1) << 7) 17303ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_SPI(x) (((x) & 1) << 8) 17313ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_SH(x) (((x) & 1) << 9) 17323ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_SX(x) (((x) & 1) << 10) 17333ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_TC(x) (((x) & 1) << 11) 17343ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_TA(x) (((x) & 1) << 12) 17353ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_VC(x) (((x) & 1) << 13) 17363ce0a23dSJerome Glisse #define S_008020_SOFT_RESET_VGT(x) (((x) & 1) << 14) 17373ce0a23dSJerome Glisse #define R_008010_GRBM_STATUS 0x8010 17383ce0a23dSJerome Glisse #define S_008010_CMDFIFO_AVAIL(x) (((x) & 0x1F) << 0) 17393ce0a23dSJerome Glisse #define S_008010_CP_RQ_PENDING(x) (((x) & 1) << 6) 17403ce0a23dSJerome Glisse #define S_008010_CF_RQ_PENDING(x) (((x) & 1) << 7) 17413ce0a23dSJerome Glisse #define S_008010_PF_RQ_PENDING(x) (((x) & 1) << 8) 17423ce0a23dSJerome Glisse #define S_008010_GRBM_EE_BUSY(x) (((x) & 1) << 10) 17433ce0a23dSJerome Glisse #define S_008010_VC_BUSY(x) (((x) & 1) << 11) 17443ce0a23dSJerome Glisse #define S_008010_DB03_CLEAN(x) (((x) & 1) << 12) 17453ce0a23dSJerome Glisse #define S_008010_CB03_CLEAN(x) (((x) & 1) << 13) 17463ce0a23dSJerome Glisse #define S_008010_VGT_BUSY_NO_DMA(x) (((x) & 1) << 16) 17473ce0a23dSJerome Glisse #define S_008010_VGT_BUSY(x) (((x) & 1) << 17) 17483ce0a23dSJerome Glisse #define S_008010_TA03_BUSY(x) (((x) & 1) << 18) 17493ce0a23dSJerome Glisse #define S_008010_TC_BUSY(x) (((x) & 1) << 19) 17503ce0a23dSJerome Glisse #define S_008010_SX_BUSY(x) (((x) & 1) << 20) 17513ce0a23dSJerome Glisse #define S_008010_SH_BUSY(x) (((x) & 1) << 21) 17523ce0a23dSJerome Glisse #define S_008010_SPI03_BUSY(x) (((x) & 1) << 22) 17533ce0a23dSJerome Glisse #define S_008010_SMX_BUSY(x) (((x) & 1) << 23) 17543ce0a23dSJerome Glisse #define S_008010_SC_BUSY(x) (((x) & 1) << 24) 17553ce0a23dSJerome Glisse #define S_008010_PA_BUSY(x) (((x) & 1) << 25) 17563ce0a23dSJerome Glisse #define S_008010_DB03_BUSY(x) (((x) & 1) << 26) 17573ce0a23dSJerome Glisse #define S_008010_CR_BUSY(x) (((x) & 1) << 27) 17583ce0a23dSJerome Glisse #define S_008010_CP_COHERENCY_BUSY(x) (((x) & 1) << 28) 17593ce0a23dSJerome Glisse #define S_008010_CP_BUSY(x) (((x) & 1) << 29) 17603ce0a23dSJerome Glisse #define S_008010_CB03_BUSY(x) (((x) & 1) << 30) 17613ce0a23dSJerome Glisse #define S_008010_GUI_ACTIVE(x) (((x) & 1) << 31) 17623ce0a23dSJerome Glisse #define G_008010_CMDFIFO_AVAIL(x) (((x) >> 0) & 0x1F) 17633ce0a23dSJerome Glisse #define G_008010_CP_RQ_PENDING(x) (((x) >> 6) & 1) 17643ce0a23dSJerome Glisse #define G_008010_CF_RQ_PENDING(x) (((x) >> 7) & 1) 17653ce0a23dSJerome Glisse #define G_008010_PF_RQ_PENDING(x) (((x) >> 8) & 1) 17663ce0a23dSJerome Glisse #define G_008010_GRBM_EE_BUSY(x) (((x) >> 10) & 1) 17673ce0a23dSJerome Glisse #define G_008010_VC_BUSY(x) (((x) >> 11) & 1) 17683ce0a23dSJerome Glisse #define G_008010_DB03_CLEAN(x) (((x) >> 12) & 1) 17693ce0a23dSJerome Glisse #define G_008010_CB03_CLEAN(x) (((x) >> 13) & 1) 1770f13f7731SAlex Deucher #define G_008010_TA_BUSY(x) (((x) >> 14) & 1) 17713ce0a23dSJerome Glisse #define G_008010_VGT_BUSY_NO_DMA(x) (((x) >> 16) & 1) 17723ce0a23dSJerome Glisse #define G_008010_VGT_BUSY(x) (((x) >> 17) & 1) 17733ce0a23dSJerome Glisse #define G_008010_TA03_BUSY(x) (((x) >> 18) & 1) 17743ce0a23dSJerome Glisse #define G_008010_TC_BUSY(x) (((x) >> 19) & 1) 17753ce0a23dSJerome Glisse #define G_008010_SX_BUSY(x) (((x) >> 20) & 1) 17763ce0a23dSJerome Glisse #define G_008010_SH_BUSY(x) (((x) >> 21) & 1) 17773ce0a23dSJerome Glisse #define G_008010_SPI03_BUSY(x) (((x) >> 22) & 1) 17783ce0a23dSJerome Glisse #define G_008010_SMX_BUSY(x) (((x) >> 23) & 1) 17793ce0a23dSJerome Glisse #define G_008010_SC_BUSY(x) (((x) >> 24) & 1) 17803ce0a23dSJerome Glisse #define G_008010_PA_BUSY(x) (((x) >> 25) & 1) 17813ce0a23dSJerome Glisse #define G_008010_DB03_BUSY(x) (((x) >> 26) & 1) 17823ce0a23dSJerome Glisse #define G_008010_CR_BUSY(x) (((x) >> 27) & 1) 17833ce0a23dSJerome Glisse #define G_008010_CP_COHERENCY_BUSY(x) (((x) >> 28) & 1) 17843ce0a23dSJerome Glisse #define G_008010_CP_BUSY(x) (((x) >> 29) & 1) 17853ce0a23dSJerome Glisse #define G_008010_CB03_BUSY(x) (((x) >> 30) & 1) 17863ce0a23dSJerome Glisse #define G_008010_GUI_ACTIVE(x) (((x) >> 31) & 1) 17873ce0a23dSJerome Glisse #define R_008014_GRBM_STATUS2 0x8014 17883ce0a23dSJerome Glisse #define S_008014_CR_CLEAN(x) (((x) & 1) << 0) 17893ce0a23dSJerome Glisse #define S_008014_SMX_CLEAN(x) (((x) & 1) << 1) 17903ce0a23dSJerome Glisse #define S_008014_SPI0_BUSY(x) (((x) & 1) << 8) 17913ce0a23dSJerome Glisse #define S_008014_SPI1_BUSY(x) (((x) & 1) << 9) 17923ce0a23dSJerome Glisse #define S_008014_SPI2_BUSY(x) (((x) & 1) << 10) 17933ce0a23dSJerome Glisse #define S_008014_SPI3_BUSY(x) (((x) & 1) << 11) 17943ce0a23dSJerome Glisse #define S_008014_TA0_BUSY(x) (((x) & 1) << 12) 17953ce0a23dSJerome Glisse #define S_008014_TA1_BUSY(x) (((x) & 1) << 13) 17963ce0a23dSJerome Glisse #define S_008014_TA2_BUSY(x) (((x) & 1) << 14) 17973ce0a23dSJerome Glisse #define S_008014_TA3_BUSY(x) (((x) & 1) << 15) 17983ce0a23dSJerome Glisse #define S_008014_DB0_BUSY(x) (((x) & 1) << 16) 17993ce0a23dSJerome Glisse #define S_008014_DB1_BUSY(x) (((x) & 1) << 17) 18003ce0a23dSJerome Glisse #define S_008014_DB2_BUSY(x) (((x) & 1) << 18) 18013ce0a23dSJerome Glisse #define S_008014_DB3_BUSY(x) (((x) & 1) << 19) 18023ce0a23dSJerome Glisse #define S_008014_CB0_BUSY(x) (((x) & 1) << 20) 18033ce0a23dSJerome Glisse #define S_008014_CB1_BUSY(x) (((x) & 1) << 21) 18043ce0a23dSJerome Glisse #define S_008014_CB2_BUSY(x) (((x) & 1) << 22) 18053ce0a23dSJerome Glisse #define S_008014_CB3_BUSY(x) (((x) & 1) << 23) 18063ce0a23dSJerome Glisse #define G_008014_CR_CLEAN(x) (((x) >> 0) & 1) 18073ce0a23dSJerome Glisse #define G_008014_SMX_CLEAN(x) (((x) >> 1) & 1) 18083ce0a23dSJerome Glisse #define G_008014_SPI0_BUSY(x) (((x) >> 8) & 1) 18093ce0a23dSJerome Glisse #define G_008014_SPI1_BUSY(x) (((x) >> 9) & 1) 18103ce0a23dSJerome Glisse #define G_008014_SPI2_BUSY(x) (((x) >> 10) & 1) 18113ce0a23dSJerome Glisse #define G_008014_SPI3_BUSY(x) (((x) >> 11) & 1) 18123ce0a23dSJerome Glisse #define G_008014_TA0_BUSY(x) (((x) >> 12) & 1) 18133ce0a23dSJerome Glisse #define G_008014_TA1_BUSY(x) (((x) >> 13) & 1) 18143ce0a23dSJerome Glisse #define G_008014_TA2_BUSY(x) (((x) >> 14) & 1) 18153ce0a23dSJerome Glisse #define G_008014_TA3_BUSY(x) (((x) >> 15) & 1) 18163ce0a23dSJerome Glisse #define G_008014_DB0_BUSY(x) (((x) >> 16) & 1) 18173ce0a23dSJerome Glisse #define G_008014_DB1_BUSY(x) (((x) >> 17) & 1) 18183ce0a23dSJerome Glisse #define G_008014_DB2_BUSY(x) (((x) >> 18) & 1) 18193ce0a23dSJerome Glisse #define G_008014_DB3_BUSY(x) (((x) >> 19) & 1) 18203ce0a23dSJerome Glisse #define G_008014_CB0_BUSY(x) (((x) >> 20) & 1) 18213ce0a23dSJerome Glisse #define G_008014_CB1_BUSY(x) (((x) >> 21) & 1) 18223ce0a23dSJerome Glisse #define G_008014_CB2_BUSY(x) (((x) >> 22) & 1) 18233ce0a23dSJerome Glisse #define G_008014_CB3_BUSY(x) (((x) >> 23) & 1) 18243ce0a23dSJerome Glisse #define R_000E50_SRBM_STATUS 0x0E50 18253ce0a23dSJerome Glisse #define G_000E50_RLC_RQ_PENDING(x) (((x) >> 3) & 1) 18263ce0a23dSJerome Glisse #define G_000E50_RCU_RQ_PENDING(x) (((x) >> 4) & 1) 18273ce0a23dSJerome Glisse #define G_000E50_GRBM_RQ_PENDING(x) (((x) >> 5) & 1) 18283ce0a23dSJerome Glisse #define G_000E50_HI_RQ_PENDING(x) (((x) >> 6) & 1) 18293ce0a23dSJerome Glisse #define G_000E50_IO_EXTERN_SIGNAL(x) (((x) >> 7) & 1) 18303ce0a23dSJerome Glisse #define G_000E50_VMC_BUSY(x) (((x) >> 8) & 1) 18313ce0a23dSJerome Glisse #define G_000E50_MCB_BUSY(x) (((x) >> 9) & 1) 18323ce0a23dSJerome Glisse #define G_000E50_MCDZ_BUSY(x) (((x) >> 10) & 1) 18333ce0a23dSJerome Glisse #define G_000E50_MCDY_BUSY(x) (((x) >> 11) & 1) 18343ce0a23dSJerome Glisse #define G_000E50_MCDX_BUSY(x) (((x) >> 12) & 1) 18353ce0a23dSJerome Glisse #define G_000E50_MCDW_BUSY(x) (((x) >> 13) & 1) 18363ce0a23dSJerome Glisse #define G_000E50_SEM_BUSY(x) (((x) >> 14) & 1) 18373ce0a23dSJerome Glisse #define G_000E50_RLC_BUSY(x) (((x) >> 15) & 1) 1838f13f7731SAlex Deucher #define G_000E50_IH_BUSY(x) (((x) >> 17) & 1) 18391a029b76SJerome Glisse #define G_000E50_BIF_BUSY(x) (((x) >> 29) & 1) 18403ce0a23dSJerome Glisse #define R_000E60_SRBM_SOFT_RESET 0x0E60 18413ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_BIF(x) (((x) & 1) << 1) 18423ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_CG(x) (((x) & 1) << 2) 18433ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_CMC(x) (((x) & 1) << 3) 18443ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_CSC(x) (((x) & 1) << 4) 18453ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_DC(x) (((x) & 1) << 5) 18463ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_GRBM(x) (((x) & 1) << 8) 18473ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_HDP(x) (((x) & 1) << 9) 18483ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_IH(x) (((x) & 1) << 10) 18493ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_MC(x) (((x) & 1) << 11) 18503ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_RLC(x) (((x) & 1) << 13) 18513ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_ROM(x) (((x) & 1) << 14) 18523ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_SEM(x) (((x) & 1) << 15) 18533ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_TSC(x) (((x) & 1) << 16) 18543ce0a23dSJerome Glisse #define S_000E60_SOFT_RESET_VMC(x) (((x) & 1) << 17) 18553ce0a23dSJerome Glisse 185623956dfaSDave Airlie #define R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL 0x5480 1857c8c15ff1SJerome Glisse 1858961fb597SJerome Glisse #define R_028C04_PA_SC_AA_CONFIG 0x028C04 1859961fb597SJerome Glisse #define S_028C04_MSAA_NUM_SAMPLES(x) (((x) & 0x3) << 0) 1860961fb597SJerome Glisse #define G_028C04_MSAA_NUM_SAMPLES(x) (((x) >> 0) & 0x3) 1861961fb597SJerome Glisse #define C_028C04_MSAA_NUM_SAMPLES 0xFFFFFFFC 1862961fb597SJerome Glisse #define S_028C04_AA_MASK_CENTROID_DTMN(x) (((x) & 0x1) << 4) 1863961fb597SJerome Glisse #define G_028C04_AA_MASK_CENTROID_DTMN(x) (((x) >> 4) & 0x1) 1864961fb597SJerome Glisse #define C_028C04_AA_MASK_CENTROID_DTMN 0xFFFFFFEF 1865961fb597SJerome Glisse #define S_028C04_MAX_SAMPLE_DIST(x) (((x) & 0xF) << 13) 1866961fb597SJerome Glisse #define G_028C04_MAX_SAMPLE_DIST(x) (((x) >> 13) & 0xF) 1867961fb597SJerome Glisse #define C_028C04_MAX_SAMPLE_DIST 0xFFFE1FFF 1868c8c15ff1SJerome Glisse #define R_0280E0_CB_COLOR0_FRAG 0x0280E0 1869c8c15ff1SJerome Glisse #define S_0280E0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0) 1870c8c15ff1SJerome Glisse #define G_0280E0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF) 1871c8c15ff1SJerome Glisse #define C_0280E0_BASE_256B 0x00000000 1872c8c15ff1SJerome Glisse #define R_0280E4_CB_COLOR1_FRAG 0x0280E4 1873c8c15ff1SJerome Glisse #define R_0280E8_CB_COLOR2_FRAG 0x0280E8 1874c8c15ff1SJerome Glisse #define R_0280EC_CB_COLOR3_FRAG 0x0280EC 1875c8c15ff1SJerome Glisse #define R_0280F0_CB_COLOR4_FRAG 0x0280F0 1876c8c15ff1SJerome Glisse #define R_0280F4_CB_COLOR5_FRAG 0x0280F4 1877c8c15ff1SJerome Glisse #define R_0280F8_CB_COLOR6_FRAG 0x0280F8 1878c8c15ff1SJerome Glisse #define R_0280FC_CB_COLOR7_FRAG 0x0280FC 1879c8c15ff1SJerome Glisse #define R_0280C0_CB_COLOR0_TILE 0x0280C0 1880c8c15ff1SJerome Glisse #define S_0280C0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0) 1881c8c15ff1SJerome Glisse #define G_0280C0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF) 1882c8c15ff1SJerome Glisse #define C_0280C0_BASE_256B 0x00000000 1883c8c15ff1SJerome Glisse #define R_0280C4_CB_COLOR1_TILE 0x0280C4 1884c8c15ff1SJerome Glisse #define R_0280C8_CB_COLOR2_TILE 0x0280C8 1885c8c15ff1SJerome Glisse #define R_0280CC_CB_COLOR3_TILE 0x0280CC 1886c8c15ff1SJerome Glisse #define R_0280D0_CB_COLOR4_TILE 0x0280D0 1887c8c15ff1SJerome Glisse #define R_0280D4_CB_COLOR5_TILE 0x0280D4 1888c8c15ff1SJerome Glisse #define R_0280D8_CB_COLOR6_TILE 0x0280D8 1889c8c15ff1SJerome Glisse #define R_0280DC_CB_COLOR7_TILE 0x0280DC 1890961fb597SJerome Glisse #define R_0280A0_CB_COLOR0_INFO 0x0280A0 1891961fb597SJerome Glisse #define S_0280A0_ENDIAN(x) (((x) & 0x3) << 0) 1892961fb597SJerome Glisse #define G_0280A0_ENDIAN(x) (((x) >> 0) & 0x3) 1893961fb597SJerome Glisse #define C_0280A0_ENDIAN 0xFFFFFFFC 1894961fb597SJerome Glisse #define S_0280A0_FORMAT(x) (((x) & 0x3F) << 2) 1895961fb597SJerome Glisse #define G_0280A0_FORMAT(x) (((x) >> 2) & 0x3F) 1896961fb597SJerome Glisse #define C_0280A0_FORMAT 0xFFFFFF03 1897961fb597SJerome Glisse #define V_0280A0_COLOR_INVALID 0x00000000 1898961fb597SJerome Glisse #define V_0280A0_COLOR_8 0x00000001 1899961fb597SJerome Glisse #define V_0280A0_COLOR_4_4 0x00000002 1900961fb597SJerome Glisse #define V_0280A0_COLOR_3_3_2 0x00000003 1901961fb597SJerome Glisse #define V_0280A0_COLOR_16 0x00000005 1902961fb597SJerome Glisse #define V_0280A0_COLOR_16_FLOAT 0x00000006 1903961fb597SJerome Glisse #define V_0280A0_COLOR_8_8 0x00000007 1904961fb597SJerome Glisse #define V_0280A0_COLOR_5_6_5 0x00000008 1905961fb597SJerome Glisse #define V_0280A0_COLOR_6_5_5 0x00000009 1906961fb597SJerome Glisse #define V_0280A0_COLOR_1_5_5_5 0x0000000A 1907961fb597SJerome Glisse #define V_0280A0_COLOR_4_4_4_4 0x0000000B 1908961fb597SJerome Glisse #define V_0280A0_COLOR_5_5_5_1 0x0000000C 1909961fb597SJerome Glisse #define V_0280A0_COLOR_32 0x0000000D 1910961fb597SJerome Glisse #define V_0280A0_COLOR_32_FLOAT 0x0000000E 1911961fb597SJerome Glisse #define V_0280A0_COLOR_16_16 0x0000000F 1912961fb597SJerome Glisse #define V_0280A0_COLOR_16_16_FLOAT 0x00000010 1913961fb597SJerome Glisse #define V_0280A0_COLOR_8_24 0x00000011 1914961fb597SJerome Glisse #define V_0280A0_COLOR_8_24_FLOAT 0x00000012 1915961fb597SJerome Glisse #define V_0280A0_COLOR_24_8 0x00000013 1916961fb597SJerome Glisse #define V_0280A0_COLOR_24_8_FLOAT 0x00000014 1917961fb597SJerome Glisse #define V_0280A0_COLOR_10_11_11 0x00000015 1918961fb597SJerome Glisse #define V_0280A0_COLOR_10_11_11_FLOAT 0x00000016 1919961fb597SJerome Glisse #define V_0280A0_COLOR_11_11_10 0x00000017 1920961fb597SJerome Glisse #define V_0280A0_COLOR_11_11_10_FLOAT 0x00000018 1921961fb597SJerome Glisse #define V_0280A0_COLOR_2_10_10_10 0x00000019 1922961fb597SJerome Glisse #define V_0280A0_COLOR_8_8_8_8 0x0000001A 1923961fb597SJerome Glisse #define V_0280A0_COLOR_10_10_10_2 0x0000001B 1924961fb597SJerome Glisse #define V_0280A0_COLOR_X24_8_32_FLOAT 0x0000001C 1925961fb597SJerome Glisse #define V_0280A0_COLOR_32_32 0x0000001D 1926961fb597SJerome Glisse #define V_0280A0_COLOR_32_32_FLOAT 0x0000001E 1927961fb597SJerome Glisse #define V_0280A0_COLOR_16_16_16_16 0x0000001F 1928961fb597SJerome Glisse #define V_0280A0_COLOR_16_16_16_16_FLOAT 0x00000020 1929961fb597SJerome Glisse #define V_0280A0_COLOR_32_32_32_32 0x00000022 1930961fb597SJerome Glisse #define V_0280A0_COLOR_32_32_32_32_FLOAT 0x00000023 1931961fb597SJerome Glisse #define S_0280A0_ARRAY_MODE(x) (((x) & 0xF) << 8) 1932961fb597SJerome Glisse #define G_0280A0_ARRAY_MODE(x) (((x) >> 8) & 0xF) 1933961fb597SJerome Glisse #define C_0280A0_ARRAY_MODE 0xFFFFF0FF 1934961fb597SJerome Glisse #define V_0280A0_ARRAY_LINEAR_GENERAL 0x00000000 1935961fb597SJerome Glisse #define V_0280A0_ARRAY_LINEAR_ALIGNED 0x00000001 1936961fb597SJerome Glisse #define V_0280A0_ARRAY_1D_TILED_THIN1 0x00000002 1937961fb597SJerome Glisse #define V_0280A0_ARRAY_2D_TILED_THIN1 0x00000004 1938961fb597SJerome Glisse #define S_0280A0_NUMBER_TYPE(x) (((x) & 0x7) << 12) 1939961fb597SJerome Glisse #define G_0280A0_NUMBER_TYPE(x) (((x) >> 12) & 0x7) 1940961fb597SJerome Glisse #define C_0280A0_NUMBER_TYPE 0xFFFF8FFF 1941961fb597SJerome Glisse #define S_0280A0_READ_SIZE(x) (((x) & 0x1) << 15) 1942961fb597SJerome Glisse #define G_0280A0_READ_SIZE(x) (((x) >> 15) & 0x1) 1943961fb597SJerome Glisse #define C_0280A0_READ_SIZE 0xFFFF7FFF 1944961fb597SJerome Glisse #define S_0280A0_COMP_SWAP(x) (((x) & 0x3) << 16) 1945961fb597SJerome Glisse #define G_0280A0_COMP_SWAP(x) (((x) >> 16) & 0x3) 1946961fb597SJerome Glisse #define C_0280A0_COMP_SWAP 0xFFFCFFFF 1947961fb597SJerome Glisse #define S_0280A0_TILE_MODE(x) (((x) & 0x3) << 18) 1948961fb597SJerome Glisse #define G_0280A0_TILE_MODE(x) (((x) >> 18) & 0x3) 1949961fb597SJerome Glisse #define C_0280A0_TILE_MODE 0xFFF3FFFF 1950c116cc94SMarek Olšák #define V_0280A0_TILE_DISABLE 0 1951c116cc94SMarek Olšák #define V_0280A0_CLEAR_ENABLE 1 1952c116cc94SMarek Olšák #define V_0280A0_FRAG_ENABLE 2 1953961fb597SJerome Glisse #define S_0280A0_BLEND_CLAMP(x) (((x) & 0x1) << 20) 1954961fb597SJerome Glisse #define G_0280A0_BLEND_CLAMP(x) (((x) >> 20) & 0x1) 1955961fb597SJerome Glisse #define C_0280A0_BLEND_CLAMP 0xFFEFFFFF 1956961fb597SJerome Glisse #define S_0280A0_CLEAR_COLOR(x) (((x) & 0x1) << 21) 1957961fb597SJerome Glisse #define G_0280A0_CLEAR_COLOR(x) (((x) >> 21) & 0x1) 1958961fb597SJerome Glisse #define C_0280A0_CLEAR_COLOR 0xFFDFFFFF 1959961fb597SJerome Glisse #define S_0280A0_BLEND_BYPASS(x) (((x) & 0x1) << 22) 1960961fb597SJerome Glisse #define G_0280A0_BLEND_BYPASS(x) (((x) >> 22) & 0x1) 1961961fb597SJerome Glisse #define C_0280A0_BLEND_BYPASS 0xFFBFFFFF 1962961fb597SJerome Glisse #define S_0280A0_BLEND_FLOAT32(x) (((x) & 0x1) << 23) 1963961fb597SJerome Glisse #define G_0280A0_BLEND_FLOAT32(x) (((x) >> 23) & 0x1) 1964961fb597SJerome Glisse #define C_0280A0_BLEND_FLOAT32 0xFF7FFFFF 1965961fb597SJerome Glisse #define S_0280A0_SIMPLE_FLOAT(x) (((x) & 0x1) << 24) 1966961fb597SJerome Glisse #define G_0280A0_SIMPLE_FLOAT(x) (((x) >> 24) & 0x1) 1967961fb597SJerome Glisse #define C_0280A0_SIMPLE_FLOAT 0xFEFFFFFF 1968961fb597SJerome Glisse #define S_0280A0_ROUND_MODE(x) (((x) & 0x1) << 25) 1969961fb597SJerome Glisse #define G_0280A0_ROUND_MODE(x) (((x) >> 25) & 0x1) 1970961fb597SJerome Glisse #define C_0280A0_ROUND_MODE 0xFDFFFFFF 1971961fb597SJerome Glisse #define S_0280A0_TILE_COMPACT(x) (((x) & 0x1) << 26) 1972961fb597SJerome Glisse #define G_0280A0_TILE_COMPACT(x) (((x) >> 26) & 0x1) 1973961fb597SJerome Glisse #define C_0280A0_TILE_COMPACT 0xFBFFFFFF 1974961fb597SJerome Glisse #define S_0280A0_SOURCE_FORMAT(x) (((x) & 0x1) << 27) 1975961fb597SJerome Glisse #define G_0280A0_SOURCE_FORMAT(x) (((x) >> 27) & 0x1) 1976961fb597SJerome Glisse #define C_0280A0_SOURCE_FORMAT 0xF7FFFFFF 1977961fb597SJerome Glisse #define R_0280A4_CB_COLOR1_INFO 0x0280A4 1978961fb597SJerome Glisse #define R_0280A8_CB_COLOR2_INFO 0x0280A8 1979961fb597SJerome Glisse #define R_0280AC_CB_COLOR3_INFO 0x0280AC 1980961fb597SJerome Glisse #define R_0280B0_CB_COLOR4_INFO 0x0280B0 1981961fb597SJerome Glisse #define R_0280B4_CB_COLOR5_INFO 0x0280B4 1982961fb597SJerome Glisse #define R_0280B8_CB_COLOR6_INFO 0x0280B8 1983961fb597SJerome Glisse #define R_0280BC_CB_COLOR7_INFO 0x0280BC 1984961fb597SJerome Glisse #define R_028060_CB_COLOR0_SIZE 0x028060 1985961fb597SJerome Glisse #define S_028060_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0) 1986961fb597SJerome Glisse #define G_028060_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF) 1987961fb597SJerome Glisse #define C_028060_PITCH_TILE_MAX 0xFFFFFC00 1988961fb597SJerome Glisse #define S_028060_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10) 1989961fb597SJerome Glisse #define G_028060_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF) 1990961fb597SJerome Glisse #define C_028060_SLICE_TILE_MAX 0xC00003FF 1991961fb597SJerome Glisse #define R_028064_CB_COLOR1_SIZE 0x028064 1992961fb597SJerome Glisse #define R_028068_CB_COLOR2_SIZE 0x028068 1993961fb597SJerome Glisse #define R_02806C_CB_COLOR3_SIZE 0x02806C 1994961fb597SJerome Glisse #define R_028070_CB_COLOR4_SIZE 0x028070 1995961fb597SJerome Glisse #define R_028074_CB_COLOR5_SIZE 0x028074 1996961fb597SJerome Glisse #define R_028078_CB_COLOR6_SIZE 0x028078 1997961fb597SJerome Glisse #define R_02807C_CB_COLOR7_SIZE 0x02807C 1998961fb597SJerome Glisse #define R_028238_CB_TARGET_MASK 0x028238 1999961fb597SJerome Glisse #define S_028238_TARGET0_ENABLE(x) (((x) & 0xF) << 0) 2000961fb597SJerome Glisse #define G_028238_TARGET0_ENABLE(x) (((x) >> 0) & 0xF) 2001961fb597SJerome Glisse #define C_028238_TARGET0_ENABLE 0xFFFFFFF0 2002961fb597SJerome Glisse #define S_028238_TARGET1_ENABLE(x) (((x) & 0xF) << 4) 2003961fb597SJerome Glisse #define G_028238_TARGET1_ENABLE(x) (((x) >> 4) & 0xF) 2004961fb597SJerome Glisse #define C_028238_TARGET1_ENABLE 0xFFFFFF0F 2005961fb597SJerome Glisse #define S_028238_TARGET2_ENABLE(x) (((x) & 0xF) << 8) 2006961fb597SJerome Glisse #define G_028238_TARGET2_ENABLE(x) (((x) >> 8) & 0xF) 2007961fb597SJerome Glisse #define C_028238_TARGET2_ENABLE 0xFFFFF0FF 2008961fb597SJerome Glisse #define S_028238_TARGET3_ENABLE(x) (((x) & 0xF) << 12) 2009961fb597SJerome Glisse #define G_028238_TARGET3_ENABLE(x) (((x) >> 12) & 0xF) 2010961fb597SJerome Glisse #define C_028238_TARGET3_ENABLE 0xFFFF0FFF 2011961fb597SJerome Glisse #define S_028238_TARGET4_ENABLE(x) (((x) & 0xF) << 16) 2012961fb597SJerome Glisse #define G_028238_TARGET4_ENABLE(x) (((x) >> 16) & 0xF) 2013961fb597SJerome Glisse #define C_028238_TARGET4_ENABLE 0xFFF0FFFF 2014961fb597SJerome Glisse #define S_028238_TARGET5_ENABLE(x) (((x) & 0xF) << 20) 2015961fb597SJerome Glisse #define G_028238_TARGET5_ENABLE(x) (((x) >> 20) & 0xF) 2016961fb597SJerome Glisse #define C_028238_TARGET5_ENABLE 0xFF0FFFFF 2017961fb597SJerome Glisse #define S_028238_TARGET6_ENABLE(x) (((x) & 0xF) << 24) 2018961fb597SJerome Glisse #define G_028238_TARGET6_ENABLE(x) (((x) >> 24) & 0xF) 2019961fb597SJerome Glisse #define C_028238_TARGET6_ENABLE 0xF0FFFFFF 2020961fb597SJerome Glisse #define S_028238_TARGET7_ENABLE(x) (((x) & 0xF) << 28) 2021961fb597SJerome Glisse #define G_028238_TARGET7_ENABLE(x) (((x) >> 28) & 0xF) 2022961fb597SJerome Glisse #define C_028238_TARGET7_ENABLE 0x0FFFFFFF 2023961fb597SJerome Glisse #define R_02823C_CB_SHADER_MASK 0x02823C 2024961fb597SJerome Glisse #define S_02823C_OUTPUT0_ENABLE(x) (((x) & 0xF) << 0) 2025961fb597SJerome Glisse #define G_02823C_OUTPUT0_ENABLE(x) (((x) >> 0) & 0xF) 2026961fb597SJerome Glisse #define C_02823C_OUTPUT0_ENABLE 0xFFFFFFF0 2027961fb597SJerome Glisse #define S_02823C_OUTPUT1_ENABLE(x) (((x) & 0xF) << 4) 2028961fb597SJerome Glisse #define G_02823C_OUTPUT1_ENABLE(x) (((x) >> 4) & 0xF) 2029961fb597SJerome Glisse #define C_02823C_OUTPUT1_ENABLE 0xFFFFFF0F 2030961fb597SJerome Glisse #define S_02823C_OUTPUT2_ENABLE(x) (((x) & 0xF) << 8) 2031961fb597SJerome Glisse #define G_02823C_OUTPUT2_ENABLE(x) (((x) >> 8) & 0xF) 2032961fb597SJerome Glisse #define C_02823C_OUTPUT2_ENABLE 0xFFFFF0FF 2033961fb597SJerome Glisse #define S_02823C_OUTPUT3_ENABLE(x) (((x) & 0xF) << 12) 2034961fb597SJerome Glisse #define G_02823C_OUTPUT3_ENABLE(x) (((x) >> 12) & 0xF) 2035961fb597SJerome Glisse #define C_02823C_OUTPUT3_ENABLE 0xFFFF0FFF 2036961fb597SJerome Glisse #define S_02823C_OUTPUT4_ENABLE(x) (((x) & 0xF) << 16) 2037961fb597SJerome Glisse #define G_02823C_OUTPUT4_ENABLE(x) (((x) >> 16) & 0xF) 2038961fb597SJerome Glisse #define C_02823C_OUTPUT4_ENABLE 0xFFF0FFFF 2039961fb597SJerome Glisse #define S_02823C_OUTPUT5_ENABLE(x) (((x) & 0xF) << 20) 2040961fb597SJerome Glisse #define G_02823C_OUTPUT5_ENABLE(x) (((x) >> 20) & 0xF) 2041961fb597SJerome Glisse #define C_02823C_OUTPUT5_ENABLE 0xFF0FFFFF 2042961fb597SJerome Glisse #define S_02823C_OUTPUT6_ENABLE(x) (((x) & 0xF) << 24) 2043961fb597SJerome Glisse #define G_02823C_OUTPUT6_ENABLE(x) (((x) >> 24) & 0xF) 2044961fb597SJerome Glisse #define C_02823C_OUTPUT6_ENABLE 0xF0FFFFFF 2045961fb597SJerome Glisse #define S_02823C_OUTPUT7_ENABLE(x) (((x) & 0xF) << 28) 2046961fb597SJerome Glisse #define G_02823C_OUTPUT7_ENABLE(x) (((x) >> 28) & 0xF) 2047961fb597SJerome Glisse #define C_02823C_OUTPUT7_ENABLE 0x0FFFFFFF 2048961fb597SJerome Glisse #define R_028AB0_VGT_STRMOUT_EN 0x028AB0 2049961fb597SJerome Glisse #define S_028AB0_STREAMOUT(x) (((x) & 0x1) << 0) 2050961fb597SJerome Glisse #define G_028AB0_STREAMOUT(x) (((x) >> 0) & 0x1) 2051961fb597SJerome Glisse #define C_028AB0_STREAMOUT 0xFFFFFFFE 2052961fb597SJerome Glisse #define R_028B20_VGT_STRMOUT_BUFFER_EN 0x028B20 2053961fb597SJerome Glisse #define S_028B20_BUFFER_0_EN(x) (((x) & 0x1) << 0) 2054961fb597SJerome Glisse #define G_028B20_BUFFER_0_EN(x) (((x) >> 0) & 0x1) 2055961fb597SJerome Glisse #define C_028B20_BUFFER_0_EN 0xFFFFFFFE 2056961fb597SJerome Glisse #define S_028B20_BUFFER_1_EN(x) (((x) & 0x1) << 1) 2057961fb597SJerome Glisse #define G_028B20_BUFFER_1_EN(x) (((x) >> 1) & 0x1) 2058961fb597SJerome Glisse #define C_028B20_BUFFER_1_EN 0xFFFFFFFD 2059961fb597SJerome Glisse #define S_028B20_BUFFER_2_EN(x) (((x) & 0x1) << 2) 2060961fb597SJerome Glisse #define G_028B20_BUFFER_2_EN(x) (((x) >> 2) & 0x1) 2061961fb597SJerome Glisse #define C_028B20_BUFFER_2_EN 0xFFFFFFFB 2062961fb597SJerome Glisse #define S_028B20_BUFFER_3_EN(x) (((x) & 0x1) << 3) 2063961fb597SJerome Glisse #define G_028B20_BUFFER_3_EN(x) (((x) >> 3) & 0x1) 2064961fb597SJerome Glisse #define C_028B20_BUFFER_3_EN 0xFFFFFFF7 2065961fb597SJerome Glisse #define S_028B20_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2066961fb597SJerome Glisse #define G_028B20_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2067961fb597SJerome Glisse #define C_028B20_SIZE 0x00000000 2068961fb597SJerome Glisse #define R_038000_SQ_TEX_RESOURCE_WORD0_0 0x038000 2069961fb597SJerome Glisse #define S_038000_DIM(x) (((x) & 0x7) << 0) 2070961fb597SJerome Glisse #define G_038000_DIM(x) (((x) >> 0) & 0x7) 2071961fb597SJerome Glisse #define C_038000_DIM 0xFFFFFFF8 2072961fb597SJerome Glisse #define V_038000_SQ_TEX_DIM_1D 0x00000000 2073961fb597SJerome Glisse #define V_038000_SQ_TEX_DIM_2D 0x00000001 2074961fb597SJerome Glisse #define V_038000_SQ_TEX_DIM_3D 0x00000002 2075961fb597SJerome Glisse #define V_038000_SQ_TEX_DIM_CUBEMAP 0x00000003 2076961fb597SJerome Glisse #define V_038000_SQ_TEX_DIM_1D_ARRAY 0x00000004 2077961fb597SJerome Glisse #define V_038000_SQ_TEX_DIM_2D_ARRAY 0x00000005 2078961fb597SJerome Glisse #define V_038000_SQ_TEX_DIM_2D_MSAA 0x00000006 2079961fb597SJerome Glisse #define V_038000_SQ_TEX_DIM_2D_ARRAY_MSAA 0x00000007 2080961fb597SJerome Glisse #define S_038000_TILE_MODE(x) (((x) & 0xF) << 3) 2081961fb597SJerome Glisse #define G_038000_TILE_MODE(x) (((x) >> 3) & 0xF) 2082961fb597SJerome Glisse #define C_038000_TILE_MODE 0xFFFFFF87 20837f813377SAlex Deucher #define V_038000_ARRAY_LINEAR_GENERAL 0x00000000 20847f813377SAlex Deucher #define V_038000_ARRAY_LINEAR_ALIGNED 0x00000001 20857f813377SAlex Deucher #define V_038000_ARRAY_1D_TILED_THIN1 0x00000002 20867f813377SAlex Deucher #define V_038000_ARRAY_2D_TILED_THIN1 0x00000004 2087961fb597SJerome Glisse #define S_038000_TILE_TYPE(x) (((x) & 0x1) << 7) 2088961fb597SJerome Glisse #define G_038000_TILE_TYPE(x) (((x) >> 7) & 0x1) 2089961fb597SJerome Glisse #define C_038000_TILE_TYPE 0xFFFFFF7F 2090961fb597SJerome Glisse #define S_038000_PITCH(x) (((x) & 0x7FF) << 8) 2091961fb597SJerome Glisse #define G_038000_PITCH(x) (((x) >> 8) & 0x7FF) 2092961fb597SJerome Glisse #define C_038000_PITCH 0xFFF800FF 2093961fb597SJerome Glisse #define S_038000_TEX_WIDTH(x) (((x) & 0x1FFF) << 19) 2094961fb597SJerome Glisse #define G_038000_TEX_WIDTH(x) (((x) >> 19) & 0x1FFF) 2095961fb597SJerome Glisse #define C_038000_TEX_WIDTH 0x0007FFFF 2096961fb597SJerome Glisse #define R_038004_SQ_TEX_RESOURCE_WORD1_0 0x038004 2097961fb597SJerome Glisse #define S_038004_TEX_HEIGHT(x) (((x) & 0x1FFF) << 0) 2098961fb597SJerome Glisse #define G_038004_TEX_HEIGHT(x) (((x) >> 0) & 0x1FFF) 2099961fb597SJerome Glisse #define C_038004_TEX_HEIGHT 0xFFFFE000 2100961fb597SJerome Glisse #define S_038004_TEX_DEPTH(x) (((x) & 0x1FFF) << 13) 2101961fb597SJerome Glisse #define G_038004_TEX_DEPTH(x) (((x) >> 13) & 0x1FFF) 2102961fb597SJerome Glisse #define C_038004_TEX_DEPTH 0xFC001FFF 2103961fb597SJerome Glisse #define S_038004_DATA_FORMAT(x) (((x) & 0x3F) << 26) 2104961fb597SJerome Glisse #define G_038004_DATA_FORMAT(x) (((x) >> 26) & 0x3F) 2105961fb597SJerome Glisse #define C_038004_DATA_FORMAT 0x03FFFFFF 2106961fb597SJerome Glisse #define V_038004_COLOR_INVALID 0x00000000 2107961fb597SJerome Glisse #define V_038004_COLOR_8 0x00000001 2108961fb597SJerome Glisse #define V_038004_COLOR_4_4 0x00000002 2109961fb597SJerome Glisse #define V_038004_COLOR_3_3_2 0x00000003 2110961fb597SJerome Glisse #define V_038004_COLOR_16 0x00000005 2111961fb597SJerome Glisse #define V_038004_COLOR_16_FLOAT 0x00000006 2112961fb597SJerome Glisse #define V_038004_COLOR_8_8 0x00000007 2113961fb597SJerome Glisse #define V_038004_COLOR_5_6_5 0x00000008 2114961fb597SJerome Glisse #define V_038004_COLOR_6_5_5 0x00000009 2115961fb597SJerome Glisse #define V_038004_COLOR_1_5_5_5 0x0000000A 2116961fb597SJerome Glisse #define V_038004_COLOR_4_4_4_4 0x0000000B 2117961fb597SJerome Glisse #define V_038004_COLOR_5_5_5_1 0x0000000C 2118961fb597SJerome Glisse #define V_038004_COLOR_32 0x0000000D 2119961fb597SJerome Glisse #define V_038004_COLOR_32_FLOAT 0x0000000E 2120961fb597SJerome Glisse #define V_038004_COLOR_16_16 0x0000000F 2121961fb597SJerome Glisse #define V_038004_COLOR_16_16_FLOAT 0x00000010 2122961fb597SJerome Glisse #define V_038004_COLOR_8_24 0x00000011 2123961fb597SJerome Glisse #define V_038004_COLOR_8_24_FLOAT 0x00000012 2124961fb597SJerome Glisse #define V_038004_COLOR_24_8 0x00000013 2125961fb597SJerome Glisse #define V_038004_COLOR_24_8_FLOAT 0x00000014 2126961fb597SJerome Glisse #define V_038004_COLOR_10_11_11 0x00000015 2127961fb597SJerome Glisse #define V_038004_COLOR_10_11_11_FLOAT 0x00000016 2128961fb597SJerome Glisse #define V_038004_COLOR_11_11_10 0x00000017 2129961fb597SJerome Glisse #define V_038004_COLOR_11_11_10_FLOAT 0x00000018 2130961fb597SJerome Glisse #define V_038004_COLOR_2_10_10_10 0x00000019 2131961fb597SJerome Glisse #define V_038004_COLOR_8_8_8_8 0x0000001A 2132961fb597SJerome Glisse #define V_038004_COLOR_10_10_10_2 0x0000001B 2133961fb597SJerome Glisse #define V_038004_COLOR_X24_8_32_FLOAT 0x0000001C 2134961fb597SJerome Glisse #define V_038004_COLOR_32_32 0x0000001D 2135961fb597SJerome Glisse #define V_038004_COLOR_32_32_FLOAT 0x0000001E 2136961fb597SJerome Glisse #define V_038004_COLOR_16_16_16_16 0x0000001F 2137961fb597SJerome Glisse #define V_038004_COLOR_16_16_16_16_FLOAT 0x00000020 2138961fb597SJerome Glisse #define V_038004_COLOR_32_32_32_32 0x00000022 2139961fb597SJerome Glisse #define V_038004_COLOR_32_32_32_32_FLOAT 0x00000023 2140961fb597SJerome Glisse #define V_038004_FMT_1 0x00000025 2141961fb597SJerome Glisse #define V_038004_FMT_GB_GR 0x00000027 2142961fb597SJerome Glisse #define V_038004_FMT_BG_RG 0x00000028 2143961fb597SJerome Glisse #define V_038004_FMT_32_AS_8 0x00000029 2144961fb597SJerome Glisse #define V_038004_FMT_32_AS_8_8 0x0000002A 2145961fb597SJerome Glisse #define V_038004_FMT_5_9_9_9_SHAREDEXP 0x0000002B 2146961fb597SJerome Glisse #define V_038004_FMT_8_8_8 0x0000002C 2147961fb597SJerome Glisse #define V_038004_FMT_16_16_16 0x0000002D 2148961fb597SJerome Glisse #define V_038004_FMT_16_16_16_FLOAT 0x0000002E 2149961fb597SJerome Glisse #define V_038004_FMT_32_32_32 0x0000002F 2150961fb597SJerome Glisse #define V_038004_FMT_32_32_32_FLOAT 0x00000030 215160b212f8SDave Airlie #define V_038004_FMT_BC1 0x00000031 215260b212f8SDave Airlie #define V_038004_FMT_BC2 0x00000032 215360b212f8SDave Airlie #define V_038004_FMT_BC3 0x00000033 215460b212f8SDave Airlie #define V_038004_FMT_BC4 0x00000034 215560b212f8SDave Airlie #define V_038004_FMT_BC5 0x00000035 2156fe6f0bd0SMarek Olšák #define V_038004_FMT_BC6 0x00000036 2157fe6f0bd0SMarek Olšák #define V_038004_FMT_BC7 0x00000037 2158fe6f0bd0SMarek Olšák #define V_038004_FMT_32_AS_32_32_32_32 0x00000038 2159961fb597SJerome Glisse #define R_038010_SQ_TEX_RESOURCE_WORD4_0 0x038010 2160961fb597SJerome Glisse #define S_038010_FORMAT_COMP_X(x) (((x) & 0x3) << 0) 2161961fb597SJerome Glisse #define G_038010_FORMAT_COMP_X(x) (((x) >> 0) & 0x3) 2162961fb597SJerome Glisse #define C_038010_FORMAT_COMP_X 0xFFFFFFFC 2163961fb597SJerome Glisse #define S_038010_FORMAT_COMP_Y(x) (((x) & 0x3) << 2) 2164961fb597SJerome Glisse #define G_038010_FORMAT_COMP_Y(x) (((x) >> 2) & 0x3) 2165961fb597SJerome Glisse #define C_038010_FORMAT_COMP_Y 0xFFFFFFF3 2166961fb597SJerome Glisse #define S_038010_FORMAT_COMP_Z(x) (((x) & 0x3) << 4) 2167961fb597SJerome Glisse #define G_038010_FORMAT_COMP_Z(x) (((x) >> 4) & 0x3) 2168961fb597SJerome Glisse #define C_038010_FORMAT_COMP_Z 0xFFFFFFCF 2169961fb597SJerome Glisse #define S_038010_FORMAT_COMP_W(x) (((x) & 0x3) << 6) 2170961fb597SJerome Glisse #define G_038010_FORMAT_COMP_W(x) (((x) >> 6) & 0x3) 2171961fb597SJerome Glisse #define C_038010_FORMAT_COMP_W 0xFFFFFF3F 2172961fb597SJerome Glisse #define S_038010_NUM_FORMAT_ALL(x) (((x) & 0x3) << 8) 2173961fb597SJerome Glisse #define G_038010_NUM_FORMAT_ALL(x) (((x) >> 8) & 0x3) 2174961fb597SJerome Glisse #define C_038010_NUM_FORMAT_ALL 0xFFFFFCFF 2175961fb597SJerome Glisse #define S_038010_SRF_MODE_ALL(x) (((x) & 0x1) << 10) 2176961fb597SJerome Glisse #define G_038010_SRF_MODE_ALL(x) (((x) >> 10) & 0x1) 2177961fb597SJerome Glisse #define C_038010_SRF_MODE_ALL 0xFFFFFBFF 2178961fb597SJerome Glisse #define S_038010_FORCE_DEGAMMA(x) (((x) & 0x1) << 11) 2179961fb597SJerome Glisse #define G_038010_FORCE_DEGAMMA(x) (((x) >> 11) & 0x1) 2180961fb597SJerome Glisse #define C_038010_FORCE_DEGAMMA 0xFFFFF7FF 2181961fb597SJerome Glisse #define S_038010_ENDIAN_SWAP(x) (((x) & 0x3) << 12) 2182961fb597SJerome Glisse #define G_038010_ENDIAN_SWAP(x) (((x) >> 12) & 0x3) 2183961fb597SJerome Glisse #define C_038010_ENDIAN_SWAP 0xFFFFCFFF 2184961fb597SJerome Glisse #define S_038010_REQUEST_SIZE(x) (((x) & 0x3) << 14) 2185961fb597SJerome Glisse #define G_038010_REQUEST_SIZE(x) (((x) >> 14) & 0x3) 2186961fb597SJerome Glisse #define C_038010_REQUEST_SIZE 0xFFFF3FFF 2187961fb597SJerome Glisse #define S_038010_DST_SEL_X(x) (((x) & 0x7) << 16) 2188961fb597SJerome Glisse #define G_038010_DST_SEL_X(x) (((x) >> 16) & 0x7) 2189961fb597SJerome Glisse #define C_038010_DST_SEL_X 0xFFF8FFFF 2190961fb597SJerome Glisse #define S_038010_DST_SEL_Y(x) (((x) & 0x7) << 19) 2191961fb597SJerome Glisse #define G_038010_DST_SEL_Y(x) (((x) >> 19) & 0x7) 2192961fb597SJerome Glisse #define C_038010_DST_SEL_Y 0xFFC7FFFF 2193961fb597SJerome Glisse #define S_038010_DST_SEL_Z(x) (((x) & 0x7) << 22) 2194961fb597SJerome Glisse #define G_038010_DST_SEL_Z(x) (((x) >> 22) & 0x7) 2195961fb597SJerome Glisse #define C_038010_DST_SEL_Z 0xFE3FFFFF 2196961fb597SJerome Glisse #define S_038010_DST_SEL_W(x) (((x) & 0x7) << 25) 2197961fb597SJerome Glisse #define G_038010_DST_SEL_W(x) (((x) >> 25) & 0x7) 2198961fb597SJerome Glisse #define C_038010_DST_SEL_W 0xF1FFFFFF 21993a38612eSIlija Hadzic # define SQ_SEL_X 0 22003a38612eSIlija Hadzic # define SQ_SEL_Y 1 22013a38612eSIlija Hadzic # define SQ_SEL_Z 2 22023a38612eSIlija Hadzic # define SQ_SEL_W 3 22033a38612eSIlija Hadzic # define SQ_SEL_0 4 22043a38612eSIlija Hadzic # define SQ_SEL_1 5 2205961fb597SJerome Glisse #define S_038010_BASE_LEVEL(x) (((x) & 0xF) << 28) 2206961fb597SJerome Glisse #define G_038010_BASE_LEVEL(x) (((x) >> 28) & 0xF) 2207961fb597SJerome Glisse #define C_038010_BASE_LEVEL 0x0FFFFFFF 2208961fb597SJerome Glisse #define R_038014_SQ_TEX_RESOURCE_WORD5_0 0x038014 2209961fb597SJerome Glisse #define S_038014_LAST_LEVEL(x) (((x) & 0xF) << 0) 2210961fb597SJerome Glisse #define G_038014_LAST_LEVEL(x) (((x) >> 0) & 0xF) 2211961fb597SJerome Glisse #define C_038014_LAST_LEVEL 0xFFFFFFF0 2212961fb597SJerome Glisse #define S_038014_BASE_ARRAY(x) (((x) & 0x1FFF) << 4) 2213961fb597SJerome Glisse #define G_038014_BASE_ARRAY(x) (((x) >> 4) & 0x1FFF) 2214961fb597SJerome Glisse #define C_038014_BASE_ARRAY 0xFFFE000F 2215961fb597SJerome Glisse #define S_038014_LAST_ARRAY(x) (((x) & 0x1FFF) << 17) 2216961fb597SJerome Glisse #define G_038014_LAST_ARRAY(x) (((x) >> 17) & 0x1FFF) 2217961fb597SJerome Glisse #define C_038014_LAST_ARRAY 0xC001FFFF 2218961fb597SJerome Glisse #define R_0288A8_SQ_ESGS_RING_ITEMSIZE 0x0288A8 2219961fb597SJerome Glisse #define S_0288A8_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2220961fb597SJerome Glisse #define G_0288A8_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2221961fb597SJerome Glisse #define C_0288A8_ITEMSIZE 0xFFFF8000 2222961fb597SJerome Glisse #define R_008C44_SQ_ESGS_RING_SIZE 0x008C44 2223961fb597SJerome Glisse #define S_008C44_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2224961fb597SJerome Glisse #define G_008C44_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2225961fb597SJerome Glisse #define C_008C44_MEM_SIZE 0x00000000 2226961fb597SJerome Glisse #define R_0288B0_SQ_ESTMP_RING_ITEMSIZE 0x0288B0 2227961fb597SJerome Glisse #define S_0288B0_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2228961fb597SJerome Glisse #define G_0288B0_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2229961fb597SJerome Glisse #define C_0288B0_ITEMSIZE 0xFFFF8000 2230961fb597SJerome Glisse #define R_008C54_SQ_ESTMP_RING_SIZE 0x008C54 2231961fb597SJerome Glisse #define S_008C54_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2232961fb597SJerome Glisse #define G_008C54_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2233961fb597SJerome Glisse #define C_008C54_MEM_SIZE 0x00000000 2234961fb597SJerome Glisse #define R_0288C0_SQ_FBUF_RING_ITEMSIZE 0x0288C0 2235961fb597SJerome Glisse #define S_0288C0_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2236961fb597SJerome Glisse #define G_0288C0_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2237961fb597SJerome Glisse #define C_0288C0_ITEMSIZE 0xFFFF8000 2238961fb597SJerome Glisse #define R_008C74_SQ_FBUF_RING_SIZE 0x008C74 2239961fb597SJerome Glisse #define S_008C74_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2240961fb597SJerome Glisse #define G_008C74_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2241961fb597SJerome Glisse #define C_008C74_MEM_SIZE 0x00000000 2242961fb597SJerome Glisse #define R_0288B4_SQ_GSTMP_RING_ITEMSIZE 0x0288B4 2243961fb597SJerome Glisse #define S_0288B4_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2244961fb597SJerome Glisse #define G_0288B4_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2245961fb597SJerome Glisse #define C_0288B4_ITEMSIZE 0xFFFF8000 2246961fb597SJerome Glisse #define R_008C5C_SQ_GSTMP_RING_SIZE 0x008C5C 2247961fb597SJerome Glisse #define S_008C5C_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2248961fb597SJerome Glisse #define G_008C5C_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2249961fb597SJerome Glisse #define C_008C5C_MEM_SIZE 0x00000000 2250961fb597SJerome Glisse #define R_0288AC_SQ_GSVS_RING_ITEMSIZE 0x0288AC 2251961fb597SJerome Glisse #define S_0288AC_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2252961fb597SJerome Glisse #define G_0288AC_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2253961fb597SJerome Glisse #define C_0288AC_ITEMSIZE 0xFFFF8000 2254961fb597SJerome Glisse #define R_008C4C_SQ_GSVS_RING_SIZE 0x008C4C 2255961fb597SJerome Glisse #define S_008C4C_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2256961fb597SJerome Glisse #define G_008C4C_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2257961fb597SJerome Glisse #define C_008C4C_MEM_SIZE 0x00000000 2258961fb597SJerome Glisse #define R_0288BC_SQ_PSTMP_RING_ITEMSIZE 0x0288BC 2259961fb597SJerome Glisse #define S_0288BC_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2260961fb597SJerome Glisse #define G_0288BC_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2261961fb597SJerome Glisse #define C_0288BC_ITEMSIZE 0xFFFF8000 2262961fb597SJerome Glisse #define R_008C6C_SQ_PSTMP_RING_SIZE 0x008C6C 2263961fb597SJerome Glisse #define S_008C6C_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2264961fb597SJerome Glisse #define G_008C6C_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2265961fb597SJerome Glisse #define C_008C6C_MEM_SIZE 0x00000000 2266961fb597SJerome Glisse #define R_0288C4_SQ_REDUC_RING_ITEMSIZE 0x0288C4 2267961fb597SJerome Glisse #define S_0288C4_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2268961fb597SJerome Glisse #define G_0288C4_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2269961fb597SJerome Glisse #define C_0288C4_ITEMSIZE 0xFFFF8000 2270961fb597SJerome Glisse #define R_008C7C_SQ_REDUC_RING_SIZE 0x008C7C 2271961fb597SJerome Glisse #define S_008C7C_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2272961fb597SJerome Glisse #define G_008C7C_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2273961fb597SJerome Glisse #define C_008C7C_MEM_SIZE 0x00000000 2274961fb597SJerome Glisse #define R_0288B8_SQ_VSTMP_RING_ITEMSIZE 0x0288B8 2275961fb597SJerome Glisse #define S_0288B8_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2276961fb597SJerome Glisse #define G_0288B8_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2277961fb597SJerome Glisse #define C_0288B8_ITEMSIZE 0xFFFF8000 2278961fb597SJerome Glisse #define R_008C64_SQ_VSTMP_RING_SIZE 0x008C64 2279961fb597SJerome Glisse #define S_008C64_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 2280961fb597SJerome Glisse #define G_008C64_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 2281961fb597SJerome Glisse #define C_008C64_MEM_SIZE 0x00000000 2282961fb597SJerome Glisse #define R_0288C8_SQ_GS_VERT_ITEMSIZE 0x0288C8 2283961fb597SJerome Glisse #define S_0288C8_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 2284961fb597SJerome Glisse #define G_0288C8_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 2285961fb597SJerome Glisse #define C_0288C8_ITEMSIZE 0xFFFF8000 2286961fb597SJerome Glisse #define R_028010_DB_DEPTH_INFO 0x028010 2287961fb597SJerome Glisse #define S_028010_FORMAT(x) (((x) & 0x7) << 0) 2288961fb597SJerome Glisse #define G_028010_FORMAT(x) (((x) >> 0) & 0x7) 2289961fb597SJerome Glisse #define C_028010_FORMAT 0xFFFFFFF8 2290961fb597SJerome Glisse #define V_028010_DEPTH_INVALID 0x00000000 2291961fb597SJerome Glisse #define V_028010_DEPTH_16 0x00000001 2292961fb597SJerome Glisse #define V_028010_DEPTH_X8_24 0x00000002 2293961fb597SJerome Glisse #define V_028010_DEPTH_8_24 0x00000003 2294961fb597SJerome Glisse #define V_028010_DEPTH_X8_24_FLOAT 0x00000004 2295961fb597SJerome Glisse #define V_028010_DEPTH_8_24_FLOAT 0x00000005 2296961fb597SJerome Glisse #define V_028010_DEPTH_32_FLOAT 0x00000006 2297961fb597SJerome Glisse #define V_028010_DEPTH_X24_8_32_FLOAT 0x00000007 2298961fb597SJerome Glisse #define S_028010_READ_SIZE(x) (((x) & 0x1) << 3) 2299961fb597SJerome Glisse #define G_028010_READ_SIZE(x) (((x) >> 3) & 0x1) 2300961fb597SJerome Glisse #define C_028010_READ_SIZE 0xFFFFFFF7 2301961fb597SJerome Glisse #define S_028010_ARRAY_MODE(x) (((x) & 0xF) << 15) 2302961fb597SJerome Glisse #define G_028010_ARRAY_MODE(x) (((x) >> 15) & 0xF) 2303961fb597SJerome Glisse #define C_028010_ARRAY_MODE 0xFFF87FFF 23047f813377SAlex Deucher #define V_028010_ARRAY_1D_TILED_THIN1 0x00000002 23057f813377SAlex Deucher #define V_028010_ARRAY_2D_TILED_THIN1 0x00000004 2306961fb597SJerome Glisse #define S_028010_TILE_SURFACE_ENABLE(x) (((x) & 0x1) << 25) 2307961fb597SJerome Glisse #define G_028010_TILE_SURFACE_ENABLE(x) (((x) >> 25) & 0x1) 2308961fb597SJerome Glisse #define C_028010_TILE_SURFACE_ENABLE 0xFDFFFFFF 2309961fb597SJerome Glisse #define S_028010_TILE_COMPACT(x) (((x) & 0x1) << 26) 2310961fb597SJerome Glisse #define G_028010_TILE_COMPACT(x) (((x) >> 26) & 0x1) 2311961fb597SJerome Glisse #define C_028010_TILE_COMPACT 0xFBFFFFFF 2312961fb597SJerome Glisse #define S_028010_ZRANGE_PRECISION(x) (((x) & 0x1) << 31) 2313961fb597SJerome Glisse #define G_028010_ZRANGE_PRECISION(x) (((x) >> 31) & 0x1) 2314961fb597SJerome Glisse #define C_028010_ZRANGE_PRECISION 0x7FFFFFFF 2315961fb597SJerome Glisse #define R_028000_DB_DEPTH_SIZE 0x028000 2316961fb597SJerome Glisse #define S_028000_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0) 2317961fb597SJerome Glisse #define G_028000_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF) 2318961fb597SJerome Glisse #define C_028000_PITCH_TILE_MAX 0xFFFFFC00 2319961fb597SJerome Glisse #define S_028000_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10) 2320961fb597SJerome Glisse #define G_028000_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF) 2321961fb597SJerome Glisse #define C_028000_SLICE_TILE_MAX 0xC00003FF 2322961fb597SJerome Glisse #define R_028004_DB_DEPTH_VIEW 0x028004 2323961fb597SJerome Glisse #define S_028004_SLICE_START(x) (((x) & 0x7FF) << 0) 2324961fb597SJerome Glisse #define G_028004_SLICE_START(x) (((x) >> 0) & 0x7FF) 2325961fb597SJerome Glisse #define C_028004_SLICE_START 0xFFFFF800 2326961fb597SJerome Glisse #define S_028004_SLICE_MAX(x) (((x) & 0x7FF) << 13) 2327961fb597SJerome Glisse #define G_028004_SLICE_MAX(x) (((x) >> 13) & 0x7FF) 2328961fb597SJerome Glisse #define C_028004_SLICE_MAX 0xFF001FFF 2329961fb597SJerome Glisse #define R_028800_DB_DEPTH_CONTROL 0x028800 2330961fb597SJerome Glisse #define S_028800_STENCIL_ENABLE(x) (((x) & 0x1) << 0) 2331961fb597SJerome Glisse #define G_028800_STENCIL_ENABLE(x) (((x) >> 0) & 0x1) 2332961fb597SJerome Glisse #define C_028800_STENCIL_ENABLE 0xFFFFFFFE 2333961fb597SJerome Glisse #define S_028800_Z_ENABLE(x) (((x) & 0x1) << 1) 2334961fb597SJerome Glisse #define G_028800_Z_ENABLE(x) (((x) >> 1) & 0x1) 2335961fb597SJerome Glisse #define C_028800_Z_ENABLE 0xFFFFFFFD 2336961fb597SJerome Glisse #define S_028800_Z_WRITE_ENABLE(x) (((x) & 0x1) << 2) 2337961fb597SJerome Glisse #define G_028800_Z_WRITE_ENABLE(x) (((x) >> 2) & 0x1) 2338961fb597SJerome Glisse #define C_028800_Z_WRITE_ENABLE 0xFFFFFFFB 2339961fb597SJerome Glisse #define S_028800_ZFUNC(x) (((x) & 0x7) << 4) 2340961fb597SJerome Glisse #define G_028800_ZFUNC(x) (((x) >> 4) & 0x7) 2341961fb597SJerome Glisse #define C_028800_ZFUNC 0xFFFFFF8F 2342961fb597SJerome Glisse #define S_028800_BACKFACE_ENABLE(x) (((x) & 0x1) << 7) 2343961fb597SJerome Glisse #define G_028800_BACKFACE_ENABLE(x) (((x) >> 7) & 0x1) 2344961fb597SJerome Glisse #define C_028800_BACKFACE_ENABLE 0xFFFFFF7F 2345961fb597SJerome Glisse #define S_028800_STENCILFUNC(x) (((x) & 0x7) << 8) 2346961fb597SJerome Glisse #define G_028800_STENCILFUNC(x) (((x) >> 8) & 0x7) 2347961fb597SJerome Glisse #define C_028800_STENCILFUNC 0xFFFFF8FF 2348961fb597SJerome Glisse #define S_028800_STENCILFAIL(x) (((x) & 0x7) << 11) 2349961fb597SJerome Glisse #define G_028800_STENCILFAIL(x) (((x) >> 11) & 0x7) 2350961fb597SJerome Glisse #define C_028800_STENCILFAIL 0xFFFFC7FF 2351961fb597SJerome Glisse #define S_028800_STENCILZPASS(x) (((x) & 0x7) << 14) 2352961fb597SJerome Glisse #define G_028800_STENCILZPASS(x) (((x) >> 14) & 0x7) 2353961fb597SJerome Glisse #define C_028800_STENCILZPASS 0xFFFE3FFF 2354961fb597SJerome Glisse #define S_028800_STENCILZFAIL(x) (((x) & 0x7) << 17) 2355961fb597SJerome Glisse #define G_028800_STENCILZFAIL(x) (((x) >> 17) & 0x7) 2356961fb597SJerome Glisse #define C_028800_STENCILZFAIL 0xFFF1FFFF 2357961fb597SJerome Glisse #define S_028800_STENCILFUNC_BF(x) (((x) & 0x7) << 20) 2358961fb597SJerome Glisse #define G_028800_STENCILFUNC_BF(x) (((x) >> 20) & 0x7) 2359961fb597SJerome Glisse #define C_028800_STENCILFUNC_BF 0xFF8FFFFF 2360961fb597SJerome Glisse #define S_028800_STENCILFAIL_BF(x) (((x) & 0x7) << 23) 2361961fb597SJerome Glisse #define G_028800_STENCILFAIL_BF(x) (((x) >> 23) & 0x7) 2362961fb597SJerome Glisse #define C_028800_STENCILFAIL_BF 0xFC7FFFFF 2363961fb597SJerome Glisse #define S_028800_STENCILZPASS_BF(x) (((x) & 0x7) << 26) 2364961fb597SJerome Glisse #define G_028800_STENCILZPASS_BF(x) (((x) >> 26) & 0x7) 2365961fb597SJerome Glisse #define C_028800_STENCILZPASS_BF 0xE3FFFFFF 2366961fb597SJerome Glisse #define S_028800_STENCILZFAIL_BF(x) (((x) & 0x7) << 29) 2367961fb597SJerome Glisse #define G_028800_STENCILZFAIL_BF(x) (((x) >> 29) & 0x7) 2368961fb597SJerome Glisse #define C_028800_STENCILZFAIL_BF 0x1FFFFFFF 2369c8c15ff1SJerome Glisse 23703ce0a23dSJerome Glisse #endif 2371