xref: /aosp_15_r20/external/mesa3d/src/nouveau/headers/nvidia/classes/cl5039.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright (c) 2003-2004, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  */
22 
23 #ifndef _cl_nv50_memory_to_memory_format_h_
24 #define _cl_nv50_memory_to_memory_format_h_
25 
26 /* This file is generated - do not edit. */
27 
28 #include "nvtypes.h"
29 
30 #define NV50_MEMORY_TO_MEMORY_FORMAT    0x5039
31 
32 #define NV5039_SET_OBJECT                                                                                  0x0000
33 #define NV5039_SET_OBJECT_POINTER                                                                            15:0
34 
35 #define NV5039_NO_OPERATION                                                                                0x0100
36 #define NV5039_NO_OPERATION_V                                                                                31:0
37 
38 #define NV5039_NOTIFY                                                                                      0x0104
39 #define NV5039_NOTIFY_TYPE                                                                                   31:0
40 #define NV5039_NOTIFY_TYPE_WRITE_ONLY                                                                  0x00000000
41 #define NV5039_NOTIFY_TYPE_WRITE_THEN_AWAKEN                                                           0x00000001
42 
43 #define NV5039_WAIT_FOR_IDLE                                                                               0x0110
44 #define NV5039_WAIT_FOR_IDLE_V                                                                               31:0
45 
46 #define NV5039_PM_TRIGGER                                                                                  0x0140
47 #define NV5039_PM_TRIGGER_V                                                                                  31:0
48 
49 #define NV5039_SET_CONTEXT_DMA_NOTIFY                                                                      0x0180
50 #define NV5039_SET_CONTEXT_DMA_NOTIFY_HANDLE                                                                 31:0
51 
52 #define NV5039_SET_CONTEXT_DMA_BUFFER_IN                                                                   0x0184
53 #define NV5039_SET_CONTEXT_DMA_BUFFER_IN_HANDLE                                                              31:0
54 
55 #define NV5039_SET_CONTEXT_DMA_BUFFER_OUT                                                                  0x0188
56 #define NV5039_SET_CONTEXT_DMA_BUFFER_OUT_HANDLE                                                             31:0
57 
58 #define NV5039_SET_SRC_MEMORY_LAYOUT                                                                       0x0200
59 #define NV5039_SET_SRC_MEMORY_LAYOUT_V                                                                        0:0
60 #define NV5039_SET_SRC_MEMORY_LAYOUT_V_BLOCKLINEAR                                                     0x00000000
61 #define NV5039_SET_SRC_MEMORY_LAYOUT_V_PITCH                                                           0x00000001
62 
63 #define NV5039_SET_SRC_BLOCK_SIZE                                                                          0x0204
64 #define NV5039_SET_SRC_BLOCK_SIZE_WIDTH                                                                       3:0
65 #define NV5039_SET_SRC_BLOCK_SIZE_WIDTH_ONE_GOB                                                        0x00000000
66 #define NV5039_SET_SRC_BLOCK_SIZE_HEIGHT                                                                      7:4
67 #define NV5039_SET_SRC_BLOCK_SIZE_HEIGHT_ONE_GOB                                                       0x00000000
68 #define NV5039_SET_SRC_BLOCK_SIZE_HEIGHT_TWO_GOBS                                                      0x00000001
69 #define NV5039_SET_SRC_BLOCK_SIZE_HEIGHT_FOUR_GOBS                                                     0x00000002
70 #define NV5039_SET_SRC_BLOCK_SIZE_HEIGHT_EIGHT_GOBS                                                    0x00000003
71 #define NV5039_SET_SRC_BLOCK_SIZE_HEIGHT_SIXTEEN_GOBS                                                  0x00000004
72 #define NV5039_SET_SRC_BLOCK_SIZE_HEIGHT_THIRTYTWO_GOBS                                                0x00000005
73 #define NV5039_SET_SRC_BLOCK_SIZE_DEPTH                                                                      11:8
74 #define NV5039_SET_SRC_BLOCK_SIZE_DEPTH_ONE_GOB                                                        0x00000000
75 #define NV5039_SET_SRC_BLOCK_SIZE_DEPTH_TWO_GOBS                                                       0x00000001
76 #define NV5039_SET_SRC_BLOCK_SIZE_DEPTH_FOUR_GOBS                                                      0x00000002
77 #define NV5039_SET_SRC_BLOCK_SIZE_DEPTH_EIGHT_GOBS                                                     0x00000003
78 #define NV5039_SET_SRC_BLOCK_SIZE_DEPTH_SIXTEEN_GOBS                                                   0x00000004
79 #define NV5039_SET_SRC_BLOCK_SIZE_DEPTH_THIRTYTWO_GOBS                                                 0x00000005
80 
81 #define NV5039_SET_SRC_WIDTH                                                                               0x0208
82 #define NV5039_SET_SRC_WIDTH_V                                                                               31:0
83 
84 #define NV5039_SET_SRC_HEIGHT                                                                              0x020c
85 #define NV5039_SET_SRC_HEIGHT_V                                                                              31:0
86 
87 #define NV5039_SET_SRC_DEPTH                                                                               0x0210
88 #define NV5039_SET_SRC_DEPTH_V                                                                               31:0
89 
90 #define NV5039_SET_SRC_LAYER                                                                               0x0214
91 #define NV5039_SET_SRC_LAYER_V                                                                               31:0
92 
93 #define NV5039_SET_SRC_ORIGIN                                                                              0x0218
94 #define NV5039_SET_SRC_ORIGIN_X                                                                              15:0
95 #define NV5039_SET_SRC_ORIGIN_Y                                                                             31:16
96 
97 #define NV5039_SET_DST_MEMORY_LAYOUT                                                                       0x021c
98 #define NV5039_SET_DST_MEMORY_LAYOUT_V                                                                        0:0
99 #define NV5039_SET_DST_MEMORY_LAYOUT_V_BLOCKLINEAR                                                     0x00000000
100 #define NV5039_SET_DST_MEMORY_LAYOUT_V_PITCH                                                           0x00000001
101 
102 #define NV5039_SET_DST_BLOCK_SIZE                                                                          0x0220
103 #define NV5039_SET_DST_BLOCK_SIZE_WIDTH                                                                       3:0
104 #define NV5039_SET_DST_BLOCK_SIZE_WIDTH_ONE_GOB                                                        0x00000000
105 #define NV5039_SET_DST_BLOCK_SIZE_HEIGHT                                                                      7:4
106 #define NV5039_SET_DST_BLOCK_SIZE_HEIGHT_ONE_GOB                                                       0x00000000
107 #define NV5039_SET_DST_BLOCK_SIZE_HEIGHT_TWO_GOBS                                                      0x00000001
108 #define NV5039_SET_DST_BLOCK_SIZE_HEIGHT_FOUR_GOBS                                                     0x00000002
109 #define NV5039_SET_DST_BLOCK_SIZE_HEIGHT_EIGHT_GOBS                                                    0x00000003
110 #define NV5039_SET_DST_BLOCK_SIZE_HEIGHT_SIXTEEN_GOBS                                                  0x00000004
111 #define NV5039_SET_DST_BLOCK_SIZE_HEIGHT_THIRTYTWO_GOBS                                                0x00000005
112 #define NV5039_SET_DST_BLOCK_SIZE_DEPTH                                                                      11:8
113 #define NV5039_SET_DST_BLOCK_SIZE_DEPTH_ONE_GOB                                                        0x00000000
114 #define NV5039_SET_DST_BLOCK_SIZE_DEPTH_TWO_GOBS                                                       0x00000001
115 #define NV5039_SET_DST_BLOCK_SIZE_DEPTH_FOUR_GOBS                                                      0x00000002
116 #define NV5039_SET_DST_BLOCK_SIZE_DEPTH_EIGHT_GOBS                                                     0x00000003
117 #define NV5039_SET_DST_BLOCK_SIZE_DEPTH_SIXTEEN_GOBS                                                   0x00000004
118 #define NV5039_SET_DST_BLOCK_SIZE_DEPTH_THIRTYTWO_GOBS                                                 0x00000005
119 
120 #define NV5039_SET_DST_WIDTH                                                                               0x0224
121 #define NV5039_SET_DST_WIDTH_V                                                                               31:0
122 
123 #define NV5039_SET_DST_HEIGHT                                                                              0x0228
124 #define NV5039_SET_DST_HEIGHT_V                                                                              31:0
125 
126 #define NV5039_SET_DST_DEPTH                                                                               0x022c
127 #define NV5039_SET_DST_DEPTH_V                                                                               31:0
128 
129 #define NV5039_SET_DST_LAYER                                                                               0x0230
130 #define NV5039_SET_DST_LAYER_V                                                                               31:0
131 
132 #define NV5039_SET_DST_ORIGIN                                                                              0x0234
133 #define NV5039_SET_DST_ORIGIN_X                                                                              15:0
134 #define NV5039_SET_DST_ORIGIN_Y                                                                             31:16
135 
136 #define NV5039_OFFSET_IN_UPPER                                                                             0x0238
137 #define NV5039_OFFSET_IN_UPPER_VALUE                                                                          7:0
138 
139 #define NV5039_OFFSET_OUT_UPPER                                                                            0x023c
140 #define NV5039_OFFSET_OUT_UPPER_VALUE                                                                         7:0
141 
142 #define NV5039_OFFSET_IN                                                                                   0x030c
143 #define NV5039_OFFSET_IN_VALUE                                                                               31:0
144 
145 #define NV5039_OFFSET_OUT                                                                                  0x0310
146 #define NV5039_OFFSET_OUT_VALUE                                                                              31:0
147 
148 #define NV5039_PITCH_IN                                                                                    0x0314
149 #define NV5039_PITCH_IN_VALUE                                                                                31:0
150 
151 #define NV5039_PITCH_OUT                                                                                   0x0318
152 #define NV5039_PITCH_OUT_VALUE                                                                               31:0
153 
154 #define NV5039_LINE_LENGTH_IN                                                                              0x031c
155 #define NV5039_LINE_LENGTH_IN_VALUE                                                                          31:0
156 
157 #define NV5039_LINE_COUNT                                                                                  0x0320
158 #define NV5039_LINE_COUNT_VALUE                                                                              31:0
159 
160 #define NV5039_FORMAT                                                                                      0x0324
161 #define NV5039_FORMAT_IN                                                                                      7:0
162 #define NV5039_FORMAT_IN_ONE                                                                           0x00000001
163 // removing options greater than _ONE due to hardware bug 294038.
164 // it is POSSIBLE to use them, but doing so will require some nasty workarounds,
165 // such as handling timeouts on notifiers that the HW will fail to write.
166 // as of july 2007, no driver needs them. hopefully they never will.
167 // #define NV5039_FORMAT_IN_TWO                                                                           0x00000002
168 // #define NV5039_FORMAT_IN_FOUR                                                                          0x00000004
169 // #define NV5039_FORMAT_IN_EIGHT                                                                         0x00000008
170 // #define NV5039_FORMAT_IN_SIXTEEN                                                                       0x00000010
171 #define NV5039_FORMAT_OUT                                                                                    15:8
172 #define NV5039_FORMAT_OUT_ONE                                                                          0x00000001
173 // #define NV5039_FORMAT_OUT_TWO                                                                          0x00000002
174 // #define NV5039_FORMAT_OUT_FOUR                                                                         0x00000004
175 // #define NV5039_FORMAT_OUT_EIGHT                                                                        0x00000008
176 // #define NV5039_FORMAT_OUT_SIXTEEN                                                                      0x00000010
177 
178 #define NV5039_BUFFER_NOTIFY                                                                               0x0328
179 #define NV5039_BUFFER_NOTIFY_TYPE                                                                            31:0
180 #define NV5039_BUFFER_NOTIFY_TYPE_WRITE_ONLY                                                           0x00000000
181 #define NV5039_BUFFER_NOTIFY_TYPE_WRITE_THEN_AWAKEN                                                    0x00000001
182 
183 #endif /* _cl_nv50_memory_to_memory_format_h_ */
184