Subversion Repositories Kolibri OS

Rev

Rev 1179 | Rev 1233 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1179 Rev 1221
Line 39... Line 39...
39
void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable);
39
void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable);
Line 40... Line 40...
40
 
40
 
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
extern void r100_fini(struct radeon_device *rdev);
-
 
46
extern int r100_suspend(struct radeon_device *rdev);
45
int r200_init(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);
-
 
48
void r100_errata(struct radeon_device *rdev);
-
 
49
void r100_vram_info(struct radeon_device *rdev);
49
void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
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);
-
 
52
int r100_mc_init(struct radeon_device *rdev);
-
 
53
void r100_mc_fini(struct radeon_device *rdev);
51
int r100_gpu_reset(struct radeon_device *rdev);
54
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);
52
u32 r100_get_vblank_counter(struct radeon_device *rdev, int crtc);
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);
-
 
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);
54
int r100_pci_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr);
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);
69
int r100_irq_process(struct radeon_device *rdev);
58
int r100_irq_process(struct radeon_device *rdev);
Line 81... Line 70...
81
			 uint32_t tiling_flags, uint32_t pitch,
70
			 uint32_t tiling_flags, uint32_t pitch,
82
			 uint32_t offset, uint32_t obj_size);
71
			 uint32_t offset, uint32_t obj_size);
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);
Line 88... Line 76...
88
 
76
 
89
static struct radeon_asic r100_asic = {
77
static struct radeon_asic r100_asic = {
-
 
78
	.init = &r100_init,
-
 
79
//	.fini = &r100_fini,
90
	.init = &r100_init,
80
//	.suspend = &r100_suspend,
91
	.errata = &r100_errata,
81
//	.resume = &r100_resume,
92
	.vram_info = &r100_vram_info,
82
//	.vga_set_state = &r100_vga_set_state,
93
	.gpu_reset = &r100_gpu_reset,
-
 
94
	.mc_init = &r100_mc_init,
-
 
95
	.mc_fini = &r100_mc_fini,
-
 
96
//   .wb_init = &r100_wb_init,
-
 
97
//   .wb_fini = &r100_wb_fini,
-
 
98
	.gart_enable = &r100_pci_gart_enable,
-
 
99
	.gart_disable = &r100_pci_gart_disable,
83
	.gpu_reset = &r100_gpu_reset,
100
	.gart_tlb_flush = &r100_pci_gart_tlb_flush,
84
	.gart_tlb_flush = &r100_pci_gart_tlb_flush,
101
	.gart_set_page = &r100_pci_gart_set_page,
85
	.gart_set_page = &r100_pci_gart_set_page,
102
	.cp_init = &r100_cp_init,
86
	.cp_commit = &r100_cp_commit,
103
//   .cp_fini = &r100_cp_fini,
87
//	.ring_start = &r100_ring_start,
104
//   .cp_disable = &r100_cp_disable,
88
//   .ring_test = &r100_ring_test,
105
	.ring_start = &r100_ring_start,
89
//	.ring_ib_execute = &r100_ring_ib_execute,
106
//   .irq_set = &r100_irq_set,
90
//	.irq_set = &r100_irq_set,
-
 
91
//	.irq_process = &r100_irq_process,
107
//   .irq_process = &r100_irq_process,
92
//	.get_vblank_counter = &r100_get_vblank_counter,
108
 //  .fence_ring_emit = &r100_fence_ring_emit,
93
//	.fence_ring_emit = &r100_fence_ring_emit,
109
 //  .cs_parse = &r100_cs_parse,
94
//	.cs_parse = &r100_cs_parse,
110
 //  .copy_blit = &r100_copy_blit,
95
//	.copy_blit = &r100_copy_blit,
111
 //  .copy_dma = NULL,
96
//	.copy_dma = NULL,
112
 //  .copy = &r100_copy_blit,
97
//	.copy = &r100_copy_blit,
113
//   .set_engine_clock = &radeon_legacy_set_engine_clock,
98
	.set_engine_clock = &radeon_legacy_set_engine_clock,
114
//   .set_memory_clock = NULL,
99
	.set_memory_clock = NULL,
115
//   .set_pcie_lanes = NULL,
100
	.set_pcie_lanes = NULL,
116
//   .set_clock_gating = &radeon_legacy_set_clock_gating,
101
	.set_clock_gating = &radeon_legacy_set_clock_gating,
117
	.set_surface_reg = r100_set_surface_reg,
102
	.set_surface_reg = r100_set_surface_reg,
118
	.clear_surface_reg = r100_clear_surface_reg,
103
	.clear_surface_reg = r100_clear_surface_reg,
119
	.bandwidth_update = &r100_bandwidth_update,
104
	.bandwidth_update = &r100_bandwidth_update,
Line 120... Line 105...
120
};
105
};
121
 
106
 
122
 
107
 
123
/*
108
/*
124
 * r300,r350,rv350,rv380
109
 * r300,r350,rv350,rv380
125
 */
110
 */
126
int r300_init(struct radeon_device *rdev);
111
extern int r300_init(struct radeon_device *rdev);
127
void r300_errata(struct radeon_device *rdev);
112
extern void r300_fini(struct radeon_device *rdev);
128
void r300_vram_info(struct radeon_device *rdev);
-
 
129
int r300_gpu_reset(struct radeon_device *rdev);
113
extern int r300_suspend(struct radeon_device *rdev);
130
int r300_mc_init(struct radeon_device *rdev);
114
extern int r300_resume(struct radeon_device *rdev);
131
void r300_mc_fini(struct radeon_device *rdev);
115
extern int r300_gpu_reset(struct radeon_device *rdev);
132
void r300_ring_start(struct radeon_device *rdev);
116
extern void r300_ring_start(struct radeon_device *rdev);
133
void r300_fence_ring_emit(struct radeon_device *rdev,
-
 
134
			  struct radeon_fence *fence);
-
 
135
int r300_cs_parse(struct radeon_cs_parser *p);
-
 
136
int rv370_pcie_gart_init(struct radeon_device *rdev);
-
 
137
void rv370_pcie_gart_fini(struct radeon_device *rdev);
117
extern void r300_fence_ring_emit(struct radeon_device *rdev,
138
int rv370_pcie_gart_enable(struct radeon_device *rdev);
118
			  struct radeon_fence *fence);
139
void rv370_pcie_gart_disable(struct radeon_device *rdev);
119
extern int r300_cs_parse(struct radeon_cs_parser *p);
140
void rv370_pcie_gart_tlb_flush(struct radeon_device *rdev);
120
extern void rv370_pcie_gart_tlb_flush(struct radeon_device *rdev);
141
int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr);
121
extern int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr);
142
uint32_t rv370_pcie_rreg(struct radeon_device *rdev, uint32_t reg);
122
extern uint32_t rv370_pcie_rreg(struct radeon_device *rdev, uint32_t reg);
143
void rv370_pcie_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
123
extern void rv370_pcie_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
144
void rv370_set_pcie_lanes(struct radeon_device *rdev, int lanes);
124
extern void rv370_set_pcie_lanes(struct radeon_device *rdev, int lanes);
145
int r300_copy_dma(struct radeon_device *rdev,
125
extern int r300_copy_dma(struct radeon_device *rdev,
146
		  uint64_t src_offset,
126
		  uint64_t src_offset,
147
		  uint64_t dst_offset,
-
 
148
		  unsigned num_pages,
127
		  uint64_t dst_offset,
149
		  struct radeon_fence *fence);
128
		  unsigned num_pages,
150
 
129
		  struct radeon_fence *fence);
151
static struct radeon_asic r300_asic = {
130
static struct radeon_asic r300_asic = {
-
 
131
	.init = &r300_init,
152
	.init = &r300_init,
132
//	.fini = &r300_fini,
153
	.errata = &r300_errata,
133
//	.suspend = &r300_suspend,
154
	.vram_info = &r300_vram_info,
-
 
155
	.vga_set_state = &r100_vga_set_state,
-
 
156
	.gpu_reset = &r300_gpu_reset,
-
 
157
	.mc_init = &r300_mc_init,
-
 
158
	.mc_fini = &r300_mc_fini,
-
 
159
//   .wb_init = &r100_wb_init,
-
 
160
//   .wb_fini = &r100_wb_fini,
134
//	.resume = &r300_resume,
161
	.gart_enable = &r100_pci_gart_enable,
135
//	.vga_set_state = &r100_vga_set_state,
162
	.gart_disable = &r100_pci_gart_disable,
136
	.gpu_reset = &r300_gpu_reset,
163
	.gart_tlb_flush = &r100_pci_gart_tlb_flush,
137
	.gart_tlb_flush = &r100_pci_gart_tlb_flush,
164
	.gart_set_page = &r100_pci_gart_set_page,
138
	.gart_set_page = &r100_pci_gart_set_page,
165
	.cp_init = &r100_cp_init,
139
//	.cp_commit = &r100_cp_commit,
166
//   .cp_fini = &r100_cp_fini,
140
//	.ring_start = &r300_ring_start,
167
//   .cp_disable = &r100_cp_disable,
141
//   .ring_test = &r100_ring_test,
-
 
142
//	.ring_ib_execute = &r100_ring_ib_execute,
168
	.ring_start = &r300_ring_start,
143
//	.irq_set = &r100_irq_set,
169
//   .irq_set = &r100_irq_set,
144
//	.irq_process = &r100_irq_process,
170
//   .irq_process = &r100_irq_process,
145
//	.get_vblank_counter = &r100_get_vblank_counter,
171
 //  .fence_ring_emit = &r300_fence_ring_emit,
146
//	.fence_ring_emit = &r300_fence_ring_emit,
172
 //  .cs_parse = &r300_cs_parse,
147
//	.cs_parse = &r300_cs_parse,
173
 //  .copy_blit = &r100_copy_blit,
148
//	.copy_blit = &r100_copy_blit,
174
 //  .copy_dma = &r300_copy_dma,
149
//	.copy_dma = &r300_copy_dma,
175
 //  .copy = &r100_copy_blit,
150
//	.copy = &r100_copy_blit,
176
 //  .set_engine_clock = &radeon_legacy_set_engine_clock,
151
	.set_engine_clock = &radeon_legacy_set_engine_clock,
177
 //  .set_memory_clock = NULL,
152
	.set_memory_clock = NULL,
178
//   .set_pcie_lanes = &rv370_set_pcie_lanes,
153
	.set_pcie_lanes = &rv370_set_pcie_lanes,
179
//   .set_clock_gating = &radeon_legacy_set_clock_gating,
154
	.set_clock_gating = &radeon_legacy_set_clock_gating,
180
	.set_surface_reg = r100_set_surface_reg,
155
	.set_surface_reg = r100_set_surface_reg,
Line 189... Line 164...
189
extern void r420_fini(struct radeon_device *rdev);
164
extern void r420_fini(struct radeon_device *rdev);
190
extern int r420_suspend(struct radeon_device *rdev);
165
extern int r420_suspend(struct radeon_device *rdev);
191
extern int r420_resume(struct radeon_device *rdev);
166
extern int r420_resume(struct radeon_device *rdev);
192
static struct radeon_asic r420_asic = {
167
static struct radeon_asic r420_asic = {
193
	.init = &r420_init,
168
	.init = &r420_init,
194
	.fini = &r420_fini,
169
//	.fini = &r420_fini,
195
	.suspend = &r420_suspend,
170
//	.suspend = &r420_suspend,
196
	.resume = &r420_resume,
171
//	.resume = &r420_resume,
197
	.errata = NULL,
-
 
198
	.vram_info = NULL,
-
 
199
	.vga_set_state = &r100_vga_set_state,
172
//	.vga_set_state = &r100_vga_set_state,
200
	.gpu_reset = &r300_gpu_reset,
173
	.gpu_reset = &r300_gpu_reset,
201
	.mc_init = NULL,
-
 
202
	.mc_fini = NULL,
-
 
203
	.wb_init = NULL,
-
 
204
	.wb_fini = NULL,
-
 
205
	.gart_enable = NULL,
-
 
206
	.gart_disable = NULL,
-
 
207
	.gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
174
	.gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
208
	.gart_set_page = &rv370_pcie_gart_set_page,
175
	.gart_set_page = &rv370_pcie_gart_set_page,
209
	.cp_init = NULL,
176
//	.cp_commit = &r100_cp_commit,
210
	.cp_fini = NULL,
177
//	.ring_start = &r300_ring_start,
211
	.cp_disable = NULL,
178
//   .ring_test = &r100_ring_test,
212
	.ring_start = &r300_ring_start,
179
//	.ring_ib_execute = &r100_ring_ib_execute,
213
//   .irq_set = &r100_irq_set,
180
//	.irq_set = &r100_irq_set,
214
//   .irq_process = &r100_irq_process,
181
//	.irq_process = &r100_irq_process,
-
 
182
//	.get_vblank_counter = &r100_get_vblank_counter,
215
//   .fence_ring_emit = &r300_fence_ring_emit,
183
//	.fence_ring_emit = &r300_fence_ring_emit,
216
//   .cs_parse = &r300_cs_parse,
184
//	.cs_parse = &r300_cs_parse,
217
//   .copy_blit = &r100_copy_blit,
185
//	.copy_blit = &r100_copy_blit,
218
//   .copy_dma = &r300_copy_dma,
186
//	.copy_dma = &r300_copy_dma,
219
//   .copy = &r100_copy_blit,
187
//	.copy = &r100_copy_blit,
220
//   .set_engine_clock = &radeon_atom_set_engine_clock,
188
	.set_engine_clock = &radeon_atom_set_engine_clock,
221
//   .set_memory_clock = &radeon_atom_set_memory_clock,
189
	.set_memory_clock = &radeon_atom_set_memory_clock,
222
//   .set_pcie_lanes = &rv370_set_pcie_lanes,
190
	.set_pcie_lanes = &rv370_set_pcie_lanes,
223
//   .set_clock_gating = &radeon_atom_set_clock_gating,
191
	.set_clock_gating = &radeon_atom_set_clock_gating,
224
	.set_surface_reg = r100_set_surface_reg,
192
	.set_surface_reg = r100_set_surface_reg,
225
	.clear_surface_reg = r100_clear_surface_reg,
193
	.clear_surface_reg = r100_clear_surface_reg,
226
	.bandwidth_update = &r100_bandwidth_update,
194
	.bandwidth_update = &r100_bandwidth_update,
227
};
195
};
Line 228... Line 196...
228
 
196
 
229
 
197
 
230
/*
198
/*
231
 * rs400,rs480
-
 
232
 */
-
 
233
void rs400_errata(struct radeon_device *rdev);
199
 * rs400,rs480
234
void rs400_vram_info(struct radeon_device *rdev);
200
 */
235
int rs400_mc_init(struct radeon_device *rdev);
201
extern int rs400_init(struct radeon_device *rdev);
236
void rs400_mc_fini(struct radeon_device *rdev);
-
 
237
int rs400_gart_init(struct radeon_device *rdev);
202
extern void rs400_fini(struct radeon_device *rdev);
238
void rs400_gart_fini(struct radeon_device *rdev);
-
 
239
int rs400_gart_enable(struct radeon_device *rdev);
203
extern int rs400_suspend(struct radeon_device *rdev);
240
void rs400_gart_disable(struct radeon_device *rdev);
204
extern int rs400_resume(struct radeon_device *rdev);
241
void rs400_gart_tlb_flush(struct radeon_device *rdev);
205
void rs400_gart_tlb_flush(struct radeon_device *rdev);
242
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);
243
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);
244
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);
245
static struct radeon_asic rs400_asic = {
209
static struct radeon_asic rs400_asic = {
246
	.init = &r300_init,
210
	.init = &rs400_init,
-
 
211
//	.fini = &rs400_fini,
247
	.errata = &rs400_errata,
212
//	.suspend = &rs400_suspend,
248
	.vram_info = &rs400_vram_info,
213
//	.resume = &rs400_resume,
249
	.vga_set_state = &r100_vga_set_state,
-
 
250
	.gpu_reset = &r300_gpu_reset,
-
 
251
	.mc_init = &rs400_mc_init,
-
 
252
	.mc_fini = &rs400_mc_fini,
-
 
253
//   .wb_init = &r100_wb_init,
-
 
254
//   .wb_fini = &r100_wb_fini,
-
 
255
	.gart_init = &rs400_gart_init,
-
 
256
	.gart_fini = &rs400_gart_fini,
-
 
257
	.gart_enable = &rs400_gart_enable,
214
//	.vga_set_state = &r100_vga_set_state,
258
	.gart_disable = &rs400_gart_disable,
215
	.gpu_reset = &r300_gpu_reset,
259
	.gart_tlb_flush = &rs400_gart_tlb_flush,
216
	.gart_tlb_flush = &rs400_gart_tlb_flush,
260
	.gart_set_page = &rs400_gart_set_page,
217
	.gart_set_page = &rs400_gart_set_page,
261
	.cp_init = &r100_cp_init,
218
//	.cp_commit = &r100_cp_commit,
262
//   .cp_fini = &r100_cp_fini,
-
 
263
//   .cp_disable = &r100_cp_disable,
219
//	.ring_start = &r300_ring_start,
264
	.cp_commit = &r100_cp_commit,
220
//   .ring_test = &r100_ring_test,
265
	.ring_start = &r300_ring_start,
221
//	.ring_ib_execute = &r100_ring_ib_execute,
-
 
222
//	.irq_set = &r100_irq_set,
266
//   .irq_set = &r100_irq_set,
223
//	.irq_process = &r100_irq_process,
267
//   .irq_process = &r100_irq_process,
224
//	.get_vblank_counter = &r100_get_vblank_counter,
268
//   .fence_ring_emit = &r300_fence_ring_emit,
225
//	.fence_ring_emit = &r300_fence_ring_emit,
269
//   .cs_parse = &r300_cs_parse,
226
//	.cs_parse = &r300_cs_parse,
270
//   .copy_blit = &r100_copy_blit,
227
//	.copy_blit = &r100_copy_blit,
271
//   .copy_dma = &r300_copy_dma,
228
//	.copy_dma = &r300_copy_dma,
272
//   .copy = &r100_copy_blit,
229
//	.copy = &r100_copy_blit,
273
//   .set_engine_clock = &radeon_legacy_set_engine_clock,
230
	.set_engine_clock = &radeon_legacy_set_engine_clock,
274
//   .set_memory_clock = NULL,
231
	.set_memory_clock = NULL,
275
//   .set_pcie_lanes = NULL,
232
	.set_pcie_lanes = NULL,
276
//   .set_clock_gating = &radeon_legacy_set_clock_gating,
233
	.set_clock_gating = &radeon_legacy_set_clock_gating,
277
	.set_surface_reg = r100_set_surface_reg,
234
	.set_surface_reg = r100_set_surface_reg,
278
	.clear_surface_reg = r100_clear_surface_reg,
235
	.clear_surface_reg = r100_clear_surface_reg,
Line 279... Line 236...
279
	.bandwidth_update = &r100_bandwidth_update,
236
	.bandwidth_update = &r100_bandwidth_update,
280
};
237
};
281
 
238
 
282
 
239
 
283
/*
240
/*
284
 * rs600.
-
 
285
 */
241
 * rs600.
286
int rs600_init(struct radeon_device *rdev);
242
 */
287
void rs600_errata(struct radeon_device *rdev);
243
extern int rs600_init(struct radeon_device *rdev);
288
void rs600_vram_info(struct radeon_device *rdev);
244
extern void rs600_fini(struct radeon_device *rdev);
289
int rs600_mc_init(struct radeon_device *rdev);
245
extern int rs600_suspend(struct radeon_device *rdev);
290
void rs600_mc_fini(struct radeon_device *rdev);
-
 
291
int rs600_irq_set(struct radeon_device *rdev);
-
 
292
int rs600_irq_process(struct radeon_device *rdev);
-
 
293
u32 rs600_get_vblank_counter(struct radeon_device *rdev, int crtc);
-
 
294
int rs600_gart_init(struct radeon_device *rdev);
246
extern int rs600_resume(struct radeon_device *rdev);
295
void rs600_gart_fini(struct radeon_device *rdev);
247
int rs600_irq_set(struct radeon_device *rdev);
296
int rs600_gart_enable(struct radeon_device *rdev);
248
int rs600_irq_process(struct radeon_device *rdev);
297
void rs600_gart_disable(struct radeon_device *rdev);
249
u32 rs600_get_vblank_counter(struct radeon_device *rdev, int crtc);
298
void rs600_gart_tlb_flush(struct radeon_device *rdev);
250
void rs600_gart_tlb_flush(struct radeon_device *rdev);
299
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);
300
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);
301
void rs600_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
253
void rs600_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
302
void rs600_bandwidth_update(struct radeon_device *rdev);
254
void rs600_bandwidth_update(struct radeon_device *rdev);
-
 
255
static struct radeon_asic rs600_asic = {
303
static struct radeon_asic rs600_asic = {
256
	.init = &rs600_init,
304
	.init = &rs600_init,
257
//	.fini = &rs600_fini,
305
	.errata = &rs600_errata,
-
 
306
	.vram_info = &rs600_vram_info,
-
 
307
	.vga_set_state = &r100_vga_set_state,
-
 
308
	.gpu_reset = &r300_gpu_reset,
-
 
309
	.mc_init = &rs600_mc_init,
-
 
310
	.mc_fini = &rs600_mc_fini,
-
 
311
//   .wb_init = &r100_wb_init,
-
 
312
//   .wb_fini = &r100_wb_fini,
-
 
313
	.gart_init = &rs600_gart_init,
258
//	.suspend = &rs600_suspend,
314
	.gart_fini = &rs600_gart_fini,
259
//	.resume = &rs600_resume,
315
	.gart_enable = &rs600_gart_enable,
260
//	.vga_set_state = &r100_vga_set_state,
316
	.gart_disable = &rs600_gart_disable,
261
	.gpu_reset = &r300_gpu_reset,
317
	.gart_tlb_flush = &rs600_gart_tlb_flush,
262
	.gart_tlb_flush = &rs600_gart_tlb_flush,
318
	.gart_set_page = &rs600_gart_set_page,
-
 
319
	.cp_init = &r100_cp_init,
263
	.gart_set_page = &rs600_gart_set_page,
320
//   .cp_fini = &r100_cp_fini,
264
//	.cp_commit = &r100_cp_commit,
321
//   .cp_disable = &r100_cp_disable,
265
//	.ring_start = &r300_ring_start,
-
 
266
//   .ring_test = &r100_ring_test,
322
	.cp_commit = &r100_cp_commit,
267
//	.ring_ib_execute = &r100_ring_ib_execute,
323
	.ring_start = &r300_ring_start,
268
//	.irq_set = &rs600_irq_set,
324
//   .irq_set = &rs600_irq_set,
269
//	.irq_process = &rs600_irq_process,
325
//   .irq_process = &r100_irq_process,
270
//	.get_vblank_counter = &rs600_get_vblank_counter,
326
//   .fence_ring_emit = &r300_fence_ring_emit,
271
//   .fence_ring_emit = &r300_fence_ring_emit,
327
//   .cs_parse = &r300_cs_parse,
272
//   .cs_parse = &r300_cs_parse,
328
//   .copy_blit = &r100_copy_blit,
273
//   .copy_blit = &r100_copy_blit,
329
//   .copy_dma = &r300_copy_dma,
274
//   .copy_dma = &r300_copy_dma,
330
//   .copy = &r100_copy_blit,
275
//   .copy = &r100_copy_blit,
331
//   .set_engine_clock = &radeon_atom_set_engine_clock,
276
	.set_engine_clock = &radeon_atom_set_engine_clock,
332
//   .set_memory_clock = &radeon_atom_set_memory_clock,
277
	.set_memory_clock = &radeon_atom_set_memory_clock,
Line 333... Line 278...
333
//   .set_pcie_lanes = NULL,
278
	.set_pcie_lanes = NULL,
334
//   .set_clock_gating = &radeon_atom_set_clock_gating,
279
	.set_clock_gating = &radeon_atom_set_clock_gating,
335
	.bandwidth_update = &rs600_bandwidth_update,
280
	.bandwidth_update = &rs600_bandwidth_update,
336
};
281
};
337
 
282
 
338
 
283
 
339
/*
284
/*
340
 * rs690,rs740
285
 * rs690,rs740
341
 */
286
 */
342
void rs690_errata(struct radeon_device *rdev);
287
int rs690_init(struct radeon_device *rdev);
343
void rs690_vram_info(struct radeon_device *rdev);
288
void rs690_fini(struct radeon_device *rdev);
344
int rs690_mc_init(struct radeon_device *rdev);
289
int rs690_resume(struct radeon_device *rdev);
345
void rs690_mc_fini(struct radeon_device *rdev);
290
int rs690_suspend(struct radeon_device *rdev);
346
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);
-
 
292
void rs690_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
347
void rs690_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
293
void rs690_bandwidth_update(struct radeon_device *rdev);
348
void rs690_bandwidth_update(struct radeon_device *rdev);
294
static struct radeon_asic rs690_asic = {
349
static struct radeon_asic rs690_asic = {
-
 
350
	.init = &rs600_init,
-
 
351
	.errata = &rs690_errata,
-
 
352
	.vram_info = &rs690_vram_info,
-
 
353
	.vga_set_state = &r100_vga_set_state,
-
 
354
	.gpu_reset = &r300_gpu_reset,
-
 
355
	.mc_init = &rs690_mc_init,
-
 
356
	.mc_fini = &rs690_mc_fini,
-
 
357
//   .wb_init = &r100_wb_init,
295
	.init = &rs690_init,
358
//   .wb_fini = &r100_wb_fini,
296
//	.fini = &rs690_fini,
359
	.gart_init = &rs400_gart_init,
297
//	.suspend = &rs690_suspend,
360
	.gart_fini = &rs400_gart_fini,
298
//	.resume = &rs690_resume,
361
	.gart_enable = &rs400_gart_enable,
299
//	.vga_set_state = &r100_vga_set_state,
362
	.gart_disable = &rs400_gart_disable,
-
 
363
	.gart_tlb_flush = &rs400_gart_tlb_flush,
300
	.gpu_reset = &r300_gpu_reset,
364
	.gart_set_page = &rs400_gart_set_page,
301
	.gart_tlb_flush = &rs400_gart_tlb_flush,
365
	.cp_init = &r100_cp_init,
302
	.gart_set_page = &rs400_gart_set_page,
-
 
303
//	.cp_commit = &r100_cp_commit,
366
//   .cp_fini = &r100_cp_fini,
304
//	.ring_start = &r300_ring_start,
367
//   .cp_disable = &r100_cp_disable,
305
//   .ring_test = &r100_ring_test,
368
	.cp_commit = &r100_cp_commit,
306
//	.ring_ib_execute = &r100_ring_ib_execute,
369
	.ring_start = &r300_ring_start,
307
//	.irq_set = &rs600_irq_set,
370
//   .irq_set = &rs600_irq_set,
308
//	.irq_process = &rs600_irq_process,
371
//   .irq_process = &r100_irq_process,
309
//	.get_vblank_counter = &rs600_get_vblank_counter,
372
 //  .fence_ring_emit = &r300_fence_ring_emit,
310
//	.fence_ring_emit = &r300_fence_ring_emit,
373
 //  .cs_parse = &r300_cs_parse,
311
//	.cs_parse = &r300_cs_parse,
374
 //  .copy_blit = &r100_copy_blit,
312
//	.copy_blit = &r100_copy_blit,
375
 //  .copy_dma = &r300_copy_dma,
313
//	.copy_dma = &r300_copy_dma,
376
//   .copy = &r300_copy_dma,
314
//	.copy = &r300_copy_dma,
377
//   .set_engine_clock = &radeon_atom_set_engine_clock,
315
	.set_engine_clock = &radeon_atom_set_engine_clock,
378
//   .set_memory_clock = &radeon_atom_set_memory_clock,
316
	.set_memory_clock = &radeon_atom_set_memory_clock,
Line 379... Line 317...
379
//   .set_pcie_lanes = NULL,
317
	.set_pcie_lanes = NULL,
380
//   .set_clock_gating = &radeon_atom_set_clock_gating,
318
	.set_clock_gating = &radeon_atom_set_clock_gating,
381
	.set_surface_reg = r100_set_surface_reg,
319
	.set_surface_reg = r100_set_surface_reg,
382
	.clear_surface_reg = r100_clear_surface_reg,
320
	.clear_surface_reg = r100_clear_surface_reg,
383
	.bandwidth_update = &rs690_bandwidth_update,
321
	.bandwidth_update = &rs690_bandwidth_update,
384
};
-
 
385
 
322
};
386
 
-
 
387
/*
-
 
388
 * rv515
323
 
389
 */
324
 
390
int rv515_init(struct radeon_device *rdev);
325
/*
391
void rv515_errata(struct radeon_device *rdev);
326
 * rv515
392
void rv515_vram_info(struct radeon_device *rdev);
327
 */
393
int rv515_gpu_reset(struct radeon_device *rdev);
328
int rv515_init(struct radeon_device *rdev);
-
 
329
void rv515_fini(struct radeon_device *rdev);
-
 
330
int rv515_gpu_reset(struct radeon_device *rdev);
394
int rv515_mc_init(struct radeon_device *rdev);
331
uint32_t rv515_mc_rreg(struct radeon_device *rdev, uint32_t reg);
395
void rv515_mc_fini(struct radeon_device *rdev);
332
void rv515_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
396
uint32_t rv515_mc_rreg(struct radeon_device *rdev, uint32_t reg);
333
void rv515_ring_start(struct radeon_device *rdev);
397
void rv515_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
334
uint32_t rv515_pcie_rreg(struct radeon_device *rdev, uint32_t reg);
-
 
335
void rv515_pcie_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
398
void rv515_ring_start(struct radeon_device *rdev);
336
void rv515_bandwidth_update(struct radeon_device *rdev);
399
uint32_t rv515_pcie_rreg(struct radeon_device *rdev, uint32_t reg);
337
int rv515_resume(struct radeon_device *rdev);
400
void rv515_pcie_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
-
 
401
void rv515_bandwidth_update(struct radeon_device *rdev);
-
 
402
static struct radeon_asic rv515_asic = {
-
 
403
	.init = &rv515_init,
-
 
404
	.errata = &rv515_errata,
-
 
405
	.vram_info = &rv515_vram_info,
-
 
406
	.vga_set_state = &r100_vga_set_state,
-
 
407
	.gpu_reset = &rv515_gpu_reset,
-
 
408
	.mc_init = &rv515_mc_init,
338
int rv515_suspend(struct radeon_device *rdev);
409
	.mc_fini = &rv515_mc_fini,
339
static struct radeon_asic rv515_asic = {
410
//   .wb_init = &r100_wb_init,
340
	.init = &rv515_init,
411
//   .wb_fini = &r100_wb_fini,
341
//	.fini = &rv515_fini,
412
	.gart_init = &rv370_pcie_gart_init,
342
//	.suspend = &rv515_suspend,
413
	.gart_fini = &rv370_pcie_gart_fini,
-
 
414
	.gart_enable = &rv370_pcie_gart_enable,
343
//	.resume = &rv515_resume,
415
	.gart_disable = &rv370_pcie_gart_disable,
344
//	.vga_set_state = &r100_vga_set_state,
416
	.gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
345
	.gpu_reset = &rv515_gpu_reset,
-
 
346
	.gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
417
	.gart_set_page = &rv370_pcie_gart_set_page,
347
	.gart_set_page = &rv370_pcie_gart_set_page,
418
	.cp_init = &r100_cp_init,
348
//	.cp_commit = &r100_cp_commit,
419
//   .cp_fini = &r100_cp_fini,
349
//  .ring_start = &rv515_ring_start,
420
//   .cp_disable = &r100_cp_disable,
350
//   .ring_test = &r100_ring_test,
421
	.cp_commit = &r100_cp_commit,
351
//	.ring_ib_execute = &r100_ring_ib_execute,
422
    .ring_start = &rv515_ring_start,
352
//	.irq_set = &rs600_irq_set,
423
//   .irq_set = &r100_irq_set,
353
//	.irq_process = &rs600_irq_process,
424
//   .irq_process = &r100_irq_process,
354
//	.get_vblank_counter = &rs600_get_vblank_counter,
425
//   .fence_ring_emit = &r300_fence_ring_emit,
355
//	.fence_ring_emit = &r300_fence_ring_emit,
426
//   .cs_parse = &r300_cs_parse,
356
//	.cs_parse = &r300_cs_parse,
427
//   .copy_blit = &r100_copy_blit,
357
//	.copy_blit = &r100_copy_blit,
428
//   .copy_dma = &r300_copy_dma,
358
//	.copy_dma = &r300_copy_dma,
429
//   .copy = &r100_copy_blit,
359
//	.copy = &r100_copy_blit,
Line 430... Line 360...
430
//   .set_engine_clock = &radeon_atom_set_engine_clock,
360
	.set_engine_clock = &radeon_atom_set_engine_clock,
431
//   .set_memory_clock = &radeon_atom_set_memory_clock,
361
	.set_memory_clock = &radeon_atom_set_memory_clock,
432
//   .set_pcie_lanes = &rv370_set_pcie_lanes,
362
	.set_pcie_lanes = &rv370_set_pcie_lanes,
433
//   .set_clock_gating = &radeon_atom_set_clock_gating,
-
 
434
	.set_surface_reg = r100_set_surface_reg,
-
 
435
	.clear_surface_reg = r100_clear_surface_reg,
363
	.set_clock_gating = &radeon_atom_set_clock_gating,
436
	.bandwidth_update = &rv515_bandwidth_update,
364
	.set_surface_reg = r100_set_surface_reg,
437
};
-
 
438
 
365
	.clear_surface_reg = r100_clear_surface_reg,
439
 
366
	.bandwidth_update = &rv515_bandwidth_update,
-
 
367
};
440
/*
368
 
441
 * r520,rv530,rv560,rv570,r580
369
 
442
 */
370
/*
443
void r520_errata(struct radeon_device *rdev);
371
 * r520,rv530,rv560,rv570,r580
444
void r520_vram_info(struct radeon_device *rdev);
-
 
445
int r520_mc_init(struct radeon_device *rdev);
-
 
446
void r520_mc_fini(struct radeon_device *rdev);
-
 
447
void r520_bandwidth_update(struct radeon_device *rdev);
-
 
448
static struct radeon_asic r520_asic = {
-
 
449
	.init = &rv515_init,
-
 
450
    .errata = &r520_errata,
-
 
451
    .vram_info = &r520_vram_info,
-
 
452
	.vga_set_state = &r100_vga_set_state,
372
 */
453
    .gpu_reset = &rv515_gpu_reset,
373
int r520_init(struct radeon_device *rdev);
454
    .mc_init = &r520_mc_init,
374
int r520_resume(struct radeon_device *rdev);
455
    .mc_fini = &r520_mc_fini,
-
 
456
//    .wb_init = &r100_wb_init,
375
static struct radeon_asic r520_asic = {
457
//    .wb_fini = &r100_wb_fini,
376
	.init = &r520_init,
458
	.gart_init = &rv370_pcie_gart_init,
377
//	.fini = &rv515_fini,
459
	.gart_fini = &rv370_pcie_gart_fini,
378
//	.suspend = &rv515_suspend,
460
	.gart_enable = &rv370_pcie_gart_enable,
379
//	.resume = &r520_resume,
-
 
380
//	.vga_set_state = &r100_vga_set_state,
461
    .gart_disable = &rv370_pcie_gart_disable,
381
    .gpu_reset = &rv515_gpu_reset,
462
    .gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
382
    .gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
463
    .gart_set_page = &rv370_pcie_gart_set_page,
383
    .gart_set_page = &rv370_pcie_gart_set_page,
464
    .cp_init = &r100_cp_init,
384
//	.cp_commit = &r100_cp_commit,
465
//    .cp_fini = &r100_cp_fini,
385
//  .ring_start = &rv515_ring_start,
466
//   .cp_disable = &r100_cp_disable,
386
//  .ring_test = &r100_ring_test,
467
	.cp_commit = &r100_cp_commit,
387
//	.ring_ib_execute = &r100_ring_ib_execute,
468
    .ring_start = &rv515_ring_start,
388
//	.irq_set = &rs600_irq_set,
469
//   .irq_set = &r100_irq_set,
389
//	.irq_process = &rs600_irq_process,
470
//   .irq_process = &r100_irq_process,
390
//	.get_vblank_counter = &rs600_get_vblank_counter,
471
//   .fence_ring_emit = &r300_fence_ring_emit,
391
//	.fence_ring_emit = &r300_fence_ring_emit,
472
//   .cs_parse = &r300_cs_parse,
392
//	.cs_parse = &r300_cs_parse,
473
//   .copy_blit = &r100_copy_blit,
393
//	.copy_blit = &r100_copy_blit,
Line 474... Line 394...
474
//   .copy_dma = &r300_copy_dma,
394
//	.copy_dma = &r300_copy_dma,
475
//   .copy = &r100_copy_blit,
395
//	.copy = &r100_copy_blit,
476
//   .set_engine_clock = &radeon_atom_set_engine_clock,
396
	.set_engine_clock = &radeon_atom_set_engine_clock,
477
//   .set_memory_clock = &radeon_atom_set_memory_clock,
397
	.set_memory_clock = &radeon_atom_set_memory_clock,
478
//   .set_pcie_lanes = &rv370_set_pcie_lanes,
398
	.set_pcie_lanes = &rv370_set_pcie_lanes,
479
//   .set_clock_gating = &radeon_atom_set_clock_gating,
399
	.set_clock_gating = &radeon_atom_set_clock_gating,
480
	.set_surface_reg = r100_set_surface_reg,
400
	.set_surface_reg = r100_set_surface_reg,