Subversion Repositories Kolibri OS

Rev

Rev 1029 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
  3.  *                VA Linux Systems Inc., Fremont, California.
  4.  *
  5.  * All Rights Reserved.
  6.  *
  7.  * Permission is hereby granted, free of charge, to any person obtaining
  8.  * a copy of this software and associated documentation files (the
  9.  * "Software"), to deal in the Software without restriction, including
  10.  * without limitation on the rights to use, copy, modify, merge,
  11.  * publish, distribute, sublicense, and/or sell copies of the Software,
  12.  * and to permit persons to whom the Software is furnished to do so,
  13.  * subject to the following conditions:
  14.  *
  15.  * The above copyright notice and this permission notice (including the
  16.  * next paragraph) shall be included in all copies or substantial
  17.  * portions of the Software.
  18.  *
  19.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  20.  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  21.  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  22.  * NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
  23.  * THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  24.  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  25.  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  26.  * DEALINGS IN THE SOFTWARE.
  27.  */
  28. /* WARNING: the above is not a standard MIT license. */
  29. /*
  30.  * Authors:
  31.  *   Kevin E. Martin <martin@xfree86.org>
  32.  *   Rickard E. Faith <faith@valinux.com>
  33.  *   Alan Hourihane <alanh@fairlite.demon.co.uk>
  34.  */
  35.  
  36. #ifndef _R5XX_2DREGS_H
  37. # define _R5XX_2DREGS_H
  38.  
  39. #define R5XX_DATATYPE_VQ        0
  40. #define R5XX_DATATYPE_CI4       1
  41. #define R5XX_DATATYPE_CI8       2
  42. #define R5XX_DATATYPE_ARGB1555  3
  43. #define R5XX_DATATYPE_RGB565    4
  44. #define R5XX_DATATYPE_RGB888    5
  45. #define R5XX_DATATYPE_ARGB8888  6
  46. #define R5XX_DATATYPE_RGB332    7
  47. #define R5XX_DATATYPE_Y8        8
  48. #define R5XX_DATATYPE_RGB8      9
  49. #define R5XX_DATATYPE_CI16      10
  50. #define R5XX_DATATYPE_VYUY_422  11
  51. #define R5XX_DATATYPE_YVYU_422  12
  52. #define R5XX_DATATYPE_AYUV_444  14
  53. #define R5XX_DATATYPE_ARGB4444  15
  54.  
  55. #define R5XX_RBBM_SOFT_RESET              0x00f0
  56. #       define R5XX_SOFT_RESET_CP         (1 <<  0)
  57. #       define R5XX_SOFT_RESET_HI         (1 <<  1)
  58. #       define R5XX_SOFT_RESET_SE         (1 <<  2)
  59. #       define R5XX_SOFT_RESET_RE         (1 <<  3)
  60. #       define R5XX_SOFT_RESET_PP         (1 <<  4)
  61. #       define R5XX_SOFT_RESET_E2         (1 <<  5)
  62. #       define R5XX_SOFT_RESET_RB         (1 <<  6)
  63. #       define R5XX_SOFT_RESET_HDP        (1 <<  7)
  64.  
  65. #define R5XX_HOST_PATH_CNTL               0x0130
  66. #       define R5XX_HDP_SOFT_RESET        (1 << 26)
  67. #       define R5XX_HDP_APER_CNTL         (1 << 23)
  68.  
  69. #define R5XX_SURFACE_CNTL                 0x0b00
  70. #       define R5XX_SURF_TRANSLATION_DIS  (1 << 8)
  71. #       define R5XX_NONSURF_AP0_SWP_16BPP (1 << 20)
  72. #       define R5XX_NONSURF_AP0_SWP_32BPP (1 << 21)
  73. #       define R5XX_NONSURF_AP1_SWP_16BPP (1 << 22)
  74. #       define R5XX_NONSURF_AP1_SWP_32BPP (1 << 23)
  75.  
  76. #define R5XX_SURFACE0_INFO                0x0b0c
  77. #       define R5XX_SURF_TILE_COLOR_MACRO (0 << 16)
  78. #       define R5XX_SURF_TILE_COLOR_BOTH  (1 << 16)
  79. #       define R5XX_SURF_TILE_DEPTH_32BPP (2 << 16)
  80. #       define R5XX_SURF_TILE_DEPTH_16BPP (3 << 16)
  81. #       define R5XX_SURF_AP0_SWP_16BPP    (1 << 20)
  82. #       define R5XX_SURF_AP0_SWP_32BPP    (1 << 21)
  83. #       define R5XX_SURF_AP1_SWP_16BPP    (1 << 22)
  84. #       define R5XX_SURF_AP1_SWP_32BPP    (1 << 23)
  85. #define R5XX_SURFACE0_LOWER_BOUND         0x0b04
  86. #define R5XX_SURFACE0_UPPER_BOUND         0x0b08
  87.  
  88. #define R5XX_RBBM_STATUS                  0x0e40
  89. #       define R5XX_RBBM_FIFOCNT_MASK     0x007f
  90. #       define R5XX_RBBM_ACTIVE           (1 << 31)
  91.  
  92. #define R5XX_SRC_PITCH_OFFSET             0x1428
  93. #define R5XX_DST_PITCH_OFFSET             0x142c
  94.  
  95. #define R5XX_SRC_Y_X                      0x1434
  96. #define R5XX_DST_Y_X                      0x1438
  97. #define R5XX_DST_HEIGHT_WIDTH             0x143c
  98.  
  99. #define R5XX_DP_GUI_MASTER_CNTL           0x146c
  100. #       define R5XX_GMC_SRC_PITCH_OFFSET_CNTL   (1    <<  0)
  101. #       define R5XX_GMC_DST_PITCH_OFFSET_CNTL   (1    <<  1)
  102. #       define R5XX_GMC_SRC_CLIPPING            (1    <<  2)
  103. #       define R5XX_GMC_DST_CLIPPING            (1    <<  3)
  104. #       define R5XX_GMC_BRUSH_DATATYPE_MASK     (0x0f <<  4)
  105. #       define R5XX_GMC_BRUSH_8X8_MONO_FG_BG    (0    <<  4)
  106. #       define R5XX_GMC_BRUSH_8X8_MONO_FG_LA    (1    <<  4)
  107. #       define R5XX_GMC_BRUSH_1X8_MONO_FG_BG    (4    <<  4)
  108. #       define R5XX_GMC_BRUSH_1X8_MONO_FG_LA    (5    <<  4)
  109. #       define R5XX_GMC_BRUSH_32x1_MONO_FG_BG   (6    <<  4)
  110. #       define R5XX_GMC_BRUSH_32x1_MONO_FG_LA   (7    <<  4)
  111. #       define R5XX_GMC_BRUSH_32x32_MONO_FG_BG  (8    <<  4)
  112. #       define R5XX_GMC_BRUSH_32x32_MONO_FG_LA  (9    <<  4)
  113. #       define R5XX_GMC_BRUSH_8x8_COLOR         (10   <<  4)
  114. #       define R5XX_GMC_BRUSH_1X8_COLOR         (12   <<  4)
  115. #       define R5XX_GMC_BRUSH_SOLID_COLOR       (13   <<  4)
  116. #       define R5XX_GMC_BRUSH_NONE              (15   <<  4)
  117. #       define R5XX_GMC_DST_8BPP_CI             (2    <<  8)
  118. #       define R5XX_GMC_DST_15BPP               (3    <<  8)
  119. #       define R5XX_GMC_DST_16BPP               (4    <<  8)
  120. #       define R5XX_GMC_DST_24BPP               (5    <<  8)
  121. #       define R5XX_GMC_DST_32BPP               (6    <<  8)
  122. #       define R5XX_GMC_DST_8BPP_RGB            (7    <<  8)
  123. #       define R5XX_GMC_DST_Y8                  (8    <<  8)
  124. #       define R5XX_GMC_DST_RGB8                (9    <<  8)
  125. #       define R5XX_GMC_DST_VYUY                (11   <<  8)
  126. #       define R5XX_GMC_DST_YVYU                (12   <<  8)
  127. #       define R5XX_GMC_DST_AYUV444             (14   <<  8)
  128. #       define R5XX_GMC_DST_ARGB4444            (15   <<  8)
  129. #       define R5XX_GMC_DST_DATATYPE_MASK       (0x0f <<  8)
  130. #       define R5XX_GMC_DST_DATATYPE_SHIFT      8
  131. #       define R5XX_GMC_SRC_DATATYPE_MASK       (3    << 12)
  132. #       define R5XX_GMC_SRC_DATATYPE_MONO_FG_BG (0    << 12)
  133. #       define R5XX_GMC_SRC_DATATYPE_MONO_FG_LA (1    << 12)
  134. #       define R5XX_GMC_SRC_DATATYPE_COLOR      (3    << 12)
  135. #       define R5XX_GMC_BYTE_PIX_ORDER          (1    << 14)
  136. #       define R5XX_GMC_BYTE_MSB_TO_LSB         (0    << 14)
  137. #       define R5XX_GMC_BYTE_LSB_TO_MSB         (1    << 14)
  138. #       define R5XX_GMC_CONVERSION_TEMP         (1    << 15)
  139. #       define R5XX_GMC_CONVERSION_TEMP_6500    (0    << 15)
  140. #       define R5XX_GMC_CONVERSION_TEMP_9300    (1    << 15)
  141. #       define R5XX_GMC_ROP3_MASK               (0xff << 16)
  142. #       define R5XX_DP_SRC_SOURCE_MASK          (7    << 24)
  143. #       define R5XX_DP_SRC_SOURCE_MEMORY        (2    << 24)
  144. #       define R5XX_DP_SRC_SOURCE_HOST_DATA     (3    << 24)
  145. #       define R5XX_GMC_3D_FCN_EN               (1    << 27)
  146. #       define R5XX_GMC_CLR_CMP_CNTL_DIS        (1    << 28)
  147. #       define R5XX_GMC_AUX_CLIP_DIS            (1    << 29)
  148. #       define R5XX_GMC_WR_MSK_DIS              (1    << 30)
  149. #       define R5XX_GMC_LD_BRUSH_Y_X            (1    << 31)
  150. #       define R5XX_ROP3_ZERO             0x00000000
  151. #       define R5XX_ROP3_DSa              0x00880000
  152. #       define R5XX_ROP3_SDna             0x00440000
  153. #       define R5XX_ROP3_S                0x00cc0000
  154. #       define R5XX_ROP3_DSna             0x00220000
  155. #       define R5XX_ROP3_D                0x00aa0000
  156. #       define R5XX_ROP3_DSx              0x00660000
  157. #       define R5XX_ROP3_DSo              0x00ee0000
  158. #       define R5XX_ROP3_DSon             0x00110000
  159. #       define R5XX_ROP3_DSxn             0x00990000
  160. #       define R5XX_ROP3_Dn               0x00550000
  161. #       define R5XX_ROP3_SDno             0x00dd0000
  162. #       define R5XX_ROP3_Sn               0x00330000
  163. #       define R5XX_ROP3_DSno             0x00bb0000
  164. #       define R5XX_ROP3_DSan             0x00770000
  165. #       define R5XX_ROP3_ONE              0x00ff0000
  166. #       define R5XX_ROP3_DPa              0x00a00000
  167. #       define R5XX_ROP3_PDna             0x00500000
  168. #       define R5XX_ROP3_P                0x00f00000
  169. #       define R5XX_ROP3_DPna             0x000a0000
  170. #       define R5XX_ROP3_D                0x00aa0000
  171. #       define R5XX_ROP3_DPx              0x005a0000
  172. #       define R5XX_ROP3_DPo              0x00fa0000
  173. #       define R5XX_ROP3_DPon             0x00050000
  174. #       define R5XX_ROP3_PDxn             0x00a50000
  175. #       define R5XX_ROP3_PDno             0x00f50000
  176. #       define R5XX_ROP3_Pn               0x000f0000
  177. #       define R5XX_ROP3_DPno             0x00af0000
  178. #       define R5XX_ROP3_DPan             0x005f0000
  179.  
  180. #define R5XX_BRUSH_Y_X                    0x1474
  181. #define R5XX_DP_BRUSH_BKGD_CLR            0x1478
  182. #define R5XX_DP_BRUSH_FRGD_CLR            0x147c
  183. #define R5XX_BRUSH_DATA0                  0x1480
  184. #define R5XX_BRUSH_DATA1                  0x1484
  185.  
  186. #define R5XX_DST_WIDTH_HEIGHT             0x1598
  187.  
  188. #define R5XX_CLR_CMP_CNTL                 0x15c0
  189. #       define R5XX_SRC_CMP_EQ_COLOR      (4 <<  0)
  190. #       define R5XX_SRC_CMP_NEQ_COLOR     (5 <<  0)
  191. #       define R5XX_CLR_CMP_SRC_SOURCE    (1 << 24)
  192.  
  193. #define R5XX_CLR_CMP_CLR_SRC              0x15c4
  194.  
  195. #define R5XX_CLR_CMP_MASK                 0x15cc
  196. #       define R5XX_CLR_CMP_MSK           0xffffffff
  197.  
  198. #define R5XX_DP_SRC_BKGD_CLR              0x15dc
  199. #define R5XX_DP_SRC_FRGD_CLR              0x15d8
  200.  
  201. #define R5XX_DST_LINE_START               0x1600
  202. #define R5XX_DST_LINE_END                 0x1604
  203. #define R5XX_DST_LINE_PATCOUNT            0x1608
  204. #       define R5XX_BRES_CNTL_SHIFT       8
  205.  
  206. #define R5XX_DP_CNTL                      0x16c0
  207. #       define R5XX_DST_X_LEFT_TO_RIGHT   (1 <<  0)
  208. #       define R5XX_DST_Y_TOP_TO_BOTTOM   (1 <<  1)
  209. #       define R5XX_DP_DST_TILE_LINEAR    (0 <<  3)
  210. #       define R5XX_DP_DST_TILE_MACRO     (1 <<  3)
  211. #       define R5XX_DP_DST_TILE_MICRO     (2 <<  3)
  212. #       define R5XX_DP_DST_TILE_BOTH      (3 <<  3)
  213.  
  214. #define R5XX_DP_DATATYPE                  0x16c4
  215. #       define R5XX_HOST_BIG_ENDIAN_EN    (1 << 29)
  216.  
  217. #define R5XX_DP_WRITE_MASK                0x16cc
  218.  
  219. #define R5XX_DEFAULT_SC_BOTTOM_RIGHT      0x16e8
  220. #       define R5XX_DEFAULT_SC_RIGHT_MAX  (0x1fff <<  0)
  221. #       define R5XX_DEFAULT_SC_BOTTOM_MAX (0x1fff << 16)
  222.  
  223. #define R5XX_SC_TOP_LEFT                  0x16ec
  224. #define R5XX_SC_BOTTOM_RIGHT              0x16f0
  225. #       define R5XX_SC_SIGN_MASK_LO       0x8000
  226. #       define R5XX_SC_SIGN_MASK_HI       0x80000000
  227.  
  228. #define R5XX_RBBM_GUICNTL                 0x172c
  229. #       define R5XX_HOST_DATA_SWAP_NONE   (0 << 0)
  230. #       define R5XX_HOST_DATA_SWAP_16BIT  (1 << 0)
  231. #       define R5XX_HOST_DATA_SWAP_32BIT  (2 << 0)
  232. #       define R5XX_HOST_DATA_SWAP_HDW    (3 << 0)
  233.  
  234. #define R5XX_HOST_DATA0                   0x17c0
  235. #define R5XX_HOST_DATA1                   0x17c4
  236. #define R5XX_HOST_DATA2                   0x17c8
  237. #define R5XX_HOST_DATA3                   0x17cc
  238. #define R5XX_HOST_DATA4                   0x17d0
  239. #define R5XX_HOST_DATA5                   0x17d4
  240. #define R5XX_HOST_DATA6                   0x17d8
  241. #define R5XX_HOST_DATA7                   0x17dc
  242. #define R5XX_HOST_DATA_LAST               0x17e0
  243.  
  244. #define R5XX_RB3D_CNTL                    0x1c3c
  245. #       define R5XX_ALPHA_BLEND_ENABLE       (1  <<  0)
  246. #       define R5XX_PLANE_MASK_ENABLE        (1  <<  1)
  247. #       define R5XX_DITHER_ENABLE            (1  <<  2)
  248. #       define R5XX_ROUND_ENABLE             (1  <<  3)
  249. #       define R5XX_SCALE_DITHER_ENABLE      (1  <<  4)
  250. #       define R5XX_DITHER_INIT              (1  <<  5)
  251. #       define R5XX_ROP_ENABLE               (1  <<  6)
  252. #       define R5XX_STENCIL_ENABLE           (1  <<  7)
  253. #       define R5XX_Z_ENABLE                 (1  <<  8)
  254. #       define R5XX_DEPTH_XZ_OFFEST_ENABLE   (1  <<  9)
  255. #       define R5XX_COLOR_FORMAT_ARGB1555    (3  << 10)
  256. #       define R5XX_COLOR_FORMAT_RGB565      (4  << 10)
  257. #       define R5XX_COLOR_FORMAT_ARGB8888    (6  << 10)
  258. #       define R5XX_COLOR_FORMAT_RGB332      (7  << 10)
  259. #       define R5XX_COLOR_FORMAT_Y8          (8  << 10)
  260. #       define R5XX_COLOR_FORMAT_RGB8        (9  << 10)
  261. #       define R5XX_COLOR_FORMAT_YUV422_VYUY (11 << 10)
  262. #       define R5XX_COLOR_FORMAT_YUV422_YVYU (12 << 10)
  263. #       define R5XX_COLOR_FORMAT_aYUV444     (14 << 10)
  264. #       define R5XX_COLOR_FORMAT_ARGB4444    (15 << 10)
  265. #       define R5XX_CLRCMP_FLIP_ENABLE       (1  << 14)
  266.  
  267. #define R5XX_RB3D_DSTCACHE_CTLSTAT        0x325C
  268. #       define R5XX_RB3D_DC_FLUSH         (3 << 0)
  269. #       define R5XX_RB3D_DC_FREE          (3 << 2)
  270. #       define R5XX_RB3D_DC_FLUSH_ALL     0xf
  271. #       define R5XX_RB3D_DC_BUSY          (1 << 31)
  272.  
  273. #define R5XX_RB3D_DSTCACHE_MODE           0x3258
  274. # define R5XX_RB3D_DC_CACHE_ENABLE            (0)
  275. # define R5XX_RB3D_DC_2D_CACHE_DISABLE        (1)
  276. # define R5XX_RB3D_DC_3D_CACHE_DISABLE        (2)
  277. # define R5XX_RB3D_DC_CACHE_DISABLE           (3)
  278. # define R5XX_RB3D_DC_2D_CACHE_LINESIZE_128   (1 << 2)
  279. # define R5XX_RB3D_DC_3D_CACHE_LINESIZE_128   (2 << 2)
  280. # define R5XX_RB3D_DC_2D_CACHE_AUTOFLUSH      (1 << 8)
  281. # define R5XX_RB3D_DC_3D_CACHE_AUTOFLUSH      (2 << 8)
  282. # define R200_RB3D_DC_2D_CACHE_AUTOFREE       (1 << 10)
  283. # define R200_RB3D_DC_3D_CACHE_AUTOFREE       (2 << 10)
  284. # define R5XX_RB3D_DC_FORCE_RMW               (1 << 16)
  285. # define R5XX_RB3D_DC_DISABLE_RI_FILL         (1 << 24)
  286. # define R5XX_RB3D_DC_DISABLE_RI_READ         (1 << 25)
  287.  
  288. #endif /* _R5XX_2DREGS_H */
  289.