diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_asic.h')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_asic.h | 253 |
1 files changed, 52 insertions, 201 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h index c8a4e7b5663..c3532c7a6f3 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.h +++ b/drivers/gpu/drm/radeon/radeon_asic.h | |||
@@ -41,28 +41,17 @@ void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable); | |||
41 | /* | 41 | /* |
42 | * r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 | 42 | * r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 |
43 | */ | 43 | */ |
44 | int r100_init(struct radeon_device *rdev); | 44 | extern int r100_init(struct radeon_device *rdev); |
45 | int r200_init(struct radeon_device *rdev); | 45 | extern void r100_fini(struct radeon_device *rdev); |
46 | extern int r100_suspend(struct radeon_device *rdev); | ||
47 | extern int r100_resume(struct radeon_device *rdev); | ||
46 | uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg); | 48 | uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg); |
47 | void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); | 49 | void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); |
48 | void r100_errata(struct radeon_device *rdev); | ||
49 | void r100_vram_info(struct radeon_device *rdev); | ||
50 | void r100_vga_set_state(struct radeon_device *rdev, bool state); | 50 | void r100_vga_set_state(struct radeon_device *rdev, bool state); |
51 | int r100_gpu_reset(struct radeon_device *rdev); | 51 | int r100_gpu_reset(struct radeon_device *rdev); |
52 | int r100_mc_init(struct radeon_device *rdev); | ||
53 | void r100_mc_fini(struct radeon_device *rdev); | ||
54 | u32 r100_get_vblank_counter(struct radeon_device *rdev, int crtc); | 52 | u32 r100_get_vblank_counter(struct radeon_device *rdev, int crtc); |
55 | int r100_wb_init(struct radeon_device *rdev); | ||
56 | void r100_wb_fini(struct radeon_device *rdev); | ||
57 | int r100_pci_gart_init(struct radeon_device *rdev); | ||
58 | void r100_pci_gart_fini(struct radeon_device *rdev); | ||
59 | int r100_pci_gart_enable(struct radeon_device *rdev); | ||
60 | void r100_pci_gart_disable(struct radeon_device *rdev); | ||
61 | void r100_pci_gart_tlb_flush(struct radeon_device *rdev); | 53 | void r100_pci_gart_tlb_flush(struct radeon_device *rdev); |
62 | int r100_pci_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); | 54 | int r100_pci_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); |
63 | int r100_cp_init(struct radeon_device *rdev, unsigned ring_size); | ||
64 | void r100_cp_fini(struct radeon_device *rdev); | ||
65 | void r100_cp_disable(struct radeon_device *rdev); | ||
66 | void r100_cp_commit(struct radeon_device *rdev); | 55 | void r100_cp_commit(struct radeon_device *rdev); |
67 | void r100_ring_start(struct radeon_device *rdev); | 56 | void r100_ring_start(struct radeon_device *rdev); |
68 | int r100_irq_set(struct radeon_device *rdev); | 57 | int r100_irq_set(struct radeon_device *rdev); |
@@ -83,33 +72,21 @@ int r100_set_surface_reg(struct radeon_device *rdev, int reg, | |||
83 | int r100_clear_surface_reg(struct radeon_device *rdev, int reg); | 72 | int r100_clear_surface_reg(struct radeon_device *rdev, int reg); |
84 | void r100_bandwidth_update(struct radeon_device *rdev); | 73 | void r100_bandwidth_update(struct radeon_device *rdev); |
85 | void r100_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib); | 74 | void r100_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib); |
86 | int r100_ib_test(struct radeon_device *rdev); | ||
87 | int r100_ring_test(struct radeon_device *rdev); | 75 | int r100_ring_test(struct radeon_device *rdev); |
88 | 76 | ||
89 | static struct radeon_asic r100_asic = { | 77 | static struct radeon_asic r100_asic = { |
90 | .init = &r100_init, | 78 | .init = &r100_init, |
91 | .errata = &r100_errata, | 79 | .fini = &r100_fini, |
92 | .vram_info = &r100_vram_info, | 80 | .suspend = &r100_suspend, |
81 | .resume = &r100_resume, | ||
93 | .vga_set_state = &r100_vga_set_state, | 82 | .vga_set_state = &r100_vga_set_state, |
94 | .gpu_reset = &r100_gpu_reset, | 83 | .gpu_reset = &r100_gpu_reset, |
95 | .mc_init = &r100_mc_init, | ||
96 | .mc_fini = &r100_mc_fini, | ||
97 | .wb_init = &r100_wb_init, | ||
98 | .wb_fini = &r100_wb_fini, | ||
99 | .gart_init = &r100_pci_gart_init, | ||
100 | .gart_fini = &r100_pci_gart_fini, | ||
101 | .gart_enable = &r100_pci_gart_enable, | ||
102 | .gart_disable = &r100_pci_gart_disable, | ||
103 | .gart_tlb_flush = &r100_pci_gart_tlb_flush, | 84 | .gart_tlb_flush = &r100_pci_gart_tlb_flush, |
104 | .gart_set_page = &r100_pci_gart_set_page, | 85 | .gart_set_page = &r100_pci_gart_set_page, |
105 | .cp_init = &r100_cp_init, | ||
106 | .cp_fini = &r100_cp_fini, | ||
107 | .cp_disable = &r100_cp_disable, | ||
108 | .cp_commit = &r100_cp_commit, | 86 | .cp_commit = &r100_cp_commit, |
109 | .ring_start = &r100_ring_start, | 87 | .ring_start = &r100_ring_start, |
110 | .ring_test = &r100_ring_test, | 88 | .ring_test = &r100_ring_test, |
111 | .ring_ib_execute = &r100_ring_ib_execute, | 89 | .ring_ib_execute = &r100_ring_ib_execute, |
112 | .ib_test = &r100_ib_test, | ||
113 | .irq_set = &r100_irq_set, | 90 | .irq_set = &r100_irq_set, |
114 | .irq_process = &r100_irq_process, | 91 | .irq_process = &r100_irq_process, |
115 | .get_vblank_counter = &r100_get_vblank_counter, | 92 | .get_vblank_counter = &r100_get_vblank_counter, |
@@ -131,55 +108,38 @@ static struct radeon_asic r100_asic = { | |||
131 | /* | 108 | /* |
132 | * r300,r350,rv350,rv380 | 109 | * r300,r350,rv350,rv380 |
133 | */ | 110 | */ |
134 | int r300_init(struct radeon_device *rdev); | 111 | extern int r300_init(struct radeon_device *rdev); |
135 | void r300_errata(struct radeon_device *rdev); | 112 | extern void r300_fini(struct radeon_device *rdev); |
136 | void r300_vram_info(struct radeon_device *rdev); | 113 | extern int r300_suspend(struct radeon_device *rdev); |
137 | int r300_gpu_reset(struct radeon_device *rdev); | 114 | extern int r300_resume(struct radeon_device *rdev); |
138 | int r300_mc_init(struct radeon_device *rdev); | 115 | extern int r300_gpu_reset(struct radeon_device *rdev); |
139 | void r300_mc_fini(struct radeon_device *rdev); | 116 | extern void r300_ring_start(struct radeon_device *rdev); |
140 | void r300_ring_start(struct radeon_device *rdev); | 117 | extern void r300_fence_ring_emit(struct radeon_device *rdev, |
141 | void r300_fence_ring_emit(struct radeon_device *rdev, | 118 | struct radeon_fence *fence); |
142 | struct radeon_fence *fence); | 119 | extern int r300_cs_parse(struct radeon_cs_parser *p); |
143 | int r300_cs_parse(struct radeon_cs_parser *p); | 120 | extern void rv370_pcie_gart_tlb_flush(struct radeon_device *rdev); |
144 | int rv370_pcie_gart_init(struct radeon_device *rdev); | 121 | extern int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); |
145 | void rv370_pcie_gart_fini(struct radeon_device *rdev); | 122 | extern uint32_t rv370_pcie_rreg(struct radeon_device *rdev, uint32_t reg); |
146 | int rv370_pcie_gart_enable(struct radeon_device *rdev); | 123 | extern void rv370_pcie_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); |
147 | void rv370_pcie_gart_disable(struct radeon_device *rdev); | 124 | extern void rv370_set_pcie_lanes(struct radeon_device *rdev, int lanes); |
148 | void rv370_pcie_gart_tlb_flush(struct radeon_device *rdev); | 125 | extern int r300_copy_dma(struct radeon_device *rdev, |
149 | int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); | 126 | uint64_t src_offset, |
150 | uint32_t rv370_pcie_rreg(struct radeon_device *rdev, uint32_t reg); | 127 | uint64_t dst_offset, |
151 | void rv370_pcie_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); | 128 | unsigned num_pages, |
152 | void rv370_set_pcie_lanes(struct radeon_device *rdev, int lanes); | 129 | struct radeon_fence *fence); |
153 | int r300_copy_dma(struct radeon_device *rdev, | ||
154 | uint64_t src_offset, | ||
155 | uint64_t dst_offset, | ||
156 | unsigned num_pages, | ||
157 | struct radeon_fence *fence); | ||
158 | |||
159 | static struct radeon_asic r300_asic = { | 130 | static struct radeon_asic r300_asic = { |
160 | .init = &r300_init, | 131 | .init = &r300_init, |
161 | .errata = &r300_errata, | 132 | .fini = &r300_fini, |
162 | .vram_info = &r300_vram_info, | 133 | .suspend = &r300_suspend, |
134 | .resume = &r300_resume, | ||
163 | .vga_set_state = &r100_vga_set_state, | 135 | .vga_set_state = &r100_vga_set_state, |
164 | .gpu_reset = &r300_gpu_reset, | 136 | .gpu_reset = &r300_gpu_reset, |
165 | .mc_init = &r300_mc_init, | ||
166 | .mc_fini = &r300_mc_fini, | ||
167 | .wb_init = &r100_wb_init, | ||
168 | .wb_fini = &r100_wb_fini, | ||
169 | .gart_init = &r100_pci_gart_init, | ||
170 | .gart_fini = &r100_pci_gart_fini, | ||
171 | .gart_enable = &r100_pci_gart_enable, | ||
172 | .gart_disable = &r100_pci_gart_disable, | ||
173 | .gart_tlb_flush = &r100_pci_gart_tlb_flush, | 137 | .gart_tlb_flush = &r100_pci_gart_tlb_flush, |
174 | .gart_set_page = &r100_pci_gart_set_page, | 138 | .gart_set_page = &r100_pci_gart_set_page, |
175 | .cp_init = &r100_cp_init, | ||
176 | .cp_fini = &r100_cp_fini, | ||
177 | .cp_disable = &r100_cp_disable, | ||
178 | .cp_commit = &r100_cp_commit, | 139 | .cp_commit = &r100_cp_commit, |
179 | .ring_start = &r300_ring_start, | 140 | .ring_start = &r300_ring_start, |
180 | .ring_test = &r100_ring_test, | 141 | .ring_test = &r100_ring_test, |
181 | .ring_ib_execute = &r100_ring_ib_execute, | 142 | .ring_ib_execute = &r100_ring_ib_execute, |
182 | .ib_test = &r100_ib_test, | ||
183 | .irq_set = &r100_irq_set, | 143 | .irq_set = &r100_irq_set, |
184 | .irq_process = &r100_irq_process, | 144 | .irq_process = &r100_irq_process, |
185 | .get_vblank_counter = &r100_get_vblank_counter, | 145 | .get_vblank_counter = &r100_get_vblank_counter, |
@@ -209,26 +169,14 @@ static struct radeon_asic r420_asic = { | |||
209 | .fini = &r420_fini, | 169 | .fini = &r420_fini, |
210 | .suspend = &r420_suspend, | 170 | .suspend = &r420_suspend, |
211 | .resume = &r420_resume, | 171 | .resume = &r420_resume, |
212 | .errata = NULL, | ||
213 | .vram_info = NULL, | ||
214 | .vga_set_state = &r100_vga_set_state, | 172 | .vga_set_state = &r100_vga_set_state, |
215 | .gpu_reset = &r300_gpu_reset, | 173 | .gpu_reset = &r300_gpu_reset, |
216 | .mc_init = NULL, | ||
217 | .mc_fini = NULL, | ||
218 | .wb_init = NULL, | ||
219 | .wb_fini = NULL, | ||
220 | .gart_enable = NULL, | ||
221 | .gart_disable = NULL, | ||
222 | .gart_tlb_flush = &rv370_pcie_gart_tlb_flush, | 174 | .gart_tlb_flush = &rv370_pcie_gart_tlb_flush, |
223 | .gart_set_page = &rv370_pcie_gart_set_page, | 175 | .gart_set_page = &rv370_pcie_gart_set_page, |
224 | .cp_init = NULL, | ||
225 | .cp_fini = NULL, | ||
226 | .cp_disable = NULL, | ||
227 | .cp_commit = &r100_cp_commit, | 176 | .cp_commit = &r100_cp_commit, |
228 | .ring_start = &r300_ring_start, | 177 | .ring_start = &r300_ring_start, |
229 | .ring_test = &r100_ring_test, | 178 | .ring_test = &r100_ring_test, |
230 | .ring_ib_execute = &r100_ring_ib_execute, | 179 | .ring_ib_execute = &r100_ring_ib_execute, |
231 | .ib_test = NULL, | ||
232 | .irq_set = &r100_irq_set, | 180 | .irq_set = &r100_irq_set, |
233 | .irq_process = &r100_irq_process, | 181 | .irq_process = &r100_irq_process, |
234 | .get_vblank_counter = &r100_get_vblank_counter, | 182 | .get_vblank_counter = &r100_get_vblank_counter, |
@@ -250,42 +198,27 @@ static struct radeon_asic r420_asic = { | |||
250 | /* | 198 | /* |
251 | * rs400,rs480 | 199 | * rs400,rs480 |
252 | */ | 200 | */ |
253 | void rs400_errata(struct radeon_device *rdev); | 201 | extern int rs400_init(struct radeon_device *rdev); |
254 | void rs400_vram_info(struct radeon_device *rdev); | 202 | extern void rs400_fini(struct radeon_device *rdev); |
255 | int rs400_mc_init(struct radeon_device *rdev); | 203 | extern int rs400_suspend(struct radeon_device *rdev); |
256 | void rs400_mc_fini(struct radeon_device *rdev); | 204 | extern int rs400_resume(struct radeon_device *rdev); |
257 | int rs400_gart_init(struct radeon_device *rdev); | ||
258 | void rs400_gart_fini(struct radeon_device *rdev); | ||
259 | int rs400_gart_enable(struct radeon_device *rdev); | ||
260 | void rs400_gart_disable(struct radeon_device *rdev); | ||
261 | void rs400_gart_tlb_flush(struct radeon_device *rdev); | 205 | void rs400_gart_tlb_flush(struct radeon_device *rdev); |
262 | int rs400_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); | 206 | int rs400_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); |
263 | uint32_t rs400_mc_rreg(struct radeon_device *rdev, uint32_t reg); | 207 | uint32_t rs400_mc_rreg(struct radeon_device *rdev, uint32_t reg); |
264 | void rs400_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); | 208 | void rs400_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); |
265 | static struct radeon_asic rs400_asic = { | 209 | static struct radeon_asic rs400_asic = { |
266 | .init = &r300_init, | 210 | .init = &rs400_init, |
267 | .errata = &rs400_errata, | 211 | .fini = &rs400_fini, |
268 | .vram_info = &rs400_vram_info, | 212 | .suspend = &rs400_suspend, |
213 | .resume = &rs400_resume, | ||
269 | .vga_set_state = &r100_vga_set_state, | 214 | .vga_set_state = &r100_vga_set_state, |
270 | .gpu_reset = &r300_gpu_reset, | 215 | .gpu_reset = &r300_gpu_reset, |
271 | .mc_init = &rs400_mc_init, | ||
272 | .mc_fini = &rs400_mc_fini, | ||
273 | .wb_init = &r100_wb_init, | ||
274 | .wb_fini = &r100_wb_fini, | ||
275 | .gart_init = &rs400_gart_init, | ||
276 | .gart_fini = &rs400_gart_fini, | ||
277 | .gart_enable = &rs400_gart_enable, | ||
278 | .gart_disable = &rs400_gart_disable, | ||
279 | .gart_tlb_flush = &rs400_gart_tlb_flush, | 216 | .gart_tlb_flush = &rs400_gart_tlb_flush, |
280 | .gart_set_page = &rs400_gart_set_page, | 217 | .gart_set_page = &rs400_gart_set_page, |
281 | .cp_init = &r100_cp_init, | ||
282 | .cp_fini = &r100_cp_fini, | ||
283 | .cp_disable = &r100_cp_disable, | ||
284 | .cp_commit = &r100_cp_commit, | 218 | .cp_commit = &r100_cp_commit, |
285 | .ring_start = &r300_ring_start, | 219 | .ring_start = &r300_ring_start, |
286 | .ring_test = &r100_ring_test, | 220 | .ring_test = &r100_ring_test, |
287 | .ring_ib_execute = &r100_ring_ib_execute, | 221 | .ring_ib_execute = &r100_ring_ib_execute, |
288 | .ib_test = &r100_ib_test, | ||
289 | .irq_set = &r100_irq_set, | 222 | .irq_set = &r100_irq_set, |
290 | .irq_process = &r100_irq_process, | 223 | .irq_process = &r100_irq_process, |
291 | .get_vblank_counter = &r100_get_vblank_counter, | 224 | .get_vblank_counter = &r100_get_vblank_counter, |
@@ -307,18 +240,13 @@ static struct radeon_asic rs400_asic = { | |||
307 | /* | 240 | /* |
308 | * rs600. | 241 | * rs600. |
309 | */ | 242 | */ |
310 | int rs600_init(struct radeon_device *rdev); | 243 | extern int rs600_init(struct radeon_device *rdev); |
311 | void rs600_errata(struct radeon_device *rdev); | 244 | extern void rs600_fini(struct radeon_device *rdev); |
312 | void rs600_vram_info(struct radeon_device *rdev); | 245 | extern int rs600_suspend(struct radeon_device *rdev); |
313 | int rs600_mc_init(struct radeon_device *rdev); | 246 | extern int rs600_resume(struct radeon_device *rdev); |
314 | void rs600_mc_fini(struct radeon_device *rdev); | ||
315 | int rs600_irq_set(struct radeon_device *rdev); | 247 | int rs600_irq_set(struct radeon_device *rdev); |
316 | int rs600_irq_process(struct radeon_device *rdev); | 248 | int rs600_irq_process(struct radeon_device *rdev); |
317 | u32 rs600_get_vblank_counter(struct radeon_device *rdev, int crtc); | 249 | u32 rs600_get_vblank_counter(struct radeon_device *rdev, int crtc); |
318 | int rs600_gart_init(struct radeon_device *rdev); | ||
319 | void rs600_gart_fini(struct radeon_device *rdev); | ||
320 | int rs600_gart_enable(struct radeon_device *rdev); | ||
321 | void rs600_gart_disable(struct radeon_device *rdev); | ||
322 | void rs600_gart_tlb_flush(struct radeon_device *rdev); | 250 | void rs600_gart_tlb_flush(struct radeon_device *rdev); |
323 | int rs600_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); | 251 | int rs600_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); |
324 | uint32_t rs600_mc_rreg(struct radeon_device *rdev, uint32_t reg); | 252 | uint32_t rs600_mc_rreg(struct radeon_device *rdev, uint32_t reg); |
@@ -326,28 +254,17 @@ void rs600_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); | |||
326 | void rs600_bandwidth_update(struct radeon_device *rdev); | 254 | void rs600_bandwidth_update(struct radeon_device *rdev); |
327 | static struct radeon_asic rs600_asic = { | 255 | static struct radeon_asic rs600_asic = { |
328 | .init = &rs600_init, | 256 | .init = &rs600_init, |
329 | .errata = &rs600_errata, | 257 | .fini = &rs600_fini, |
330 | .vram_info = &rs600_vram_info, | 258 | .suspend = &rs600_suspend, |
259 | .resume = &rs600_resume, | ||
331 | .vga_set_state = &r100_vga_set_state, | 260 | .vga_set_state = &r100_vga_set_state, |
332 | .gpu_reset = &r300_gpu_reset, | 261 | .gpu_reset = &r300_gpu_reset, |
333 | .mc_init = &rs600_mc_init, | ||
334 | .mc_fini = &rs600_mc_fini, | ||
335 | .wb_init = &r100_wb_init, | ||
336 | .wb_fini = &r100_wb_fini, | ||
337 | .gart_init = &rs600_gart_init, | ||
338 | .gart_fini = &rs600_gart_fini, | ||
339 | .gart_enable = &rs600_gart_enable, | ||
340 | .gart_disable = &rs600_gart_disable, | ||
341 | .gart_tlb_flush = &rs600_gart_tlb_flush, | 262 | .gart_tlb_flush = &rs600_gart_tlb_flush, |
342 | .gart_set_page = &rs600_gart_set_page, | 263 | .gart_set_page = &rs600_gart_set_page, |
343 | .cp_init = &r100_cp_init, | ||
344 | .cp_fini = &r100_cp_fini, | ||
345 | .cp_disable = &r100_cp_disable, | ||
346 | .cp_commit = &r100_cp_commit, | 264 | .cp_commit = &r100_cp_commit, |
347 | .ring_start = &r300_ring_start, | 265 | .ring_start = &r300_ring_start, |
348 | .ring_test = &r100_ring_test, | 266 | .ring_test = &r100_ring_test, |
349 | .ring_ib_execute = &r100_ring_ib_execute, | 267 | .ring_ib_execute = &r100_ring_ib_execute, |
350 | .ib_test = &r100_ib_test, | ||
351 | .irq_set = &rs600_irq_set, | 268 | .irq_set = &rs600_irq_set, |
352 | .irq_process = &rs600_irq_process, | 269 | .irq_process = &rs600_irq_process, |
353 | .get_vblank_counter = &rs600_get_vblank_counter, | 270 | .get_vblank_counter = &rs600_get_vblank_counter, |
@@ -367,37 +284,26 @@ static struct radeon_asic rs600_asic = { | |||
367 | /* | 284 | /* |
368 | * rs690,rs740 | 285 | * rs690,rs740 |
369 | */ | 286 | */ |
370 | void rs690_errata(struct radeon_device *rdev); | 287 | int rs690_init(struct radeon_device *rdev); |
371 | void rs690_vram_info(struct radeon_device *rdev); | 288 | void rs690_fini(struct radeon_device *rdev); |
372 | int rs690_mc_init(struct radeon_device *rdev); | 289 | int rs690_resume(struct radeon_device *rdev); |
373 | void rs690_mc_fini(struct radeon_device *rdev); | 290 | int rs690_suspend(struct radeon_device *rdev); |
374 | uint32_t rs690_mc_rreg(struct radeon_device *rdev, uint32_t reg); | 291 | uint32_t rs690_mc_rreg(struct radeon_device *rdev, uint32_t reg); |
375 | void rs690_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); | 292 | void rs690_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); |
376 | void rs690_bandwidth_update(struct radeon_device *rdev); | 293 | void rs690_bandwidth_update(struct radeon_device *rdev); |
377 | static struct radeon_asic rs690_asic = { | 294 | static struct radeon_asic rs690_asic = { |
378 | .init = &rs600_init, | 295 | .init = &rs690_init, |
379 | .errata = &rs690_errata, | 296 | .fini = &rs690_fini, |
380 | .vram_info = &rs690_vram_info, | 297 | .suspend = &rs690_suspend, |
298 | .resume = &rs690_resume, | ||
381 | .vga_set_state = &r100_vga_set_state, | 299 | .vga_set_state = &r100_vga_set_state, |
382 | .gpu_reset = &r300_gpu_reset, | 300 | .gpu_reset = &r300_gpu_reset, |
383 | .mc_init = &rs690_mc_init, | ||
384 | .mc_fini = &rs690_mc_fini, | ||
385 | .wb_init = &r100_wb_init, | ||
386 | .wb_fini = &r100_wb_fini, | ||
387 | .gart_init = &rs400_gart_init, | ||
388 | .gart_fini = &rs400_gart_fini, | ||
389 | .gart_enable = &rs400_gart_enable, | ||
390 | .gart_disable = &rs400_gart_disable, | ||
391 | .gart_tlb_flush = &rs400_gart_tlb_flush, | 301 | .gart_tlb_flush = &rs400_gart_tlb_flush, |
392 | .gart_set_page = &rs400_gart_set_page, | 302 | .gart_set_page = &rs400_gart_set_page, |
393 | .cp_init = &r100_cp_init, | ||
394 | .cp_fini = &r100_cp_fini, | ||
395 | .cp_disable = &r100_cp_disable, | ||
396 | .cp_commit = &r100_cp_commit, | 303 | .cp_commit = &r100_cp_commit, |
397 | .ring_start = &r300_ring_start, | 304 | .ring_start = &r300_ring_start, |
398 | .ring_test = &r100_ring_test, | 305 | .ring_test = &r100_ring_test, |
399 | .ring_ib_execute = &r100_ring_ib_execute, | 306 | .ring_ib_execute = &r100_ring_ib_execute, |
400 | .ib_test = &r100_ib_test, | ||
401 | .irq_set = &rs600_irq_set, | 307 | .irq_set = &rs600_irq_set, |
402 | .irq_process = &rs600_irq_process, | 308 | .irq_process = &rs600_irq_process, |
403 | .get_vblank_counter = &rs600_get_vblank_counter, | 309 | .get_vblank_counter = &rs600_get_vblank_counter, |
@@ -435,28 +341,14 @@ static struct radeon_asic rv515_asic = { | |||
435 | .fini = &rv515_fini, | 341 | .fini = &rv515_fini, |
436 | .suspend = &rv515_suspend, | 342 | .suspend = &rv515_suspend, |
437 | .resume = &rv515_resume, | 343 | .resume = &rv515_resume, |
438 | .errata = NULL, | ||
439 | .vram_info = NULL, | ||
440 | .vga_set_state = &r100_vga_set_state, | 344 | .vga_set_state = &r100_vga_set_state, |
441 | .gpu_reset = &rv515_gpu_reset, | 345 | .gpu_reset = &rv515_gpu_reset, |
442 | .mc_init = NULL, | ||
443 | .mc_fini = NULL, | ||
444 | .wb_init = NULL, | ||
445 | .wb_fini = NULL, | ||
446 | .gart_init = &rv370_pcie_gart_init, | ||
447 | .gart_fini = &rv370_pcie_gart_fini, | ||
448 | .gart_enable = NULL, | ||
449 | .gart_disable = NULL, | ||
450 | .gart_tlb_flush = &rv370_pcie_gart_tlb_flush, | 346 | .gart_tlb_flush = &rv370_pcie_gart_tlb_flush, |
451 | .gart_set_page = &rv370_pcie_gart_set_page, | 347 | .gart_set_page = &rv370_pcie_gart_set_page, |
452 | .cp_init = NULL, | ||
453 | .cp_fini = NULL, | ||
454 | .cp_disable = NULL, | ||
455 | .cp_commit = &r100_cp_commit, | 348 | .cp_commit = &r100_cp_commit, |
456 | .ring_start = &rv515_ring_start, | 349 | .ring_start = &rv515_ring_start, |
457 | .ring_test = &r100_ring_test, | 350 | .ring_test = &r100_ring_test, |
458 | .ring_ib_execute = &r100_ring_ib_execute, | 351 | .ring_ib_execute = &r100_ring_ib_execute, |
459 | .ib_test = NULL, | ||
460 | .irq_set = &rs600_irq_set, | 352 | .irq_set = &rs600_irq_set, |
461 | .irq_process = &rs600_irq_process, | 353 | .irq_process = &rs600_irq_process, |
462 | .get_vblank_counter = &rs600_get_vblank_counter, | 354 | .get_vblank_counter = &rs600_get_vblank_counter, |
@@ -485,28 +377,14 @@ static struct radeon_asic r520_asic = { | |||
485 | .fini = &rv515_fini, | 377 | .fini = &rv515_fini, |
486 | .suspend = &rv515_suspend, | 378 | .suspend = &rv515_suspend, |
487 | .resume = &r520_resume, | 379 | .resume = &r520_resume, |
488 | .errata = NULL, | ||
489 | .vram_info = NULL, | ||
490 | .vga_set_state = &r100_vga_set_state, | 380 | .vga_set_state = &r100_vga_set_state, |
491 | .gpu_reset = &rv515_gpu_reset, | 381 | .gpu_reset = &rv515_gpu_reset, |
492 | .mc_init = NULL, | ||
493 | .mc_fini = NULL, | ||
494 | .wb_init = NULL, | ||
495 | .wb_fini = NULL, | ||
496 | .gart_init = NULL, | ||
497 | .gart_fini = NULL, | ||
498 | .gart_enable = NULL, | ||
499 | .gart_disable = NULL, | ||
500 | .gart_tlb_flush = &rv370_pcie_gart_tlb_flush, | 382 | .gart_tlb_flush = &rv370_pcie_gart_tlb_flush, |
501 | .gart_set_page = &rv370_pcie_gart_set_page, | 383 | .gart_set_page = &rv370_pcie_gart_set_page, |
502 | .cp_init = NULL, | ||
503 | .cp_fini = NULL, | ||
504 | .cp_disable = NULL, | ||
505 | .cp_commit = &r100_cp_commit, | 384 | .cp_commit = &r100_cp_commit, |
506 | .ring_start = &rv515_ring_start, | 385 | .ring_start = &rv515_ring_start, |
507 | .ring_test = &r100_ring_test, | 386 | .ring_test = &r100_ring_test, |
508 | .ring_ib_execute = &r100_ring_ib_execute, | 387 | .ring_ib_execute = &r100_ring_ib_execute, |
509 | .ib_test = NULL, | ||
510 | .irq_set = &rs600_irq_set, | 388 | .irq_set = &rs600_irq_set, |
511 | .irq_process = &rs600_irq_process, | 389 | .irq_process = &rs600_irq_process, |
512 | .get_vblank_counter = &rs600_get_vblank_counter, | 390 | .get_vblank_counter = &rs600_get_vblank_counter, |
@@ -554,37 +432,23 @@ int r600_set_surface_reg(struct radeon_device *rdev, int reg, | |||
554 | uint32_t offset, uint32_t obj_size); | 432 | uint32_t offset, uint32_t obj_size); |
555 | int r600_clear_surface_reg(struct radeon_device *rdev, int reg); | 433 | int r600_clear_surface_reg(struct radeon_device *rdev, int reg); |
556 | void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib); | 434 | void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib); |
557 | int r600_ib_test(struct radeon_device *rdev); | ||
558 | int r600_ring_test(struct radeon_device *rdev); | 435 | int r600_ring_test(struct radeon_device *rdev); |
559 | int r600_copy_blit(struct radeon_device *rdev, | 436 | int r600_copy_blit(struct radeon_device *rdev, |
560 | uint64_t src_offset, uint64_t dst_offset, | 437 | uint64_t src_offset, uint64_t dst_offset, |
561 | unsigned num_pages, struct radeon_fence *fence); | 438 | unsigned num_pages, struct radeon_fence *fence); |
562 | 439 | ||
563 | static struct radeon_asic r600_asic = { | 440 | static struct radeon_asic r600_asic = { |
564 | .errata = NULL, | ||
565 | .init = &r600_init, | 441 | .init = &r600_init, |
566 | .fini = &r600_fini, | 442 | .fini = &r600_fini, |
567 | .suspend = &r600_suspend, | 443 | .suspend = &r600_suspend, |
568 | .resume = &r600_resume, | 444 | .resume = &r600_resume, |
569 | .cp_commit = &r600_cp_commit, | 445 | .cp_commit = &r600_cp_commit, |
570 | .vram_info = NULL, | ||
571 | .vga_set_state = &r600_vga_set_state, | 446 | .vga_set_state = &r600_vga_set_state, |
572 | .gpu_reset = &r600_gpu_reset, | 447 | .gpu_reset = &r600_gpu_reset, |
573 | .mc_init = NULL, | ||
574 | .mc_fini = NULL, | ||
575 | .wb_init = &r600_wb_init, | ||
576 | .wb_fini = &r600_wb_fini, | ||
577 | .gart_enable = NULL, | ||
578 | .gart_disable = NULL, | ||
579 | .gart_tlb_flush = &r600_pcie_gart_tlb_flush, | 448 | .gart_tlb_flush = &r600_pcie_gart_tlb_flush, |
580 | .gart_set_page = &rs600_gart_set_page, | 449 | .gart_set_page = &rs600_gart_set_page, |
581 | .cp_init = NULL, | ||
582 | .cp_fini = NULL, | ||
583 | .cp_disable = NULL, | ||
584 | .ring_start = NULL, | ||
585 | .ring_test = &r600_ring_test, | 450 | .ring_test = &r600_ring_test, |
586 | .ring_ib_execute = &r600_ring_ib_execute, | 451 | .ring_ib_execute = &r600_ring_ib_execute, |
587 | .ib_test = &r600_ib_test, | ||
588 | .irq_set = &r600_irq_set, | 452 | .irq_set = &r600_irq_set, |
589 | .irq_process = &r600_irq_process, | 453 | .irq_process = &r600_irq_process, |
590 | .fence_ring_emit = &r600_fence_ring_emit, | 454 | .fence_ring_emit = &r600_fence_ring_emit, |
@@ -611,30 +475,17 @@ int rv770_resume(struct radeon_device *rdev); | |||
611 | int rv770_gpu_reset(struct radeon_device *rdev); | 475 | int rv770_gpu_reset(struct radeon_device *rdev); |
612 | 476 | ||
613 | static struct radeon_asic rv770_asic = { | 477 | static struct radeon_asic rv770_asic = { |
614 | .errata = NULL, | ||
615 | .init = &rv770_init, | 478 | .init = &rv770_init, |
616 | .fini = &rv770_fini, | 479 | .fini = &rv770_fini, |
617 | .suspend = &rv770_suspend, | 480 | .suspend = &rv770_suspend, |
618 | .resume = &rv770_resume, | 481 | .resume = &rv770_resume, |
619 | .cp_commit = &r600_cp_commit, | 482 | .cp_commit = &r600_cp_commit, |
620 | .vram_info = NULL, | ||
621 | .gpu_reset = &rv770_gpu_reset, | 483 | .gpu_reset = &rv770_gpu_reset, |
622 | .vga_set_state = &r600_vga_set_state, | 484 | .vga_set_state = &r600_vga_set_state, |
623 | .mc_init = NULL, | ||
624 | .mc_fini = NULL, | ||
625 | .wb_init = &r600_wb_init, | ||
626 | .wb_fini = &r600_wb_fini, | ||
627 | .gart_enable = NULL, | ||
628 | .gart_disable = NULL, | ||
629 | .gart_tlb_flush = &r600_pcie_gart_tlb_flush, | 485 | .gart_tlb_flush = &r600_pcie_gart_tlb_flush, |
630 | .gart_set_page = &rs600_gart_set_page, | 486 | .gart_set_page = &rs600_gart_set_page, |
631 | .cp_init = NULL, | ||
632 | .cp_fini = NULL, | ||
633 | .cp_disable = NULL, | ||
634 | .ring_start = NULL, | ||
635 | .ring_test = &r600_ring_test, | 487 | .ring_test = &r600_ring_test, |
636 | .ring_ib_execute = &r600_ring_ib_execute, | 488 | .ring_ib_execute = &r600_ring_ib_execute, |
637 | .ib_test = &r600_ib_test, | ||
638 | .irq_set = &r600_irq_set, | 489 | .irq_set = &r600_irq_set, |
639 | .irq_process = &r600_irq_process, | 490 | .irq_process = &r600_irq_process, |
640 | .fence_ring_emit = &r600_fence_ring_emit, | 491 | .fence_ring_emit = &r600_fence_ring_emit, |