Subversion Repositories Kolibri OS

Rev

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

Rev 2160 Rev 2997
Line 38... Line 38...
38
#include "atom.h"
38
#include "atom.h"
Line 39... Line 39...
39
 
39
 
40
/*
40
/*
41
 * Registers accessors functions.
41
 * Registers accessors functions.
-
 
42
 */
-
 
43
/**
-
 
44
 * radeon_invalid_rreg - dummy reg read function
-
 
45
 *
-
 
46
 * @rdev: radeon device pointer
-
 
47
 * @reg: offset of register
-
 
48
 *
-
 
49
 * Dummy register read function.  Used for register blocks
-
 
50
 * that certain asics don't have (all asics).
-
 
51
 * Returns the value in the register.
42
 */
52
 */
43
static uint32_t radeon_invalid_rreg(struct radeon_device *rdev, uint32_t reg)
53
static uint32_t radeon_invalid_rreg(struct radeon_device *rdev, uint32_t reg)
44
{
54
{
45
	DRM_ERROR("Invalid callback to read register 0x%04X\n", reg);
55
	DRM_ERROR("Invalid callback to read register 0x%04X\n", reg);
46
	BUG_ON(1);
56
	BUG_ON(1);
47
	return 0;
57
	return 0;
Line -... Line 58...
-
 
58
}
-
 
59
 
-
 
60
/**
-
 
61
 * radeon_invalid_wreg - dummy reg write function
-
 
62
 *
-
 
63
 * @rdev: radeon device pointer
-
 
64
 * @reg: offset of register
-
 
65
 * @v: value to write to the register
-
 
66
 *
-
 
67
 * Dummy register read function.  Used for register blocks
48
}
68
 * that certain asics don't have (all asics).
49
 
69
 */
50
static void radeon_invalid_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v)
70
static void radeon_invalid_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v)
51
{
71
{
52
	DRM_ERROR("Invalid callback to write register 0x%04X with 0x%08X\n",
72
	DRM_ERROR("Invalid callback to write register 0x%04X with 0x%08X\n",
53
		  reg, v);
73
		  reg, v);
Line -... Line 74...
-
 
74
	BUG_ON(1);
-
 
75
}
-
 
76
 
-
 
77
/**
-
 
78
 * radeon_register_accessor_init - sets up the register accessor callbacks
-
 
79
 *
-
 
80
 * @rdev: radeon device pointer
-
 
81
 *
54
	BUG_ON(1);
82
 * Sets up the register accessor callbacks for various register
55
}
83
 * apertures.  Not all asics have all apertures (all asics).
56
 
84
 */
57
static void radeon_register_accessor_init(struct radeon_device *rdev)
85
static void radeon_register_accessor_init(struct radeon_device *rdev)
58
{
86
{
Line 100... Line 128...
100
	}
128
	}
101
}
129
}
Line 102... Line 130...
102
 
130
 
-
 
131
 
-
 
132
/* helper to disable agp */
-
 
133
/**
-
 
134
 * radeon_agp_disable - AGP disable helper function
-
 
135
 *
-
 
136
 * @rdev: radeon device pointer
-
 
137
 *
-
 
138
 * Removes AGP flags and changes the gart callbacks on AGP
103
 
139
 * cards when using the internal gart rather than AGP (all asics).
104
/* helper to disable agp */
140
 */
105
void radeon_agp_disable(struct radeon_device *rdev)
141
void radeon_agp_disable(struct radeon_device *rdev)
106
{
142
{
107
	rdev->flags &= ~RADEON_IS_AGP;
143
	rdev->flags &= ~RADEON_IS_AGP;
Line 112... Line 148...
112
			rdev->family == CHIP_RV380 ||
148
			rdev->family == CHIP_RV380 ||
113
			rdev->family == CHIP_RV410 ||
149
			rdev->family == CHIP_RV410 ||
114
			rdev->family == CHIP_R423) {
150
			rdev->family == CHIP_R423) {
115
		DRM_INFO("Forcing AGP to PCIE mode\n");
151
		DRM_INFO("Forcing AGP to PCIE mode\n");
116
		rdev->flags |= RADEON_IS_PCIE;
152
		rdev->flags |= RADEON_IS_PCIE;
117
		rdev->asic->gart_tlb_flush = &rv370_pcie_gart_tlb_flush;
153
		rdev->asic->gart.tlb_flush = &rv370_pcie_gart_tlb_flush;
118
		rdev->asic->gart_set_page = &rv370_pcie_gart_set_page;
154
		rdev->asic->gart.set_page = &rv370_pcie_gart_set_page;
119
	} else {
155
	} else {
120
		DRM_INFO("Forcing AGP to PCI mode\n");
156
		DRM_INFO("Forcing AGP to PCI mode\n");
121
		rdev->flags |= RADEON_IS_PCI;
157
		rdev->flags |= RADEON_IS_PCI;
122
		rdev->asic->gart_tlb_flush = &r100_pci_gart_tlb_flush;
158
		rdev->asic->gart.tlb_flush = &r100_pci_gart_tlb_flush;
123
		rdev->asic->gart_set_page = &r100_pci_gart_set_page;
159
		rdev->asic->gart.set_page = &r100_pci_gart_set_page;
124
	}
160
	}
125
	rdev->mc.gtt_size = radeon_gart_size * 1024 * 1024;
161
	rdev->mc.gtt_size = radeon_gart_size * 1024 * 1024;
126
}
162
}
Line 127... Line 163...
127
 
163
 
Line 132... Line 168...
132
	.init = &r100_init,
168
	.init = &r100_init,
133
//	.fini = &r100_fini,
169
//	.fini = &r100_fini,
134
//	.suspend = &r100_suspend,
170
//	.suspend = &r100_suspend,
135
//	.resume = &r100_resume,
171
//	.resume = &r100_resume,
136
//	.vga_set_state = &r100_vga_set_state,
172
//	.vga_set_state = &r100_vga_set_state,
137
	.gpu_is_lockup = &r100_gpu_is_lockup,
-
 
138
	.asic_reset = &r100_asic_reset,
173
	.asic_reset = &r100_asic_reset,
-
 
174
//	.ioctl_wait_idle = NULL,
-
 
175
	.gui_idle = &r100_gui_idle,
-
 
176
	.mc_wait_for_idle = &r100_mc_wait_for_idle,
-
 
177
	.gart = {
139
	.gart_tlb_flush = &r100_pci_gart_tlb_flush,
178
		.tlb_flush = &r100_pci_gart_tlb_flush,
140
	.gart_set_page = &r100_pci_gart_set_page,
179
		.set_page = &r100_pci_gart_set_page,
-
 
180
	},
-
 
181
	.ring = {
-
 
182
		[RADEON_RING_TYPE_GFX_INDEX] = {
-
 
183
			.ib_execute = &r100_ring_ib_execute,
-
 
184
			.emit_fence = &r100_fence_ring_emit,
-
 
185
			.emit_semaphore = &r100_semaphore_ring_emit,
141
	.cp_commit = &r100_cp_commit,
186
//			.cs_parse = &r100_cs_parse,
142
	.ring_start = &r100_ring_start,
187
			.ring_start = &r100_ring_start,
143
	.ring_test = &r100_ring_test,
188
			.ring_test = &r100_ring_test,
144
	.ring_ib_execute = &r100_ring_ib_execute,
-
 
145
	.irq_set = &r100_irq_set,
189
			.ib_test = &r100_ib_test,
146
	.irq_process = &r100_irq_process,
190
			.is_lockup = &r100_gpu_is_lockup,
147
//	.get_vblank_counter = &r100_get_vblank_counter,
-
 
148
	.fence_ring_emit = &r100_fence_ring_emit,
-
 
149
//	.cs_parse = &r100_cs_parse,
191
		}
150
	.copy_blit = &r100_copy_blit,
192
	},
151
	.copy_dma = NULL,
193
	.irq = {
152
	.copy = &r100_copy_blit,
194
		.set = &r100_irq_set,
153
	.get_engine_clock = &radeon_legacy_get_engine_clock,
-
 
154
	.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
155
	.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
156
	.set_memory_clock = NULL,
195
		.process = &r100_irq_process,
157
	.get_pcie_lanes = NULL,
196
	},
158
	.set_pcie_lanes = NULL,
197
	.display = {
159
	.set_clock_gating = &radeon_legacy_set_clock_gating,
-
 
160
	.set_surface_reg = r100_set_surface_reg,
-
 
161
	.clear_surface_reg = r100_clear_surface_reg,
-
 
162
	.bandwidth_update = &r100_bandwidth_update,
198
		.bandwidth_update = &r100_bandwidth_update,
-
 
199
		.get_vblank_counter = &r100_get_vblank_counter,
-
 
200
		.wait_for_vblank = &r100_wait_for_vblank,
-
 
201
//		.set_backlight_level = &radeon_legacy_set_backlight_level,
-
 
202
//		.get_backlight_level = &radeon_legacy_get_backlight_level,
-
 
203
	},
-
 
204
	.copy = {
-
 
205
		.blit = &r100_copy_blit,
-
 
206
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
207
		.dma = NULL,
-
 
208
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
209
	.copy = &r100_copy_blit,
-
 
210
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
211
	},
-
 
212
	.surface = {
-
 
213
		.set_reg = r100_set_surface_reg,
-
 
214
		.clear_reg = r100_clear_surface_reg,
-
 
215
	},
-
 
216
	.hpd = {
163
	.hpd_init = &r100_hpd_init,
217
//		.init = &r100_hpd_init,
164
	.hpd_fini = &r100_hpd_fini,
218
//		.fini = &r100_hpd_fini,
165
	.hpd_sense = &r100_hpd_sense,
219
//		.sense = &r100_hpd_sense,
166
	.hpd_set_polarity = &r100_hpd_set_polarity,
220
//		.set_polarity = &r100_hpd_set_polarity,
-
 
221
	},
-
 
222
	.pm = {
-
 
223
//		.misc = &r100_pm_misc,
-
 
224
//		.prepare = &r100_pm_prepare,
-
 
225
//		.finish = &r100_pm_finish,
-
 
226
//		.init_profile = &r100_pm_init_profile,
-
 
227
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
-
 
228
//		.get_engine_clock = &radeon_legacy_get_engine_clock,
-
 
229
//		.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
230
//		.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
231
//		.set_memory_clock = NULL,
-
 
232
//		.get_pcie_lanes = NULL,
167
	.ioctl_wait_idle = NULL,
233
//		.set_pcie_lanes = NULL,
-
 
234
//		.set_clock_gating = &radeon_legacy_set_clock_gating,
-
 
235
	},
-
 
236
	.pflip = {
-
 
237
//		.pre_page_flip = &r100_pre_page_flip,
168
	.gui_idle = &r100_gui_idle,
238
//		.page_flip = &r100_page_flip,
-
 
239
//		.post_page_flip = &r100_post_page_flip,
-
 
240
	},
169
};
241
};
Line 170... Line 242...
170
 
242
 
171
static struct radeon_asic r200_asic = {
243
static struct radeon_asic r200_asic = {
172
	.init = &r100_init,
244
	.init = &r100_init,
173
//	.fini = &r100_fini,
245
//	.fini = &r100_fini,
174
//	.suspend = &r100_suspend,
246
//	.suspend = &r100_suspend,
175
//	.resume = &r100_resume,
247
//	.resume = &r100_resume,
176
//	.vga_set_state = &r100_vga_set_state,
-
 
177
	.gpu_is_lockup = &r100_gpu_is_lockup,
248
//	.vga_set_state = &r100_vga_set_state,
-
 
249
	.asic_reset = &r100_asic_reset,
-
 
250
//	.ioctl_wait_idle = NULL,
-
 
251
	.gui_idle = &r100_gui_idle,
-
 
252
	.mc_wait_for_idle = &r100_mc_wait_for_idle,
178
	.asic_reset = &r100_asic_reset,
253
	.gart = {
179
	.gart_tlb_flush = &r100_pci_gart_tlb_flush,
254
		.tlb_flush = &r100_pci_gart_tlb_flush,
-
 
255
		.set_page = &r100_pci_gart_set_page,
-
 
256
	},
-
 
257
	.ring = {
-
 
258
		[RADEON_RING_TYPE_GFX_INDEX] = {
-
 
259
			.ib_execute = &r100_ring_ib_execute,
-
 
260
			.emit_fence = &r100_fence_ring_emit,
180
	.gart_set_page = &r100_pci_gart_set_page,
261
			.emit_semaphore = &r100_semaphore_ring_emit,
181
	.cp_commit = &r100_cp_commit,
262
//			.cs_parse = &r100_cs_parse,
182
	.ring_start = &r100_ring_start,
263
			.ring_start = &r100_ring_start,
183
	.ring_test = &r100_ring_test,
-
 
184
	.ring_ib_execute = &r100_ring_ib_execute,
264
			.ring_test = &r100_ring_test,
185
	.irq_set = &r100_irq_set,
265
			.ib_test = &r100_ib_test,
186
	.irq_process = &r100_irq_process,
-
 
187
//	.get_vblank_counter = &r100_get_vblank_counter,
-
 
-
 
266
			.is_lockup = &r100_gpu_is_lockup,
-
 
267
		}
188
	.fence_ring_emit = &r100_fence_ring_emit,
268
	},
189
//	.cs_parse = &r100_cs_parse,
269
	.irq = {
190
	.copy_blit = &r100_copy_blit,
-
 
191
	.copy_dma = &r200_copy_dma,
270
		.set = &r100_irq_set,
192
	.copy = &r100_copy_blit,
-
 
193
	.get_engine_clock = &radeon_legacy_get_engine_clock,
-
 
194
	.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
195
	.get_memory_clock = &radeon_legacy_get_memory_clock,
271
		.process = &r100_irq_process,
196
	.set_memory_clock = NULL,
272
	},
197
	.set_pcie_lanes = NULL,
-
 
198
	.set_clock_gating = &radeon_legacy_set_clock_gating,
-
 
199
	.set_surface_reg = r100_set_surface_reg,
-
 
200
	.clear_surface_reg = r100_clear_surface_reg,
273
	.display = {
-
 
274
		.bandwidth_update = &r100_bandwidth_update,
-
 
275
		.get_vblank_counter = &r100_get_vblank_counter,
-
 
276
		.wait_for_vblank = &r100_wait_for_vblank,
-
 
277
//		.set_backlight_level = &radeon_legacy_set_backlight_level,
-
 
278
//		.get_backlight_level = &radeon_legacy_get_backlight_level,
-
 
279
	},
-
 
280
	.copy = {
-
 
281
		.blit = &r100_copy_blit,
-
 
282
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
283
		.dma = &r200_copy_dma,
-
 
284
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
285
		.copy = &r100_copy_blit,
-
 
286
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
287
	},
-
 
288
	.surface = {
-
 
289
		.set_reg = r100_set_surface_reg,
-
 
290
		.clear_reg = r100_clear_surface_reg,
-
 
291
	},
201
	.bandwidth_update = &r100_bandwidth_update,
292
	.hpd = {
202
	.hpd_init = &r100_hpd_init,
293
//		.init = &r100_hpd_init,
203
	.hpd_fini = &r100_hpd_fini,
294
//		.fini = &r100_hpd_fini,
204
	.hpd_sense = &r100_hpd_sense,
295
//		.sense = &r100_hpd_sense,
-
 
296
//		.set_polarity = &r100_hpd_set_polarity,
-
 
297
	},
-
 
298
	.pm = {
-
 
299
//		.misc = &r100_pm_misc,
-
 
300
//		.prepare = &r100_pm_prepare,
-
 
301
//		.finish = &r100_pm_finish,
-
 
302
//		.init_profile = &r100_pm_init_profile,
-
 
303
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
-
 
304
//		.get_engine_clock = &radeon_legacy_get_engine_clock,
-
 
305
//		.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
306
//		.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
307
//		.set_memory_clock = NULL,
205
	.hpd_set_polarity = &r100_hpd_set_polarity,
308
//		.get_pcie_lanes = NULL,
-
 
309
//		.set_pcie_lanes = NULL,
-
 
310
//		.set_clock_gating = &radeon_legacy_set_clock_gating,
-
 
311
	},
-
 
312
	.pflip = {
206
	.ioctl_wait_idle = NULL,
313
//		.pre_page_flip = &r100_pre_page_flip,
-
 
314
//		.page_flip = &r100_page_flip,
-
 
315
//		.post_page_flip = &r100_post_page_flip,
207
	.gui_idle = &r100_gui_idle,
316
	},
Line 208... Line 317...
208
};
317
};
209
 
318
 
210
static struct radeon_asic r300_asic = {
319
static struct radeon_asic r300_asic = {
211
	.init = &r300_init,
320
	.init = &r300_init,
212
//	.fini = &r300_fini,
321
//	.fini = &r300_fini,
213
//	.suspend = &r300_suspend,
322
//	.suspend = &r300_suspend,
214
//	.resume = &r300_resume,
323
//	.resume = &r300_resume,
-
 
324
//	.vga_set_state = &r100_vga_set_state,
-
 
325
	.asic_reset = &r300_asic_reset,
-
 
326
//	.ioctl_wait_idle = NULL,
-
 
327
	.gui_idle = &r100_gui_idle,
215
//	.vga_set_state = &r100_vga_set_state,
328
	.mc_wait_for_idle = &r300_mc_wait_for_idle,
216
	.asic_reset = &r300_asic_reset,
329
	.gart = {
-
 
330
		.tlb_flush = &r100_pci_gart_tlb_flush,
-
 
331
		.set_page = &r100_pci_gart_set_page,
-
 
332
	},
-
 
333
	.ring = {
-
 
334
		[RADEON_RING_TYPE_GFX_INDEX] = {
-
 
335
			.ib_execute = &r100_ring_ib_execute,
217
	.gart_tlb_flush = &r100_pci_gart_tlb_flush,
336
			.emit_fence = &r300_fence_ring_emit,
218
	.gart_set_page = &r100_pci_gart_set_page,
337
			.emit_semaphore = &r100_semaphore_ring_emit,
219
	.cp_commit = &r100_cp_commit,
338
//			.cs_parse = &r300_cs_parse,
220
	.ring_start = &r300_ring_start,
-
 
221
	.ring_test = &r100_ring_test,
339
			.ring_start = &r300_ring_start,
222
	.ring_ib_execute = &r100_ring_ib_execute,
340
			.ring_test = &r100_ring_test,
223
	.irq_set = &r100_irq_set,
-
 
224
	.irq_process = &r100_irq_process,
-
 
-
 
341
			.ib_test = &r100_ib_test,
-
 
342
			.is_lockup = &r100_gpu_is_lockup,
225
//	.get_vblank_counter = &r100_get_vblank_counter,
343
		}
226
	.fence_ring_emit = &r300_fence_ring_emit,
344
	},
227
//	.cs_parse = &r300_cs_parse,
345
	.irq = {
228
	.copy_blit = &r100_copy_blit,
346
		.set = &r100_irq_set,
229
	.copy_dma = &r200_copy_dma,
-
 
230
	.copy = &r100_copy_blit,
-
 
231
	.get_engine_clock = &radeon_legacy_get_engine_clock,
-
 
232
	.set_engine_clock = &radeon_legacy_set_engine_clock,
347
		.process = &r100_irq_process,
233
	.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
234
	.set_memory_clock = NULL,
-
 
235
	.get_pcie_lanes = &rv370_get_pcie_lanes,
-
 
236
	.set_pcie_lanes = &rv370_set_pcie_lanes,
-
 
237
	.set_clock_gating = &radeon_legacy_set_clock_gating,
-
 
238
	.set_surface_reg = r100_set_surface_reg,
348
	},
-
 
349
	.display = {
-
 
350
		.bandwidth_update = &r100_bandwidth_update,
-
 
351
		.get_vblank_counter = &r100_get_vblank_counter,
-
 
352
		.wait_for_vblank = &r100_wait_for_vblank,
-
 
353
//		.set_backlight_level = &radeon_legacy_set_backlight_level,
-
 
354
//		.get_backlight_level = &radeon_legacy_get_backlight_level,
-
 
355
	},
-
 
356
	.copy = {
-
 
357
		.blit = &r100_copy_blit,
-
 
358
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
359
		.dma = &r200_copy_dma,
-
 
360
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
361
		.copy = &r100_copy_blit,
-
 
362
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
363
	},
-
 
364
	.surface = {
-
 
365
		.set_reg = r100_set_surface_reg,
-
 
366
		.clear_reg = r100_clear_surface_reg,
239
	.clear_surface_reg = r100_clear_surface_reg,
367
	},
240
	.bandwidth_update = &r100_bandwidth_update,
368
	.hpd = {
241
	.hpd_init = &r100_hpd_init,
369
//		.init = &r100_hpd_init,
242
	.hpd_fini = &r100_hpd_fini,
370
//		.fini = &r100_hpd_fini,
-
 
371
//		.sense = &r100_hpd_sense,
-
 
372
//		.set_polarity = &r100_hpd_set_polarity,
-
 
373
	},
-
 
374
	.pm = {
-
 
375
//		.misc = &r100_pm_misc,
-
 
376
//		.prepare = &r100_pm_prepare,
-
 
377
//		.finish = &r100_pm_finish,
-
 
378
//		.init_profile = &r100_pm_init_profile,
-
 
379
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
-
 
380
//		.get_engine_clock = &radeon_legacy_get_engine_clock,
243
	.hpd_sense = &r100_hpd_sense,
381
//		.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
382
//		.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
383
//		.set_memory_clock = NULL,
-
 
384
//		.get_pcie_lanes = &rv370_get_pcie_lanes,
-
 
385
//		.set_pcie_lanes = &rv370_set_pcie_lanes,
-
 
386
//		.set_clock_gating = &radeon_legacy_set_clock_gating,
-
 
387
	},
244
	.hpd_set_polarity = &r100_hpd_set_polarity,
388
	.pflip = {
-
 
389
//		.pre_page_flip = &r100_pre_page_flip,
-
 
390
//		.page_flip = &r100_page_flip,
245
	.ioctl_wait_idle = NULL,
391
//		.post_page_flip = &r100_post_page_flip,
Line 246... Line 392...
246
	.gui_idle = &r100_gui_idle,
392
	},
247
};
393
};
248
 
394
 
249
static struct radeon_asic r300_asic_pcie = {
395
static struct radeon_asic r300_asic_pcie = {
250
	.init = &r300_init,
396
	.init = &r300_init,
251
//	.fini = &r300_fini,
397
//	.fini = &r300_fini,
252
//	.suspend = &r300_suspend,
398
//	.suspend = &r300_suspend,
-
 
399
//	.resume = &r300_resume,
-
 
400
//	.vga_set_state = &r100_vga_set_state,
-
 
401
	.asic_reset = &r300_asic_reset,
-
 
402
//	.ioctl_wait_idle = NULL,
253
//	.resume = &r300_resume,
403
	.gui_idle = &r100_gui_idle,
254
//	.vga_set_state = &r100_vga_set_state,
404
	.mc_wait_for_idle = &r300_mc_wait_for_idle,
-
 
405
	.gart = {
-
 
406
		.tlb_flush = &rv370_pcie_gart_tlb_flush,
-
 
407
		.set_page = &rv370_pcie_gart_set_page,
-
 
408
	},
-
 
409
	.ring = {
-
 
410
		[RADEON_RING_TYPE_GFX_INDEX] = {
255
	.asic_reset = &r300_asic_reset,
411
			.ib_execute = &r100_ring_ib_execute,
256
	.gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
412
			.emit_fence = &r300_fence_ring_emit,
257
	.gart_set_page = &rv370_pcie_gart_set_page,
413
			.emit_semaphore = &r100_semaphore_ring_emit,
258
	.cp_commit = &r100_cp_commit,
-
 
259
	.ring_start = &r300_ring_start,
414
//			.cs_parse = &r300_cs_parse,
260
	.ring_test = &r100_ring_test,
415
			.ring_start = &r300_ring_start,
261
	.ring_ib_execute = &r100_ring_ib_execute,
-
 
262
	.irq_set = &r100_irq_set,
-
 
-
 
416
			.ring_test = &r100_ring_test,
-
 
417
			.ib_test = &r100_ib_test,
263
	.irq_process = &r100_irq_process,
418
			.is_lockup = &r100_gpu_is_lockup,
264
//	.get_vblank_counter = &r100_get_vblank_counter,
419
		}
265
	.fence_ring_emit = &r300_fence_ring_emit,
420
	},
266
//	.cs_parse = &r300_cs_parse,
421
	.irq = {
267
	.copy_blit = &r100_copy_blit,
-
 
268
	.copy_dma = &r200_copy_dma,
-
 
269
	.copy = &r100_copy_blit,
-
 
270
	.get_engine_clock = &radeon_legacy_get_engine_clock,
422
		.set = &r100_irq_set,
271
	.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
272
	.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
273
	.set_memory_clock = NULL,
-
 
274
	.set_pcie_lanes = &rv370_set_pcie_lanes,
-
 
275
	.set_clock_gating = &radeon_legacy_set_clock_gating,
423
		.process = &r100_irq_process,
-
 
424
	},
-
 
425
	.display = {
-
 
426
		.bandwidth_update = &r100_bandwidth_update,
-
 
427
		.get_vblank_counter = &r100_get_vblank_counter,
-
 
428
		.wait_for_vblank = &r100_wait_for_vblank,
-
 
429
//		.set_backlight_level = &radeon_legacy_set_backlight_level,
-
 
430
//		.get_backlight_level = &radeon_legacy_get_backlight_level,
-
 
431
	},
-
 
432
	.copy = {
-
 
433
		.blit = &r100_copy_blit,
-
 
434
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
435
		.dma = &r200_copy_dma,
-
 
436
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
437
		.copy = &r100_copy_blit,
-
 
438
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
439
	},
-
 
440
	.surface = {
-
 
441
		.set_reg = r100_set_surface_reg,
276
	.set_surface_reg = r100_set_surface_reg,
442
		.clear_reg = r100_clear_surface_reg,
277
	.clear_surface_reg = r100_clear_surface_reg,
443
	},
278
	.bandwidth_update = &r100_bandwidth_update,
444
	.hpd = {
279
	.hpd_init = &r100_hpd_init,
445
		.init = &r100_hpd_init,
-
 
446
		.fini = &r100_hpd_fini,
-
 
447
		.sense = &r100_hpd_sense,
-
 
448
		.set_polarity = &r100_hpd_set_polarity,
-
 
449
	},
-
 
450
	.pm = {
-
 
451
//		.misc = &r100_pm_misc,
-
 
452
//		.prepare = &r100_pm_prepare,
-
 
453
//		.finish = &r100_pm_finish,
-
 
454
//		.init_profile = &r100_pm_init_profile,
-
 
455
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
280
	.hpd_fini = &r100_hpd_fini,
456
//		.get_engine_clock = &radeon_legacy_get_engine_clock,
-
 
457
//		.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
458
//		.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
459
//		.set_memory_clock = NULL,
-
 
460
//		.get_pcie_lanes = &rv370_get_pcie_lanes,
-
 
461
//		.set_pcie_lanes = &rv370_set_pcie_lanes,
-
 
462
//		.set_clock_gating = &radeon_legacy_set_clock_gating,
281
	.hpd_sense = &r100_hpd_sense,
463
	},
-
 
464
	.pflip = {
-
 
465
//		.pre_page_flip = &r100_pre_page_flip,
282
	.hpd_set_polarity = &r100_hpd_set_polarity,
466
//		.page_flip = &r100_page_flip,
Line 283... Line 467...
283
	.ioctl_wait_idle = NULL,
467
//		.post_page_flip = &r100_post_page_flip,
284
	.gui_idle = &r100_gui_idle,
468
	},
285
};
469
};
286
 
470
 
287
static struct radeon_asic r420_asic = {
471
static struct radeon_asic r420_asic = {
288
	.init = &r420_init,
472
	.init = &r420_init,
289
//	.fini = &r420_fini,
473
//	.fini = &r420_fini,
-
 
474
//	.suspend = &r420_suspend,
-
 
475
//	.resume = &r420_resume,
-
 
476
//	.vga_set_state = &r100_vga_set_state,
-
 
477
	.asic_reset = &r300_asic_reset,
290
//	.suspend = &r420_suspend,
478
//	.ioctl_wait_idle = NULL,
291
//	.resume = &r420_resume,
479
	.gui_idle = &r100_gui_idle,
-
 
480
	.mc_wait_for_idle = &r300_mc_wait_for_idle,
-
 
481
	.gart = {
-
 
482
		.tlb_flush = &rv370_pcie_gart_tlb_flush,
-
 
483
		.set_page = &rv370_pcie_gart_set_page,
-
 
484
	},
-
 
485
	.ring = {
292
//	.vga_set_state = &r100_vga_set_state,
486
		[RADEON_RING_TYPE_GFX_INDEX] = {
293
	.asic_reset = &r300_asic_reset,
487
			.ib_execute = &r100_ring_ib_execute,
294
	.gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
488
			.emit_fence = &r300_fence_ring_emit,
295
	.gart_set_page = &rv370_pcie_gart_set_page,
-
 
296
	.cp_commit = &r100_cp_commit,
489
			.emit_semaphore = &r100_semaphore_ring_emit,
297
	.ring_start = &r300_ring_start,
490
//			.cs_parse = &r300_cs_parse,
298
	.ring_test = &r100_ring_test,
-
 
299
	.ring_ib_execute = &r100_ring_ib_execute,
-
 
300
	.irq_set = &r100_irq_set,
491
			.ring_start = &r300_ring_start,
301
	.irq_process = &r100_irq_process,
492
			.ring_test = &r100_ring_test,
302
//	.get_vblank_counter = &r100_get_vblank_counter,
493
			.ib_test = &r100_ib_test,
303
	.fence_ring_emit = &r300_fence_ring_emit,
494
			.is_lockup = &r100_gpu_is_lockup,
304
//	.cs_parse = &r300_cs_parse,
-
 
305
	.copy_blit = &r100_copy_blit,
-
 
306
	.copy_dma = &r200_copy_dma,
-
 
307
	.copy = &r100_copy_blit,
-
 
308
	.get_engine_clock = &radeon_atom_get_engine_clock,
495
		}
-
 
496
	},
309
	.set_engine_clock = &radeon_atom_set_engine_clock,
497
	.irq = {
310
	.get_memory_clock = &radeon_atom_get_memory_clock,
-
 
311
	.set_memory_clock = &radeon_atom_set_memory_clock,
-
 
312
	.get_pcie_lanes = &rv370_get_pcie_lanes,
-
 
313
	.set_pcie_lanes = &rv370_set_pcie_lanes,
498
		.set = &r100_irq_set,
-
 
499
		.process = &r100_irq_process,
-
 
500
	},
-
 
501
	.display = {
-
 
502
		.bandwidth_update = &r100_bandwidth_update,
-
 
503
		.get_vblank_counter = &r100_get_vblank_counter,
-
 
504
		.wait_for_vblank = &r100_wait_for_vblank,
-
 
505
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
506
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
507
	},
-
 
508
	.copy = {
-
 
509
		.blit = &r100_copy_blit,
-
 
510
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
511
		.dma = &r200_copy_dma,
-
 
512
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
513
		.copy = &r100_copy_blit,
-
 
514
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
515
	},
-
 
516
	.surface = {
314
	.set_clock_gating = &radeon_atom_set_clock_gating,
517
		.set_reg = r100_set_surface_reg,
315
	.set_surface_reg = r100_set_surface_reg,
518
		.clear_reg = r100_clear_surface_reg,
316
	.clear_surface_reg = r100_clear_surface_reg,
519
	},
317
	.bandwidth_update = &r100_bandwidth_update,
520
	.hpd = {
-
 
521
//		.init = &r100_hpd_init,
-
 
522
//		.fini = &r100_hpd_fini,
318
	.hpd_init = &r100_hpd_init,
523
//		.sense = &r100_hpd_sense,
-
 
524
//		.set_polarity = &r100_hpd_set_polarity,
319
	.hpd_fini = &r100_hpd_fini,
525
	},
-
 
526
	.pm = {
-
 
527
//		.misc = &r100_pm_misc,
-
 
528
//		.prepare = &r100_pm_prepare,
-
 
529
//		.finish = &r100_pm_finish,
-
 
530
//		.init_profile = &r420_pm_init_profile,
-
 
531
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
-
 
532
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
533
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
534
//		.get_memory_clock = &radeon_atom_get_memory_clock,
-
 
535
//		.set_memory_clock = &radeon_atom_set_memory_clock,
-
 
536
//		.get_pcie_lanes = &rv370_get_pcie_lanes,
-
 
537
//		.set_pcie_lanes = &rv370_set_pcie_lanes,
-
 
538
//		.set_clock_gating = &radeon_atom_set_clock_gating,
-
 
539
	},
-
 
540
	.pflip = {
320
	.hpd_sense = &r100_hpd_sense,
541
//		.pre_page_flip = &r100_pre_page_flip,
Line 321... Line 542...
321
	.hpd_set_polarity = &r100_hpd_set_polarity,
542
//		.page_flip = &r100_page_flip,
322
	.ioctl_wait_idle = NULL,
543
//		.post_page_flip = &r100_post_page_flip,
323
	.gui_idle = &r100_gui_idle,
544
	},
324
};
545
};
325
 
546
 
326
static struct radeon_asic rs400_asic = {
547
static struct radeon_asic rs400_asic = {
327
	.init = &rs400_init,
548
	.init = &rs400_init,
-
 
549
//	.fini = &rs400_fini,
-
 
550
//	.suspend = &rs400_suspend,
-
 
551
//	.resume = &rs400_resume,
-
 
552
//	.vga_set_state = &r100_vga_set_state,
328
//	.fini = &rs400_fini,
553
	.asic_reset = &r300_asic_reset,
329
//	.suspend = &rs400_suspend,
554
//	.ioctl_wait_idle = NULL,
-
 
555
	.gui_idle = &r100_gui_idle,
-
 
556
	.mc_wait_for_idle = &rs400_mc_wait_for_idle,
-
 
557
	.gart = {
-
 
558
		.tlb_flush = &rs400_gart_tlb_flush,
-
 
559
		.set_page = &rs400_gart_set_page,
-
 
560
	},
330
//	.resume = &rs400_resume,
561
	.ring = {
331
//	.vga_set_state = &r100_vga_set_state,
562
		[RADEON_RING_TYPE_GFX_INDEX] = {
332
	.asic_reset = &r300_asic_reset,
563
			.ib_execute = &r100_ring_ib_execute,
333
	.gart_tlb_flush = &rs400_gart_tlb_flush,
-
 
334
	.gart_set_page = &rs400_gart_set_page,
564
			.emit_fence = &r300_fence_ring_emit,
335
	.cp_commit = &r100_cp_commit,
565
			.emit_semaphore = &r100_semaphore_ring_emit,
336
	.ring_start = &r300_ring_start,
-
 
337
	.ring_test = &r100_ring_test,
-
 
-
 
566
//			.cs_parse = &r300_cs_parse,
-
 
567
			.ring_start = &r300_ring_start,
338
	.ring_ib_execute = &r100_ring_ib_execute,
568
			.ring_test = &r100_ring_test,
339
	.irq_set = &r100_irq_set,
569
			.ib_test = &r100_ib_test,
340
	.irq_process = &r100_irq_process,
-
 
341
//	.get_vblank_counter = &r100_get_vblank_counter,
570
			.is_lockup = &r100_gpu_is_lockup,
342
	.fence_ring_emit = &r300_fence_ring_emit,
-
 
343
//	.cs_parse = &r300_cs_parse,
-
 
344
	.copy_blit = &r100_copy_blit,
-
 
345
	.copy_dma = &r200_copy_dma,
-
 
346
	.copy = &r100_copy_blit,
571
		}
347
	.get_engine_clock = &radeon_legacy_get_engine_clock,
572
	},
348
	.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
349
	.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
350
	.set_memory_clock = NULL,
-
 
351
	.get_pcie_lanes = NULL,
573
	.irq = {
-
 
574
		.set = &r100_irq_set,
-
 
575
		.process = &r100_irq_process,
-
 
576
	},
-
 
577
	.display = {
-
 
578
		.bandwidth_update = &r100_bandwidth_update,
-
 
579
		.get_vblank_counter = &r100_get_vblank_counter,
-
 
580
		.wait_for_vblank = &r100_wait_for_vblank,
-
 
581
//		.set_backlight_level = &radeon_legacy_set_backlight_level,
-
 
582
//		.get_backlight_level = &radeon_legacy_get_backlight_level,
-
 
583
	},
-
 
584
	.copy = {
-
 
585
		.blit = &r100_copy_blit,
-
 
586
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
587
		.dma = &r200_copy_dma,
-
 
588
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
589
		.copy = &r100_copy_blit,
-
 
590
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
591
	},
352
	.set_pcie_lanes = NULL,
592
	.surface = {
353
	.set_clock_gating = &radeon_legacy_set_clock_gating,
593
		.set_reg = r100_set_surface_reg,
354
	.set_surface_reg = r100_set_surface_reg,
594
		.clear_reg = r100_clear_surface_reg,
355
	.clear_surface_reg = r100_clear_surface_reg,
595
	},
-
 
596
	.hpd = {
-
 
597
//		.init = &r100_hpd_init,
-
 
598
//		.fini = &r100_hpd_fini,
-
 
599
//		.sense = &r100_hpd_sense,
-
 
600
//		.set_polarity = &r100_hpd_set_polarity,
-
 
601
	},
-
 
602
	.pm = {
-
 
603
//		.misc = &r100_pm_misc,
-
 
604
//		.prepare = &r100_pm_prepare,
-
 
605
//		.finish = &r100_pm_finish,
-
 
606
//		.init_profile = &r100_pm_init_profile,
-
 
607
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
356
	.bandwidth_update = &r100_bandwidth_update,
608
//		.get_engine_clock = &radeon_legacy_get_engine_clock,
-
 
609
//		.set_engine_clock = &radeon_legacy_set_engine_clock,
-
 
610
//		.get_memory_clock = &radeon_legacy_get_memory_clock,
-
 
611
//		.set_memory_clock = NULL,
-
 
612
//		.get_pcie_lanes = NULL,
357
	.hpd_init = &r100_hpd_init,
613
//		.set_pcie_lanes = NULL,
-
 
614
//		.set_clock_gating = &radeon_legacy_set_clock_gating,
-
 
615
	},
358
	.hpd_fini = &r100_hpd_fini,
616
	.pflip = {
Line 359... Line 617...
359
	.hpd_sense = &r100_hpd_sense,
617
//		.pre_page_flip = &r100_pre_page_flip,
360
	.hpd_set_polarity = &r100_hpd_set_polarity,
618
//		.page_flip = &r100_page_flip,
361
	.ioctl_wait_idle = NULL,
619
//		.post_page_flip = &r100_post_page_flip,
362
	.gui_idle = &r100_gui_idle,
620
	},
363
};
621
};
364
 
622
 
365
static struct radeon_asic rs600_asic = {
623
static struct radeon_asic rs600_asic = {
-
 
624
	.init = &rs600_init,
-
 
625
//	.fini = &rs600_fini,
-
 
626
//	.suspend = &rs600_suspend,
-
 
627
//	.resume = &rs600_resume,
366
	.init = &rs600_init,
628
//	.vga_set_state = &r100_vga_set_state,
367
//	.fini = &rs600_fini,
629
	.asic_reset = &rs600_asic_reset,
-
 
630
//	.ioctl_wait_idle = NULL,
-
 
631
	.gui_idle = &r100_gui_idle,
-
 
632
	.mc_wait_for_idle = &rs600_mc_wait_for_idle,
-
 
633
	.gart = {
-
 
634
		.tlb_flush = &rs600_gart_tlb_flush,
-
 
635
		.set_page = &rs600_gart_set_page,
368
//	.suspend = &rs600_suspend,
636
	},
369
//	.resume = &rs600_resume,
637
	.ring = {
370
//	.vga_set_state = &r100_vga_set_state,
638
		[RADEON_RING_TYPE_GFX_INDEX] = {
371
	.asic_reset = &rs600_asic_reset,
-
 
372
	.gart_tlb_flush = &rs600_gart_tlb_flush,
639
			.ib_execute = &r100_ring_ib_execute,
373
	.gart_set_page = &rs600_gart_set_page,
640
			.emit_fence = &r300_fence_ring_emit,
374
	.cp_commit = &r100_cp_commit,
-
 
375
	.ring_start = &r300_ring_start,
-
 
-
 
641
			.emit_semaphore = &r100_semaphore_ring_emit,
-
 
642
//			.cs_parse = &r300_cs_parse,
376
	.ring_test = &r100_ring_test,
643
			.ring_start = &r300_ring_start,
377
	.ring_ib_execute = &r100_ring_ib_execute,
-
 
378
	.irq_set = &rs600_irq_set,
644
			.ring_test = &r100_ring_test,
379
	.irq_process = &rs600_irq_process,
645
			.ib_test = &r100_ib_test,
380
//	.get_vblank_counter = &rs600_get_vblank_counter,
-
 
381
	.fence_ring_emit = &r300_fence_ring_emit,
-
 
382
//   .cs_parse = &r300_cs_parse,
-
 
383
    .copy_blit = &r100_copy_blit,
-
 
384
	.copy_dma = &r200_copy_dma,
646
			.is_lockup = &r100_gpu_is_lockup,
385
    .copy = &r100_copy_blit,
647
		}
386
	.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
387
	.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
388
	.get_memory_clock = &radeon_atom_get_memory_clock,
-
 
389
	.set_memory_clock = &radeon_atom_set_memory_clock,
648
	},
-
 
649
	.irq = {
-
 
650
		.set = &rs600_irq_set,
-
 
651
		.process = &rs600_irq_process,
-
 
652
	},
-
 
653
	.display = {
-
 
654
		.bandwidth_update = &rs600_bandwidth_update,
-
 
655
		.get_vblank_counter = &rs600_get_vblank_counter,
-
 
656
		.wait_for_vblank = &avivo_wait_for_vblank,
-
 
657
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
658
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
659
	},
-
 
660
	.copy = {
-
 
661
		.blit = &r100_copy_blit,
-
 
662
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
663
		.dma = &r200_copy_dma,
-
 
664
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
665
		.copy = &r100_copy_blit,
-
 
666
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
390
	.get_pcie_lanes = NULL,
667
	},
391
	.set_pcie_lanes = NULL,
668
	.surface = {
392
	.set_clock_gating = &radeon_atom_set_clock_gating,
669
		.set_reg = r100_set_surface_reg,
393
	.set_surface_reg = r100_set_surface_reg,
670
		.clear_reg = r100_clear_surface_reg,
-
 
671
	},
-
 
672
	.hpd = {
-
 
673
//		.init = &rs600_hpd_init,
-
 
674
//		.fini = &rs600_hpd_fini,
-
 
675
//		.sense = &rs600_hpd_sense,
-
 
676
//		.set_polarity = &rs600_hpd_set_polarity,
-
 
677
	},
-
 
678
	.pm = {
-
 
679
//		.misc = &rs600_pm_misc,
-
 
680
//		.prepare = &rs600_pm_prepare,
-
 
681
//		.finish = &rs600_pm_finish,
-
 
682
//		.init_profile = &r420_pm_init_profile,
394
	.clear_surface_reg = r100_clear_surface_reg,
683
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
-
 
684
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
685
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
686
//		.get_memory_clock = &radeon_atom_get_memory_clock,
-
 
687
//		.set_memory_clock = &radeon_atom_set_memory_clock,
395
	.bandwidth_update = &rs600_bandwidth_update,
688
//		.get_pcie_lanes = NULL,
-
 
689
//		.set_pcie_lanes = NULL,
-
 
690
//		.set_clock_gating = &radeon_atom_set_clock_gating,
396
	.hpd_init = &rs600_hpd_init,
691
	},
Line 397... Line 692...
397
	.hpd_fini = &rs600_hpd_fini,
692
	.pflip = {
398
	.hpd_sense = &rs600_hpd_sense,
693
//		.pre_page_flip = &rs600_pre_page_flip,
399
	.hpd_set_polarity = &rs600_hpd_set_polarity,
694
//		.page_flip = &rs600_page_flip,
400
	.ioctl_wait_idle = NULL,
695
//		.post_page_flip = &rs600_post_page_flip,
401
	.gui_idle = &r100_gui_idle,
696
	},
402
};
697
};
403
 
698
 
-
 
699
static struct radeon_asic rs690_asic = {
-
 
700
	.init = &rs690_init,
-
 
701
//	.fini = &rs690_fini,
-
 
702
//	.suspend = &rs690_suspend,
404
static struct radeon_asic rs690_asic = {
703
//	.resume = &rs690_resume,
405
	.init = &rs690_init,
704
//	.vga_set_state = &r100_vga_set_state,
-
 
705
	.asic_reset = &rs600_asic_reset,
-
 
706
//	.ioctl_wait_idle = NULL,
-
 
707
	.gui_idle = &r100_gui_idle,
-
 
708
	.mc_wait_for_idle = &rs690_mc_wait_for_idle,
-
 
709
	.gart = {
-
 
710
		.tlb_flush = &rs400_gart_tlb_flush,
406
//	.fini = &rs690_fini,
711
		.set_page = &rs400_gart_set_page,
407
//	.suspend = &rs690_suspend,
712
	},
408
//	.resume = &rs690_resume,
713
	.ring = {
409
//	.vga_set_state = &r100_vga_set_state,
-
 
410
	.asic_reset = &rs600_asic_reset,
714
		[RADEON_RING_TYPE_GFX_INDEX] = {
411
	.gart_tlb_flush = &rs400_gart_tlb_flush,
715
			.ib_execute = &r100_ring_ib_execute,
412
	.gart_set_page = &rs400_gart_set_page,
-
 
413
	.cp_commit = &r100_cp_commit,
-
 
-
 
716
			.emit_fence = &r300_fence_ring_emit,
414
	.ring_start = &r300_ring_start,
717
			.emit_semaphore = &r100_semaphore_ring_emit,
415
	.ring_test = &r100_ring_test,
718
//			.cs_parse = &r300_cs_parse,
416
	.ring_ib_execute = &r100_ring_ib_execute,
719
			.ring_start = &r300_ring_start,
417
	.irq_set = &rs600_irq_set,
720
			.ring_test = &r100_ring_test,
418
	.irq_process = &rs600_irq_process,
-
 
419
//	.get_vblank_counter = &rs600_get_vblank_counter,
-
 
420
	.fence_ring_emit = &r300_fence_ring_emit,
-
 
421
//	.cs_parse = &r300_cs_parse,
-
 
422
	.copy_blit = &r100_copy_blit,
721
			.ib_test = &r100_ib_test,
423
	.copy_dma = &r200_copy_dma,
722
			.is_lockup = &r100_gpu_is_lockup,
424
	.copy = &r200_copy_dma,
-
 
425
	.get_engine_clock = &radeon_atom_get_engine_clock,
723
		}
426
	.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
427
	.get_memory_clock = &radeon_atom_get_memory_clock,
724
	},
-
 
725
	.irq = {
-
 
726
		.set = &rs600_irq_set,
-
 
727
		.process = &rs600_irq_process,
-
 
728
	},
-
 
729
	.display = {
-
 
730
		.get_vblank_counter = &rs600_get_vblank_counter,
-
 
731
		.bandwidth_update = &rs690_bandwidth_update,
-
 
732
		.wait_for_vblank = &avivo_wait_for_vblank,
-
 
733
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
734
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
735
	},
-
 
736
	.copy = {
-
 
737
		.blit = &r100_copy_blit,
-
 
738
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
739
		.dma = &r200_copy_dma,
-
 
740
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
741
		.copy = &r200_copy_dma,
428
	.set_memory_clock = &radeon_atom_set_memory_clock,
742
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
429
	.get_pcie_lanes = NULL,
743
	},
430
	.set_pcie_lanes = NULL,
744
	.surface = {
431
	.set_clock_gating = &radeon_atom_set_clock_gating,
745
		.set_reg = r100_set_surface_reg,
-
 
746
		.clear_reg = r100_clear_surface_reg,
-
 
747
	},
-
 
748
	.hpd = {
-
 
749
//		.init = &rs600_hpd_init,
-
 
750
//		.fini = &rs600_hpd_fini,
-
 
751
		.sense = &rs600_hpd_sense,
-
 
752
		.set_polarity = &rs600_hpd_set_polarity,
-
 
753
	},
-
 
754
	.pm = {
-
 
755
//		.misc = &rs600_pm_misc,
-
 
756
//		.prepare = &rs600_pm_prepare,
-
 
757
//		.finish = &rs600_pm_finish,
432
	.set_surface_reg = r100_set_surface_reg,
758
//		.init_profile = &r420_pm_init_profile,
-
 
759
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
-
 
760
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
761
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
762
//		.get_memory_clock = &radeon_atom_get_memory_clock,
433
	.clear_surface_reg = r100_clear_surface_reg,
763
//		.set_memory_clock = &radeon_atom_set_memory_clock,
-
 
764
//		.get_pcie_lanes = NULL,
-
 
765
//		.set_pcie_lanes = NULL,
434
	.bandwidth_update = &rs690_bandwidth_update,
766
//		.set_clock_gating = &radeon_atom_set_clock_gating,
Line 435... Line 767...
435
	.hpd_init = &rs600_hpd_init,
767
	},
436
	.hpd_fini = &rs600_hpd_fini,
768
	.pflip = {
437
	.hpd_sense = &rs600_hpd_sense,
769
//		.pre_page_flip = &rs600_pre_page_flip,
438
	.hpd_set_polarity = &rs600_hpd_set_polarity,
770
//		.page_flip = &rs600_page_flip,
439
	.ioctl_wait_idle = NULL,
771
//		.post_page_flip = &rs600_post_page_flip,
440
	.gui_idle = &r100_gui_idle,
772
	},
441
};
773
};
-
 
774
 
-
 
775
static struct radeon_asic rv515_asic = {
-
 
776
	.init = &rv515_init,
-
 
777
//	.fini = &rv515_fini,
442
 
778
//	.suspend = &rv515_suspend,
443
static struct radeon_asic rv515_asic = {
779
//	.resume = &rv515_resume,
-
 
780
//	.vga_set_state = &r100_vga_set_state,
-
 
781
	.asic_reset = &rs600_asic_reset,
-
 
782
//	.ioctl_wait_idle = NULL,
-
 
783
	.gui_idle = &r100_gui_idle,
-
 
784
	.mc_wait_for_idle = &rv515_mc_wait_for_idle,
-
 
785
	.gart = {
444
	.init = &rv515_init,
786
		.tlb_flush = &rv370_pcie_gart_tlb_flush,
445
//	.fini = &rv515_fini,
787
		.set_page = &rv370_pcie_gart_set_page,
446
//	.suspend = &rv515_suspend,
788
	},
447
//	.resume = &rv515_resume,
-
 
448
//	.vga_set_state = &r100_vga_set_state,
789
	.ring = {
449
	.asic_reset = &rs600_asic_reset,
790
		[RADEON_RING_TYPE_GFX_INDEX] = {
450
	.gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
-
 
451
	.gart_set_page = &rv370_pcie_gart_set_page,
-
 
-
 
791
			.ib_execute = &r100_ring_ib_execute,
-
 
792
			.emit_fence = &r300_fence_ring_emit,
452
	.cp_commit = &r100_cp_commit,
793
			.emit_semaphore = &r100_semaphore_ring_emit,
453
	.ring_start = &rv515_ring_start,
794
//			.cs_parse = &r300_cs_parse,
454
	.ring_test = &r100_ring_test,
795
			.ring_start = &rv515_ring_start,
-
 
796
			.ring_test = &r100_ring_test,
455
	.ring_ib_execute = &r100_ring_ib_execute,
797
			.ib_test = &r100_ib_test,
456
	.irq_set = &rs600_irq_set,
-
 
457
	.irq_process = &rs600_irq_process,
-
 
458
//	.get_vblank_counter = &rs600_get_vblank_counter,
-
 
459
	.fence_ring_emit = &r300_fence_ring_emit,
-
 
460
//	.cs_parse = &r300_cs_parse,
798
			.is_lockup = &r100_gpu_is_lockup,
461
	.copy_blit = &r100_copy_blit,
-
 
462
	.copy_dma = &r200_copy_dma,
-
 
463
	.copy = &r100_copy_blit,
-
 
464
	.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
465
	.set_engine_clock = &radeon_atom_set_engine_clock,
799
		}
-
 
800
	},
-
 
801
	.irq = {
-
 
802
		.set = &rs600_irq_set,
-
 
803
		.process = &rs600_irq_process,
-
 
804
	},
-
 
805
	.display = {
-
 
806
		.get_vblank_counter = &rs600_get_vblank_counter,
-
 
807
		.bandwidth_update = &rv515_bandwidth_update,
-
 
808
		.wait_for_vblank = &avivo_wait_for_vblank,
-
 
809
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
810
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
811
	},
-
 
812
	.copy = {
-
 
813
		.blit = &r100_copy_blit,
-
 
814
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
815
		.dma = &r200_copy_dma,
-
 
816
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
466
	.get_memory_clock = &radeon_atom_get_memory_clock,
817
		.copy = &r100_copy_blit,
467
	.set_memory_clock = &radeon_atom_set_memory_clock,
818
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
468
	.get_pcie_lanes = &rv370_get_pcie_lanes,
819
	},
469
	.set_pcie_lanes = &rv370_set_pcie_lanes,
820
	.surface = {
-
 
821
		.set_reg = r100_set_surface_reg,
-
 
822
		.clear_reg = r100_clear_surface_reg,
470
	.set_clock_gating = &radeon_atom_set_clock_gating,
823
	},
-
 
824
	.hpd = {
471
	.set_surface_reg = r100_set_surface_reg,
825
//		.init = &rs600_hpd_init,
-
 
826
//		.fini = &rs600_hpd_fini,
-
 
827
//		.sense = &rs600_hpd_sense,
-
 
828
//		.set_polarity = &rs600_hpd_set_polarity,
-
 
829
	},
-
 
830
	.pm = {
-
 
831
//		.misc = &rs600_pm_misc,
-
 
832
//		.prepare = &rs600_pm_prepare,
-
 
833
//		.finish = &rs600_pm_finish,
-
 
834
//		.init_profile = &r420_pm_init_profile,
-
 
835
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
-
 
836
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
837
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
838
//		.get_memory_clock = &radeon_atom_get_memory_clock,
-
 
839
//		.set_memory_clock = &radeon_atom_set_memory_clock,
-
 
840
//		.get_pcie_lanes = &rv370_get_pcie_lanes,
472
	.clear_surface_reg = r100_clear_surface_reg,
841
//		.set_pcie_lanes = &rv370_set_pcie_lanes,
Line 473... Line 842...
473
	.bandwidth_update = &rv515_bandwidth_update,
842
//		.set_clock_gating = &radeon_atom_set_clock_gating,
474
	.hpd_init = &rs600_hpd_init,
843
	},
475
	.hpd_fini = &rs600_hpd_fini,
844
	.pflip = {
476
	.hpd_sense = &rs600_hpd_sense,
845
//		.pre_page_flip = &rs600_pre_page_flip,
477
	.hpd_set_polarity = &rs600_hpd_set_polarity,
846
//		.page_flip = &rs600_page_flip,
478
	.ioctl_wait_idle = NULL,
847
//		.post_page_flip = &rs600_post_page_flip,
479
	.gui_idle = &r100_gui_idle,
848
	},
-
 
849
};
-
 
850
 
-
 
851
static struct radeon_asic r520_asic = {
-
 
852
	.init = &r520_init,
480
};
853
//	.fini = &rv515_fini,
481
 
854
//	.suspend = &rv515_suspend,
-
 
855
//	.resume = &r520_resume,
-
 
856
//	.vga_set_state = &r100_vga_set_state,
-
 
857
	.asic_reset = &rs600_asic_reset,
-
 
858
//	.ioctl_wait_idle = NULL,
-
 
859
	.gui_idle = &r100_gui_idle,
-
 
860
	.mc_wait_for_idle = &r520_mc_wait_for_idle,
482
static struct radeon_asic r520_asic = {
861
	.gart = {
483
	.init = &r520_init,
862
		.tlb_flush = &rv370_pcie_gart_tlb_flush,
484
//	.fini = &rv515_fini,
863
		.set_page = &rv370_pcie_gart_set_page,
485
//	.suspend = &rv515_suspend,
-
 
486
//	.resume = &r520_resume,
864
	},
487
//	.vga_set_state = &r100_vga_set_state,
865
	.ring = {
488
	.asic_reset = &rs600_asic_reset,
-
 
489
	.gart_tlb_flush = &rv370_pcie_gart_tlb_flush,
-
 
490
	.gart_set_page = &rv370_pcie_gart_set_page,
866
		[RADEON_RING_TYPE_GFX_INDEX] = {
491
	.cp_commit = &r100_cp_commit,
867
			.ib_execute = &r100_ring_ib_execute,
492
	.ring_start = &rv515_ring_start,
868
			.emit_fence = &r300_fence_ring_emit,
493
	.ring_test = &r100_ring_test,
869
			.emit_semaphore = &r100_semaphore_ring_emit,
494
	.ring_ib_execute = &r100_ring_ib_execute,
-
 
495
	.irq_set = &rs600_irq_set,
-
 
496
	.irq_process = &rs600_irq_process,
-
 
497
//	.get_vblank_counter = &rs600_get_vblank_counter,
-
 
498
	.fence_ring_emit = &r300_fence_ring_emit,
870
//			.cs_parse = &r300_cs_parse,
-
 
871
			.ring_start = &rv515_ring_start,
499
//	.cs_parse = &r300_cs_parse,
872
			.ring_test = &r100_ring_test,
500
	.copy_blit = &r100_copy_blit,
-
 
501
	.copy_dma = &r200_copy_dma,
-
 
502
	.copy = &r100_copy_blit,
-
 
503
	.get_engine_clock = &radeon_atom_get_engine_clock,
873
			.ib_test = &r100_ib_test,
-
 
874
			.is_lockup = &r100_gpu_is_lockup,
-
 
875
		}
-
 
876
	},
-
 
877
	.irq = {
-
 
878
		.set = &rs600_irq_set,
-
 
879
		.process = &rs600_irq_process,
-
 
880
	},
-
 
881
	.display = {
-
 
882
		.bandwidth_update = &rv515_bandwidth_update,
-
 
883
		.get_vblank_counter = &rs600_get_vblank_counter,
-
 
884
		.wait_for_vblank = &avivo_wait_for_vblank,
-
 
885
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
886
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
887
	},
-
 
888
	.copy = {
-
 
889
		.blit = &r100_copy_blit,
-
 
890
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
891
		.dma = &r200_copy_dma,
504
	.set_engine_clock = &radeon_atom_set_engine_clock,
892
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
505
	.get_memory_clock = &radeon_atom_get_memory_clock,
893
		.copy = &r100_copy_blit,
506
	.set_memory_clock = &radeon_atom_set_memory_clock,
894
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
507
	.get_pcie_lanes = &rv370_get_pcie_lanes,
895
	},
-
 
896
	.surface = {
-
 
897
		.set_reg = r100_set_surface_reg,
508
	.set_pcie_lanes = &rv370_set_pcie_lanes,
898
		.clear_reg = r100_clear_surface_reg,
-
 
899
	},
509
	.set_clock_gating = &radeon_atom_set_clock_gating,
900
	.hpd = {
-
 
901
//		.init = &rs600_hpd_init,
-
 
902
//		.fini = &rs600_hpd_fini,
-
 
903
//		.sense = &rs600_hpd_sense,
-
 
904
//		.set_polarity = &rs600_hpd_set_polarity,
-
 
905
	},
-
 
906
	.pm = {
-
 
907
//		.misc = &rs600_pm_misc,
-
 
908
//		.prepare = &rs600_pm_prepare,
-
 
909
//		.finish = &rs600_pm_finish,
-
 
910
//		.init_profile = &r420_pm_init_profile,
-
 
911
//		.get_dynpm_state = &r100_pm_get_dynpm_state,
-
 
912
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
913
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
914
//		.get_memory_clock = &radeon_atom_get_memory_clock,
-
 
915
//		.set_memory_clock = &radeon_atom_set_memory_clock,
510
	.set_surface_reg = r100_set_surface_reg,
916
//		.get_pcie_lanes = &rv370_get_pcie_lanes,
Line 511... Line 917...
511
	.clear_surface_reg = r100_clear_surface_reg,
917
//		.set_pcie_lanes = &rv370_set_pcie_lanes,
512
	.bandwidth_update = &rv515_bandwidth_update,
918
//		.set_clock_gating = &radeon_atom_set_clock_gating,
513
	.hpd_init = &rs600_hpd_init,
919
	},
514
	.hpd_fini = &rs600_hpd_fini,
920
	.pflip = {
515
	.hpd_sense = &rs600_hpd_sense,
921
//		.pre_page_flip = &rs600_pre_page_flip,
516
	.hpd_set_polarity = &rs600_hpd_set_polarity,
-
 
517
	.ioctl_wait_idle = NULL,
922
//		.page_flip = &rs600_page_flip,
518
	.gui_idle = &r100_gui_idle,
923
//		.post_page_flip = &rs600_post_page_flip,
-
 
924
	},
-
 
925
};
-
 
926
 
-
 
927
static struct radeon_asic r600_asic = {
519
};
928
	.init = &r600_init,
520
 
929
//	.fini = &r600_fini,
-
 
930
//	.suspend = &r600_suspend,
521
static struct radeon_asic r600_asic = {
931
//	.resume = &r600_resume,
522
	.init = &r600_init,
932
//	.vga_set_state = &r600_vga_set_state,
523
//	.fini = &r600_fini,
933
	.asic_reset = &r600_asic_reset,
524
//	.suspend = &r600_suspend,
934
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
525
//	.resume = &r600_resume,
935
	.gui_idle = &r600_gui_idle,
526
	.cp_commit = &r600_cp_commit,
936
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
527
	.vga_set_state = &r600_vga_set_state,
937
	.gart = {
528
	.asic_reset = &r600_asic_reset,
-
 
529
	.gart_tlb_flush = &r600_pcie_gart_tlb_flush,
938
		.tlb_flush = &r600_pcie_gart_tlb_flush,
530
	.gart_set_page = &rs600_gart_set_page,
939
		.set_page = &rs600_gart_set_page,
531
	.ring_test = &r600_ring_test,
-
 
532
	.ring_ib_execute = &r600_ring_ib_execute,
-
 
-
 
940
	},
-
 
941
	.ring = {
533
	.irq_set = &r600_irq_set,
942
		[RADEON_RING_TYPE_GFX_INDEX] = {
534
	.irq_process = &r600_irq_process,
943
			.ib_execute = &r600_ring_ib_execute,
535
	.fence_ring_emit = &r600_fence_ring_emit,
944
			.emit_fence = &r600_fence_ring_emit,
-
 
945
			.emit_semaphore = &r600_semaphore_ring_emit,
536
//	.cs_parse = &r600_cs_parse,
946
//			.cs_parse = &r600_cs_parse,
537
	.copy_blit = &r600_copy_blit,
-
 
538
	.copy_dma = NULL,
-
 
539
	.copy = &r600_copy_blit,
947
			.ring_test = &r600_ring_test,
-
 
948
			.ib_test = &r600_ib_test,
-
 
949
			.is_lockup = &r600_gpu_is_lockup,
-
 
950
		}
-
 
951
	},
-
 
952
	.irq = {
-
 
953
		.set = &r600_irq_set,
-
 
954
		.process = &r600_irq_process,
-
 
955
	},
-
 
956
	.display = {
-
 
957
		.bandwidth_update = &rv515_bandwidth_update,
-
 
958
		.get_vblank_counter = &rs600_get_vblank_counter,
-
 
959
		.wait_for_vblank = &avivo_wait_for_vblank,
-
 
960
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
961
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
962
	},
-
 
963
	.copy = {
-
 
964
		.blit = &r600_copy_blit,
-
 
965
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
540
	.get_engine_clock = &radeon_atom_get_engine_clock,
966
		.dma = NULL,
541
	.set_engine_clock = &radeon_atom_set_engine_clock,
967
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
542
	.get_memory_clock = &radeon_atom_get_memory_clock,
968
		.copy = &r600_copy_blit,
543
	.set_memory_clock = &radeon_atom_set_memory_clock,
969
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
970
	},
-
 
971
	.surface = {
-
 
972
		.set_reg = r600_set_surface_reg,
-
 
973
		.clear_reg = r600_clear_surface_reg,
-
 
974
	},
-
 
975
	.hpd = {
-
 
976
//		.init = &r600_hpd_init,
-
 
977
//		.fini = &r600_hpd_fini,
-
 
978
//		.sense = &r600_hpd_sense,
-
 
979
//		.set_polarity = &r600_hpd_set_polarity,
-
 
980
	},
-
 
981
	.pm = {
-
 
982
//		.misc = &r600_pm_misc,
-
 
983
//		.prepare = &rs600_pm_prepare,
-
 
984
//		.finish = &rs600_pm_finish,
-
 
985
//		.init_profile = &r600_pm_init_profile,
-
 
986
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
-
 
987
//		.get_engine_clock = &radeon_atom_get_engine_clock,
544
	.get_pcie_lanes = &r600_get_pcie_lanes,
988
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
989
//		.get_memory_clock = &radeon_atom_get_memory_clock,
545
	.set_pcie_lanes = &r600_set_pcie_lanes,
990
//		.set_memory_clock = &radeon_atom_set_memory_clock,
Line 546... Line 991...
546
	.set_clock_gating = NULL,
991
//		.get_pcie_lanes = &r600_get_pcie_lanes,
547
	.set_surface_reg = r600_set_surface_reg,
992
//		.set_pcie_lanes = &r600_set_pcie_lanes,
548
	.clear_surface_reg = r600_clear_surface_reg,
993
//		.set_clock_gating = NULL,
549
	.bandwidth_update = &rv515_bandwidth_update,
994
	},
550
	.hpd_init = &r600_hpd_init,
995
	.pflip = {
551
	.hpd_fini = &r600_hpd_fini,
-
 
552
	.hpd_sense = &r600_hpd_sense,
-
 
553
	.hpd_set_polarity = &r600_hpd_set_polarity,
996
//		.pre_page_flip = &rs600_pre_page_flip,
554
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
997
//		.page_flip = &rs600_page_flip,
-
 
998
//		.post_page_flip = &rs600_post_page_flip,
-
 
999
	},
-
 
1000
};
-
 
1001
 
555
};
1002
static struct radeon_asic rs780_asic = {
556
 
1003
	.init = &r600_init,
-
 
1004
//	.fini = &r600_fini,
557
static struct radeon_asic rs780_asic = {
1005
//	.suspend = &r600_suspend,
558
	.init = &r600_init,
1006
//	.resume = &r600_resume,
559
//	.fini = &r600_fini,
1007
//	.vga_set_state = &r600_vga_set_state,
560
//	.suspend = &r600_suspend,
1008
	.asic_reset = &r600_asic_reset,
561
//	.resume = &r600_resume,
1009
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
562
	.cp_commit = &r600_cp_commit,
1010
	.gui_idle = &r600_gui_idle,
563
	.gpu_is_lockup = &r600_gpu_is_lockup,
1011
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
564
	.vga_set_state = &r600_vga_set_state,
-
 
565
	.asic_reset = &r600_asic_reset,
1012
	.gart = {
566
	.gart_tlb_flush = &r600_pcie_gart_tlb_flush,
1013
		.tlb_flush = &r600_pcie_gart_tlb_flush,
567
	.gart_set_page = &rs600_gart_set_page,
-
 
568
	.ring_test = &r600_ring_test,
-
 
569
	.ring_ib_execute = &r600_ring_ib_execute,
1014
		.set_page = &rs600_gart_set_page,
570
	.irq_set = &r600_irq_set,
1015
	},
571
	.irq_process = &r600_irq_process,
1016
	.ring = {
572
	.fence_ring_emit = &r600_fence_ring_emit,
1017
		[RADEON_RING_TYPE_GFX_INDEX] = {
573
//	.cs_parse = &r600_cs_parse,
1018
			.ib_execute = &r600_ring_ib_execute,
-
 
1019
			.emit_fence = &r600_fence_ring_emit,
574
	.copy_blit = &r600_copy_blit,
1020
			.emit_semaphore = &r600_semaphore_ring_emit,
575
	.copy_dma = NULL,
1021
//			.cs_parse = &r600_cs_parse,
-
 
1022
			.ring_test = &r600_ring_test,
-
 
1023
			.ib_test = &r600_ib_test,
-
 
1024
			.is_lockup = &r600_gpu_is_lockup,
-
 
1025
		}
-
 
1026
	},
-
 
1027
	.irq = {
-
 
1028
		.set = &r600_irq_set,
-
 
1029
		.process = &r600_irq_process,
-
 
1030
	},
-
 
1031
	.display = {
-
 
1032
		.bandwidth_update = &rs690_bandwidth_update,
-
 
1033
		.get_vblank_counter = &rs600_get_vblank_counter,
-
 
1034
		.wait_for_vblank = &avivo_wait_for_vblank,
-
 
1035
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
1036
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
1037
	},
-
 
1038
	.copy = {
-
 
1039
		.blit = &r600_copy_blit,
576
	.copy = &r600_copy_blit,
1040
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
577
	.get_engine_clock = &radeon_atom_get_engine_clock,
1041
		.dma = NULL,
578
	.set_engine_clock = &radeon_atom_set_engine_clock,
1042
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
579
	.get_memory_clock = NULL,
1043
		.copy = &r600_copy_blit,
-
 
1044
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1045
	},
-
 
1046
	.surface = {
-
 
1047
		.set_reg = r600_set_surface_reg,
-
 
1048
		.clear_reg = r600_clear_surface_reg,
-
 
1049
	},
-
 
1050
	.hpd = {
-
 
1051
//		.init = &r600_hpd_init,
-
 
1052
//		.fini = &r600_hpd_fini,
-
 
1053
//		.sense = &r600_hpd_sense,
-
 
1054
//		.set_polarity = &r600_hpd_set_polarity,
-
 
1055
	},
-
 
1056
	.pm = {
-
 
1057
//		.misc = &r600_pm_misc,
-
 
1058
//		.prepare = &rs600_pm_prepare,
-
 
1059
//		.finish = &rs600_pm_finish,
-
 
1060
//		.init_profile = &rs780_pm_init_profile,
-
 
1061
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
-
 
1062
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
1063
//		.set_engine_clock = &radeon_atom_set_engine_clock,
580
	.set_memory_clock = NULL,
1064
//		.get_memory_clock = NULL,
Line 581... Line 1065...
581
	.get_pcie_lanes = NULL,
1065
//		.set_memory_clock = NULL,
582
	.set_pcie_lanes = NULL,
1066
//		.get_pcie_lanes = NULL,
583
	.set_clock_gating = NULL,
1067
//		.set_pcie_lanes = NULL,
584
	.set_surface_reg = r600_set_surface_reg,
1068
//		.set_clock_gating = NULL,
585
	.clear_surface_reg = r600_clear_surface_reg,
1069
	},
586
	.bandwidth_update = &rs690_bandwidth_update,
-
 
587
	.hpd_init = &r600_hpd_init,
1070
	.pflip = {
588
	.hpd_fini = &r600_hpd_fini,
1071
//		.pre_page_flip = &rs600_pre_page_flip,
-
 
1072
//		.page_flip = &rs600_page_flip,
-
 
1073
//		.post_page_flip = &rs600_post_page_flip,
-
 
1074
	},
-
 
1075
};
589
	.hpd_sense = &r600_hpd_sense,
1076
 
590
	.hpd_set_polarity = &r600_hpd_set_polarity,
1077
static struct radeon_asic rv770_asic = {
-
 
1078
	.init = &rv770_init,
591
};
1079
//	.fini = &rv770_fini,
592
 
1080
//	.suspend = &rv770_suspend,
593
static struct radeon_asic rv770_asic = {
1081
//	.resume = &rv770_resume,
594
	.init = &rv770_init,
1082
	.asic_reset = &r600_asic_reset,
595
//	.fini = &rv770_fini,
1083
//	.vga_set_state = &r600_vga_set_state,
596
//	.suspend = &rv770_suspend,
1084
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
597
//	.resume = &rv770_resume,
1085
	.gui_idle = &r600_gui_idle,
598
	.cp_commit = &r600_cp_commit,
-
 
599
	.asic_reset = &r600_asic_reset,
1086
	.mc_wait_for_idle = &r600_mc_wait_for_idle,
600
	.vga_set_state = &r600_vga_set_state,
1087
	.gart = {
601
	.gart_tlb_flush = &r600_pcie_gart_tlb_flush,
-
 
602
	.gart_set_page = &rs600_gart_set_page,
-
 
603
	.ring_test = &r600_ring_test,
-
 
-
 
1088
		.tlb_flush = &r600_pcie_gart_tlb_flush,
-
 
1089
		.set_page = &rs600_gart_set_page,
604
	.ring_ib_execute = &r600_ring_ib_execute,
1090
	},
605
	.irq_set = &r600_irq_set,
1091
	.ring = {
606
	.irq_process = &r600_irq_process,
-
 
607
	.fence_ring_emit = &r600_fence_ring_emit,
1092
		[RADEON_RING_TYPE_GFX_INDEX] = {
-
 
1093
			.ib_execute = &r600_ring_ib_execute,
608
//	.cs_parse = &r600_cs_parse,
1094
			.emit_fence = &r600_fence_ring_emit,
609
	.copy_blit = &r600_copy_blit,
1095
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1096
//			.cs_parse = &r600_cs_parse,
-
 
1097
			.ring_test = &r600_ring_test,
-
 
1098
			.ib_test = &r600_ib_test,
-
 
1099
			.is_lockup = &r600_gpu_is_lockup,
-
 
1100
		}
-
 
1101
	},
-
 
1102
	.irq = {
-
 
1103
		.set = &r600_irq_set,
-
 
1104
		.process = &r600_irq_process,
-
 
1105
	},
-
 
1106
	.display = {
-
 
1107
		.bandwidth_update = &rv515_bandwidth_update,
-
 
1108
		.get_vblank_counter = &rs600_get_vblank_counter,
-
 
1109
		.wait_for_vblank = &avivo_wait_for_vblank,
-
 
1110
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
1111
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
1112
	},
-
 
1113
	.copy = {
610
	.copy_dma = NULL,
1114
		.blit = &r600_copy_blit,
611
	.copy = &r600_copy_blit,
1115
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
612
	.get_engine_clock = &radeon_atom_get_engine_clock,
1116
		.dma = NULL,
613
	.set_engine_clock = &radeon_atom_set_engine_clock,
1117
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1118
		.copy = &r600_copy_blit,
-
 
1119
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1120
	},
-
 
1121
	.surface = {
-
 
1122
		.set_reg = r600_set_surface_reg,
-
 
1123
		.clear_reg = r600_clear_surface_reg,
-
 
1124
	},
-
 
1125
	.hpd = {
-
 
1126
//		.init = &r600_hpd_init,
-
 
1127
//		.fini = &r600_hpd_fini,
-
 
1128
//		.sense = &r600_hpd_sense,
-
 
1129
//		.set_polarity = &r600_hpd_set_polarity,
-
 
1130
	},
-
 
1131
	.pm = {
-
 
1132
//		.misc = &rv770_pm_misc,
-
 
1133
//		.prepare = &rs600_pm_prepare,
-
 
1134
//		.finish = &rs600_pm_finish,
-
 
1135
//		.init_profile = &r600_pm_init_profile,
-
 
1136
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
-
 
1137
//		.get_engine_clock = &radeon_atom_get_engine_clock,
614
	.get_memory_clock = &radeon_atom_get_memory_clock,
1138
//		.set_engine_clock = &radeon_atom_set_engine_clock,
Line 615... Line 1139...
615
	.set_memory_clock = &radeon_atom_set_memory_clock,
1139
//		.get_memory_clock = &radeon_atom_get_memory_clock,
616
	.get_pcie_lanes = &r600_get_pcie_lanes,
1140
//		.set_memory_clock = &radeon_atom_set_memory_clock,
617
	.set_pcie_lanes = &r600_set_pcie_lanes,
1141
//		.get_pcie_lanes = &r600_get_pcie_lanes,
618
	.set_clock_gating = &radeon_atom_set_clock_gating,
1142
//		.set_pcie_lanes = &r600_set_pcie_lanes,
619
	.set_surface_reg = r600_set_surface_reg,
1143
//		.set_clock_gating = &radeon_atom_set_clock_gating,
620
	.clear_surface_reg = r600_clear_surface_reg,
-
 
621
	.bandwidth_update = &rv515_bandwidth_update,
1144
	},
622
	.hpd_init = &r600_hpd_init,
1145
	.pflip = {
-
 
1146
//		.pre_page_flip = &rs600_pre_page_flip,
-
 
1147
//		.page_flip = &rv770_page_flip,
-
 
1148
//		.post_page_flip = &rs600_post_page_flip,
-
 
1149
	},
623
	.hpd_fini = &r600_hpd_fini,
1150
};
624
	.hpd_sense = &r600_hpd_sense,
1151
 
-
 
1152
static struct radeon_asic evergreen_asic = {
625
	.hpd_set_polarity = &r600_hpd_set_polarity,
1153
	.init = &evergreen_init,
626
};
1154
//	.fini = &evergreen_fini,
627
 
1155
//	.suspend = &evergreen_suspend,
628
static struct radeon_asic evergreen_asic = {
1156
//	.resume = &evergreen_resume,
629
	.init = &evergreen_init,
1157
	.asic_reset = &evergreen_asic_reset,
630
//	.fini = &evergreen_fini,
1158
//	.vga_set_state = &r600_vga_set_state,
631
//	.suspend = &evergreen_suspend,
1159
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
632
//	.resume = &evergreen_resume,
1160
	.gui_idle = &r600_gui_idle,
633
	.cp_commit = &r600_cp_commit,
1161
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
634
	.asic_reset = &evergreen_asic_reset,
-
 
635
	.vga_set_state = &r600_vga_set_state,
-
 
636
	.gart_tlb_flush = &evergreen_pcie_gart_tlb_flush,
-
 
-
 
1162
	.gart = {
-
 
1163
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
637
	.gart_set_page = &rs600_gart_set_page,
1164
		.set_page = &rs600_gart_set_page,
638
	.ring_test = &r600_ring_test,
1165
	},
639
	.ring_ib_execute = &evergreen_ring_ib_execute,
1166
	.ring = {
-
 
1167
		[RADEON_RING_TYPE_GFX_INDEX] = {
640
	.irq_set = &evergreen_irq_set,
1168
			.ib_execute = &evergreen_ring_ib_execute,
641
	.irq_process = &evergreen_irq_process,
-
 
642
	.fence_ring_emit = &r600_fence_ring_emit,
-
 
643
//	.cs_parse = &evergreen_cs_parse,
1169
			.emit_fence = &r600_fence_ring_emit,
-
 
1170
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1171
//			.cs_parse = &evergreen_cs_parse,
-
 
1172
			.ring_test = &r600_ring_test,
-
 
1173
			.ib_test = &r600_ib_test,
-
 
1174
			.is_lockup = &evergreen_gpu_is_lockup,
-
 
1175
		}
-
 
1176
	},
-
 
1177
	.irq = {
-
 
1178
		.set = &evergreen_irq_set,
-
 
1179
		.process = &evergreen_irq_process,
-
 
1180
	},
-
 
1181
	.display = {
-
 
1182
		.bandwidth_update = &evergreen_bandwidth_update,
-
 
1183
		.get_vblank_counter = &evergreen_get_vblank_counter,
-
 
1184
		.wait_for_vblank = &dce4_wait_for_vblank,
-
 
1185
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
1186
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
1187
	},
644
	.copy_blit = &evergreen_copy_blit,
1188
	.copy = {
645
	.copy_dma = NULL,
1189
		.blit = &r600_copy_blit,
646
	.copy = &evergreen_copy_blit,
1190
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
647
	.get_engine_clock = &radeon_atom_get_engine_clock,
1191
		.dma = NULL,
-
 
1192
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1193
		.copy = &r600_copy_blit,
-
 
1194
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1195
	},
-
 
1196
	.surface = {
-
 
1197
		.set_reg = r600_set_surface_reg,
-
 
1198
		.clear_reg = r600_clear_surface_reg,
-
 
1199
	},
-
 
1200
	.hpd = {
-
 
1201
//		.init = &evergreen_hpd_init,
-
 
1202
//		.fini = &evergreen_hpd_fini,
-
 
1203
//		.sense = &evergreen_hpd_sense,
-
 
1204
//		.set_polarity = &evergreen_hpd_set_polarity,
-
 
1205
	},
-
 
1206
	.pm = {
-
 
1207
//		.misc = &evergreen_pm_misc,
-
 
1208
//		.prepare = &evergreen_pm_prepare,
-
 
1209
//		.finish = &evergreen_pm_finish,
-
 
1210
//		.init_profile = &r600_pm_init_profile,
648
	.set_engine_clock = &radeon_atom_set_engine_clock,
1211
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
649
	.get_memory_clock = &radeon_atom_get_memory_clock,
1212
//		.get_engine_clock = &radeon_atom_get_engine_clock,
Line 650... Line 1213...
650
	.set_memory_clock = &radeon_atom_set_memory_clock,
1213
//		.set_engine_clock = &radeon_atom_set_engine_clock,
651
	.get_pcie_lanes = &r600_get_pcie_lanes,
1214
//		.get_memory_clock = &radeon_atom_get_memory_clock,
652
	.set_pcie_lanes = &r600_set_pcie_lanes,
1215
//		.set_memory_clock = &radeon_atom_set_memory_clock,
653
	.set_clock_gating = NULL,
1216
//		.get_pcie_lanes = &r600_get_pcie_lanes,
654
	.set_surface_reg = r600_set_surface_reg,
1217
//		.set_pcie_lanes = &r600_set_pcie_lanes,
655
	.clear_surface_reg = r600_clear_surface_reg,
-
 
656
	.bandwidth_update = &evergreen_bandwidth_update,
1218
//		.set_clock_gating = NULL,
657
	.hpd_init = &evergreen_hpd_init,
1219
	},
658
	.hpd_fini = &evergreen_hpd_fini,
-
 
659
	.hpd_sense = &evergreen_hpd_sense,
1220
	.pflip = {
660
	.hpd_set_polarity = &evergreen_hpd_set_polarity,
1221
//		.pre_page_flip = &evergreen_pre_page_flip,
661
 
1222
//		.page_flip = &evergreen_page_flip,
662
};
1223
//		.post_page_flip = &evergreen_post_page_flip,
663
 
1224
	},
664
static struct radeon_asic sumo_asic = {
1225
};
-
 
1226
 
-
 
1227
static struct radeon_asic sumo_asic = {
665
	.init = &evergreen_init,
1228
	.init = &evergreen_init,
666
//	.fini = &evergreen_fini,
1229
//	.fini = &evergreen_fini,
667
//	.suspend = &evergreen_suspend,
-
 
668
//	.resume = &evergreen_resume,
1230
//	.suspend = &evergreen_suspend,
669
	.cp_commit = &r600_cp_commit,
1231
//	.resume = &evergreen_resume,
670
	.asic_reset = &evergreen_asic_reset,
1232
	.asic_reset = &evergreen_asic_reset,
671
	.vga_set_state = &r600_vga_set_state,
1233
//	.vga_set_state = &r600_vga_set_state,
672
	.gart_tlb_flush = &evergreen_pcie_gart_tlb_flush,
1234
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
673
	.gart_set_page = &rs600_gart_set_page,
1235
	.gui_idle = &r600_gui_idle,
-
 
1236
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1237
	.gart = {
674
	.ring_test = &r600_ring_test,
1238
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
675
	.ring_ib_execute = &evergreen_ring_ib_execute,
1239
		.set_page = &rs600_gart_set_page,
676
	.irq_set = &evergreen_irq_set,
1240
	},
-
 
1241
	.ring = {
677
	.irq_process = &evergreen_irq_process,
1242
		[RADEON_RING_TYPE_GFX_INDEX] = {
678
	.fence_ring_emit = &r600_fence_ring_emit,
1243
			.ib_execute = &evergreen_ring_ib_execute,
-
 
1244
			.emit_fence = &r600_fence_ring_emit,
-
 
1245
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1246
//			.cs_parse = &evergreen_cs_parse,
-
 
1247
			.ring_test = &r600_ring_test,
-
 
1248
			.ib_test = &r600_ib_test,
-
 
1249
			.is_lockup = &evergreen_gpu_is_lockup,
-
 
1250
		},
-
 
1251
	},
-
 
1252
	.irq = {
-
 
1253
		.set = &evergreen_irq_set,
-
 
1254
		.process = &evergreen_irq_process,
-
 
1255
	},
-
 
1256
	.display = {
-
 
1257
		.bandwidth_update = &evergreen_bandwidth_update,
-
 
1258
		.get_vblank_counter = &evergreen_get_vblank_counter,
-
 
1259
		.wait_for_vblank = &dce4_wait_for_vblank,
-
 
1260
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
1261
//		.get_backlight_level = &atombios_get_backlight_level,
679
//	.cs_parse = &r600_cs_parse,
1262
	},
680
	.copy_blit = &evergreen_copy_blit,
1263
	.copy = {
681
	.copy_dma = NULL,
1264
		.blit = &r600_copy_blit,
682
	.copy = &evergreen_copy_blit,
1265
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1266
		.dma = NULL,
-
 
1267
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1268
		.copy = &r600_copy_blit,
-
 
1269
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1270
	},
-
 
1271
	.surface = {
-
 
1272
		.set_reg = r600_set_surface_reg,
-
 
1273
		.clear_reg = r600_clear_surface_reg,
-
 
1274
	},
-
 
1275
	.hpd = {
-
 
1276
//		.init = &evergreen_hpd_init,
-
 
1277
//		.fini = &evergreen_hpd_fini,
-
 
1278
//		.sense = &evergreen_hpd_sense,
-
 
1279
//		.set_polarity = &evergreen_hpd_set_polarity,
-
 
1280
	},
-
 
1281
	.pm = {
-
 
1282
//		.misc = &evergreen_pm_misc,
-
 
1283
//		.prepare = &evergreen_pm_prepare,
-
 
1284
//		.finish = &evergreen_pm_finish,
-
 
1285
//		.init_profile = &sumo_pm_init_profile,
683
	.get_engine_clock = &radeon_atom_get_engine_clock,
1286
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
Line 684... Line 1287...
684
	.set_engine_clock = &radeon_atom_set_engine_clock,
1287
//		.get_engine_clock = &radeon_atom_get_engine_clock,
685
	.get_memory_clock = NULL,
1288
//		.set_engine_clock = &radeon_atom_set_engine_clock,
686
	.set_memory_clock = NULL,
1289
//		.get_memory_clock = NULL,
687
	.get_pcie_lanes = NULL,
1290
//		.set_memory_clock = NULL,
688
	.set_pcie_lanes = NULL,
1291
//		.get_pcie_lanes = NULL,
689
	.set_clock_gating = NULL,
-
 
690
	.set_surface_reg = r600_set_surface_reg,
1292
//		.set_pcie_lanes = NULL,
691
	.clear_surface_reg = r600_clear_surface_reg,
1293
//		.set_clock_gating = NULL,
-
 
1294
	},
-
 
1295
	.pflip = {
-
 
1296
//		.pre_page_flip = &evergreen_pre_page_flip,
-
 
1297
//		.page_flip = &evergreen_page_flip,
692
	.bandwidth_update = &evergreen_bandwidth_update,
1298
//		.post_page_flip = &evergreen_post_page_flip,
693
	.hpd_init = &evergreen_hpd_init,
1299
	},
-
 
1300
};
694
	.hpd_fini = &evergreen_hpd_fini,
1301
 
695
	.hpd_sense = &evergreen_hpd_sense,
1302
static struct radeon_asic btc_asic = {
696
	.hpd_set_polarity = &evergreen_hpd_set_polarity,
1303
	.init = &evergreen_init,
697
};
1304
//	.fini = &evergreen_fini,
698
 
1305
//	.suspend = &evergreen_suspend,
699
static struct radeon_asic btc_asic = {
1306
//	.resume = &evergreen_resume,
700
	.init = &evergreen_init,
1307
	.asic_reset = &evergreen_asic_reset,
701
//	.fini = &evergreen_fini,
1308
//	.vga_set_state = &r600_vga_set_state,
702
//	.suspend = &evergreen_suspend,
1309
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
703
//	.resume = &evergreen_resume,
-
 
704
	.cp_commit = &r600_cp_commit,
-
 
705
	.asic_reset = &evergreen_asic_reset,
-
 
706
	.vga_set_state = &r600_vga_set_state,
-
 
-
 
1310
	.gui_idle = &r600_gui_idle,
707
	.gart_tlb_flush = &evergreen_pcie_gart_tlb_flush,
1311
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
708
	.gart_set_page = &rs600_gart_set_page,
1312
	.gart = {
709
	.ring_test = &r600_ring_test,
1313
		.tlb_flush = &evergreen_pcie_gart_tlb_flush,
710
	.ring_ib_execute = &evergreen_ring_ib_execute,
1314
		.set_page = &rs600_gart_set_page,
-
 
1315
	},
711
	.irq_set = &evergreen_irq_set,
1316
	.ring = {
712
	.irq_process = &evergreen_irq_process,
1317
		[RADEON_RING_TYPE_GFX_INDEX] = {
-
 
1318
			.ib_execute = &evergreen_ring_ib_execute,
-
 
1319
			.emit_fence = &r600_fence_ring_emit,
-
 
1320
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1321
//			.cs_parse = &evergreen_cs_parse,
-
 
1322
			.ring_test = &r600_ring_test,
-
 
1323
			.ib_test = &r600_ib_test,
-
 
1324
			.is_lockup = &evergreen_gpu_is_lockup,
-
 
1325
		}
-
 
1326
	},
-
 
1327
	.irq = {
-
 
1328
		.set = &evergreen_irq_set,
-
 
1329
		.process = &evergreen_irq_process,
-
 
1330
	},
-
 
1331
	.display = {
-
 
1332
		.bandwidth_update = &evergreen_bandwidth_update,
-
 
1333
		.get_vblank_counter = &evergreen_get_vblank_counter,
-
 
1334
		.wait_for_vblank = &dce4_wait_for_vblank,
-
 
1335
//		.set_backlight_level = &atombios_set_backlight_level,
713
	.fence_ring_emit = &r600_fence_ring_emit,
1336
//		.get_backlight_level = &atombios_get_backlight_level,
714
//	.cs_parse = &evergreen_cs_parse,
1337
	},
715
	.copy_blit = &evergreen_copy_blit,
1338
	.copy = {
716
	.copy_dma = NULL,
1339
		.blit = &r600_copy_blit,
-
 
1340
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1341
		.dma = NULL,
-
 
1342
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1343
		.copy = &r600_copy_blit,
-
 
1344
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1345
	},
-
 
1346
	.surface = {
-
 
1347
		.set_reg = r600_set_surface_reg,
-
 
1348
		.clear_reg = r600_clear_surface_reg,
-
 
1349
	},
-
 
1350
	.hpd = {
-
 
1351
//		.init = &evergreen_hpd_init,
-
 
1352
//		.fini = &evergreen_hpd_fini,
-
 
1353
//		.sense = &evergreen_hpd_sense,
-
 
1354
//		.set_polarity = &evergreen_hpd_set_polarity,
-
 
1355
	},
-
 
1356
	.pm = {
-
 
1357
//		.misc = &evergreen_pm_misc,
-
 
1358
//		.prepare = &evergreen_pm_prepare,
-
 
1359
//		.finish = &evergreen_pm_finish,
717
	.copy = &evergreen_copy_blit,
1360
//		.init_profile = &btc_pm_init_profile,
Line 718... Line 1361...
718
	.get_engine_clock = &radeon_atom_get_engine_clock,
1361
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
719
	.set_engine_clock = &radeon_atom_set_engine_clock,
1362
//		.get_engine_clock = &radeon_atom_get_engine_clock,
720
	.get_memory_clock = &radeon_atom_get_memory_clock,
1363
//		.set_engine_clock = &radeon_atom_set_engine_clock,
721
	.set_memory_clock = &radeon_atom_set_memory_clock,
1364
//		.get_memory_clock = &radeon_atom_get_memory_clock,
722
	.get_pcie_lanes = NULL,
1365
//		.set_memory_clock = &radeon_atom_set_memory_clock,
723
	.set_pcie_lanes = NULL,
-
 
724
	.set_clock_gating = NULL,
1366
//		.get_pcie_lanes = NULL,
725
	.set_surface_reg = r600_set_surface_reg,
1367
//		.set_pcie_lanes = NULL,
-
 
1368
//		.set_clock_gating = NULL,
-
 
1369
	},
-
 
1370
	.pflip = {
-
 
1371
//		.pre_page_flip = &evergreen_pre_page_flip,
726
	.clear_surface_reg = r600_clear_surface_reg,
1372
//		.page_flip = &evergreen_page_flip,
727
	.bandwidth_update = &evergreen_bandwidth_update,
1373
//		.post_page_flip = &evergreen_post_page_flip,
-
 
1374
	},
-
 
1375
};
728
	.hpd_init = &evergreen_hpd_init,
1376
 
-
 
1377
static struct radeon_asic cayman_asic = {
-
 
1378
	.init = &cayman_init,
-
 
1379
//	.fini = &cayman_fini,
-
 
1380
//	.suspend = &cayman_suspend,
-
 
1381
//	.resume = &cayman_resume,
-
 
1382
	.asic_reset = &cayman_asic_reset,
729
	.hpd_fini = &evergreen_hpd_fini,
1383
//	.vga_set_state = &r600_vga_set_state,
730
	.hpd_sense = &evergreen_hpd_sense,
1384
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
731
	.hpd_set_polarity = &evergreen_hpd_set_polarity,
1385
	.gui_idle = &r600_gui_idle,
732
};
1386
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
733
 
1387
	.gart = {
-
 
1388
		.tlb_flush = &cayman_pcie_gart_tlb_flush,
-
 
1389
		.set_page = &rs600_gart_set_page,
734
static struct radeon_asic cayman_asic = {
1390
	},
735
	.init = &cayman_init,
1391
	.vm = {
-
 
1392
		.init = &cayman_vm_init,
-
 
1393
		.fini = &cayman_vm_fini,
-
 
1394
		.pt_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1395
		.set_page = &cayman_vm_set_page,
-
 
1396
	},
-
 
1397
	.ring = {
736
//	.fini = &evergreen_fini,
1398
		[RADEON_RING_TYPE_GFX_INDEX] = {
-
 
1399
			.ib_execute = &cayman_ring_ib_execute,
-
 
1400
//           .ib_parse = &evergreen_ib_parse,
737
//	.suspend = &evergreen_suspend,
1401
			.emit_fence = &cayman_fence_ring_emit,
-
 
1402
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1403
//			.cs_parse = &evergreen_cs_parse,
-
 
1404
			.ring_test = &r600_ring_test,
738
//	.resume = &evergreen_resume,
1405
			.ib_test = &r600_ib_test,
-
 
1406
			.is_lockup = &evergreen_gpu_is_lockup,
739
	.cp_commit = &r600_cp_commit,
1407
			.vm_flush = &cayman_vm_flush,
740
	.asic_reset = &cayman_asic_reset,
1408
		},
-
 
1409
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
741
	.vga_set_state = &r600_vga_set_state,
1410
			.ib_execute = &cayman_ring_ib_execute,
742
	.gart_tlb_flush = &cayman_pcie_gart_tlb_flush,
1411
//           .ib_parse = &evergreen_ib_parse,
-
 
1412
			.emit_fence = &cayman_fence_ring_emit,
743
	.gart_set_page = &rs600_gart_set_page,
1413
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1414
//			.cs_parse = &evergreen_cs_parse,
-
 
1415
			.ring_test = &r600_ring_test,
-
 
1416
			.ib_test = &r600_ib_test,
744
	.ring_test = &r600_ring_test,
1417
			.is_lockup = &evergreen_gpu_is_lockup,
745
	.ring_ib_execute = &evergreen_ring_ib_execute,
1418
			.vm_flush = &cayman_vm_flush,
-
 
1419
		},
-
 
1420
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
746
	.irq_set = &evergreen_irq_set,
1421
			.ib_execute = &cayman_ring_ib_execute,
-
 
1422
//           .ib_parse = &evergreen_ib_parse,
-
 
1423
			.emit_fence = &cayman_fence_ring_emit,
-
 
1424
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1425
//			.cs_parse = &evergreen_cs_parse,
-
 
1426
			.ring_test = &r600_ring_test,
-
 
1427
			.ib_test = &r600_ib_test,
-
 
1428
			.is_lockup = &evergreen_gpu_is_lockup,
-
 
1429
			.vm_flush = &cayman_vm_flush,
-
 
1430
		}
-
 
1431
	},
-
 
1432
	.irq = {
-
 
1433
		.set = &evergreen_irq_set,
-
 
1434
		.process = &evergreen_irq_process,
-
 
1435
	},
-
 
1436
	.display = {
-
 
1437
		.bandwidth_update = &evergreen_bandwidth_update,
-
 
1438
		.get_vblank_counter = &evergreen_get_vblank_counter,
-
 
1439
		.wait_for_vblank = &dce4_wait_for_vblank,
-
 
1440
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
1441
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
1442
	},
-
 
1443
	.copy = {
-
 
1444
		.blit = &r600_copy_blit,
-
 
1445
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1446
		.dma = NULL,
-
 
1447
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1448
		.copy = &r600_copy_blit,
-
 
1449
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1450
	},
-
 
1451
	.surface = {
-
 
1452
		.set_reg = r600_set_surface_reg,
-
 
1453
		.clear_reg = r600_clear_surface_reg,
-
 
1454
	},
-
 
1455
	.hpd = {
-
 
1456
//		.init = &evergreen_hpd_init,
-
 
1457
//		.fini = &evergreen_hpd_fini,
-
 
1458
//		.sense = &evergreen_hpd_sense,
-
 
1459
//		.set_polarity = &evergreen_hpd_set_polarity,
-
 
1460
	},
-
 
1461
	.pm = {
-
 
1462
//		.misc = &evergreen_pm_misc,
-
 
1463
//		.prepare = &evergreen_pm_prepare,
-
 
1464
//		.finish = &evergreen_pm_finish,
-
 
1465
//		.init_profile = &btc_pm_init_profile,
-
 
1466
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
-
 
1467
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
1468
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
1469
//		.get_memory_clock = &radeon_atom_get_memory_clock,
-
 
1470
//		.set_memory_clock = &radeon_atom_set_memory_clock,
-
 
1471
//		.get_pcie_lanes = NULL,
-
 
1472
//		.set_pcie_lanes = NULL,
-
 
1473
//		.set_clock_gating = NULL,
-
 
1474
	},
-
 
1475
	.pflip = {
-
 
1476
//		.pre_page_flip = &evergreen_pre_page_flip,
-
 
1477
//		.page_flip = &evergreen_page_flip,
-
 
1478
//		.post_page_flip = &evergreen_post_page_flip,
-
 
1479
	},
-
 
1480
};
-
 
1481
 
-
 
1482
static struct radeon_asic trinity_asic = {
-
 
1483
	.init = &cayman_init,
-
 
1484
//	.fini = &cayman_fini,
-
 
1485
//	.suspend = &cayman_suspend,
-
 
1486
//	.resume = &cayman_resume,
-
 
1487
	.asic_reset = &cayman_asic_reset,
-
 
1488
//	.vga_set_state = &r600_vga_set_state,
-
 
1489
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
-
 
1490
	.gui_idle = &r600_gui_idle,
-
 
1491
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1492
	.gart = {
-
 
1493
		.tlb_flush = &cayman_pcie_gart_tlb_flush,
-
 
1494
		.set_page = &rs600_gart_set_page,
-
 
1495
	},
-
 
1496
	.vm = {
-
 
1497
		.init = &cayman_vm_init,
-
 
1498
		.fini = &cayman_vm_fini,
-
 
1499
		.pt_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1500
		.set_page = &cayman_vm_set_page,
-
 
1501
	},
-
 
1502
	.ring = {
-
 
1503
		[RADEON_RING_TYPE_GFX_INDEX] = {
-
 
1504
			.ib_execute = &cayman_ring_ib_execute,
-
 
1505
//           .ib_parse = &evergreen_ib_parse,
-
 
1506
			.emit_fence = &cayman_fence_ring_emit,
-
 
1507
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1508
//			.cs_parse = &evergreen_cs_parse,
-
 
1509
			.ring_test = &r600_ring_test,
-
 
1510
			.ib_test = &r600_ib_test,
-
 
1511
			.is_lockup = &evergreen_gpu_is_lockup,
-
 
1512
			.vm_flush = &cayman_vm_flush,
-
 
1513
		},
-
 
1514
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
-
 
1515
			.ib_execute = &cayman_ring_ib_execute,
-
 
1516
//           .ib_parse = &evergreen_ib_parse,
-
 
1517
			.emit_fence = &cayman_fence_ring_emit,
-
 
1518
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1519
//			.cs_parse = &evergreen_cs_parse,
-
 
1520
			.ring_test = &r600_ring_test,
-
 
1521
			.ib_test = &r600_ib_test,
-
 
1522
			.is_lockup = &evergreen_gpu_is_lockup,
-
 
1523
			.vm_flush = &cayman_vm_flush,
-
 
1524
		},
-
 
1525
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
-
 
1526
			.ib_execute = &cayman_ring_ib_execute,
-
 
1527
//           .ib_parse = &evergreen_ib_parse,
-
 
1528
			.emit_fence = &cayman_fence_ring_emit,
-
 
1529
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1530
//			.cs_parse = &evergreen_cs_parse,
-
 
1531
			.ring_test = &r600_ring_test,
-
 
1532
			.ib_test = &r600_ib_test,
-
 
1533
			.is_lockup = &evergreen_gpu_is_lockup,
-
 
1534
			.vm_flush = &cayman_vm_flush,
-
 
1535
		}
-
 
1536
	},
-
 
1537
	.irq = {
-
 
1538
		.set = &evergreen_irq_set,
-
 
1539
		.process = &evergreen_irq_process,
-
 
1540
	},
-
 
1541
	.display = {
-
 
1542
		.bandwidth_update = &dce6_bandwidth_update,
-
 
1543
		.get_vblank_counter = &evergreen_get_vblank_counter,
-
 
1544
		.wait_for_vblank = &dce4_wait_for_vblank,
-
 
1545
//		.set_backlight_level = &atombios_set_backlight_level,
-
 
1546
//		.get_backlight_level = &atombios_get_backlight_level,
-
 
1547
	},
-
 
1548
	.copy = {
-
 
1549
		.blit = &r600_copy_blit,
-
 
1550
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1551
		.dma = NULL,
-
 
1552
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1553
		.copy = &r600_copy_blit,
-
 
1554
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1555
	},
-
 
1556
	.surface = {
-
 
1557
		.set_reg = r600_set_surface_reg,
-
 
1558
		.clear_reg = r600_clear_surface_reg,
-
 
1559
	},
-
 
1560
	.hpd = {
-
 
1561
//		.init = &evergreen_hpd_init,
-
 
1562
//		.fini = &evergreen_hpd_fini,
-
 
1563
//		.sense = &evergreen_hpd_sense,
-
 
1564
//		.set_polarity = &evergreen_hpd_set_polarity,
-
 
1565
	},
-
 
1566
	.pm = {
-
 
1567
//		.misc = &evergreen_pm_misc,
-
 
1568
//		.prepare = &evergreen_pm_prepare,
-
 
1569
//		.finish = &evergreen_pm_finish,
-
 
1570
//		.init_profile = &sumo_pm_init_profile,
-
 
1571
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
-
 
1572
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
1573
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
1574
//		.get_memory_clock = NULL,
-
 
1575
//		.set_memory_clock = NULL,
-
 
1576
//		.get_pcie_lanes = NULL,
-
 
1577
//		.set_pcie_lanes = NULL,
-
 
1578
//		.set_clock_gating = NULL,
-
 
1579
	},
-
 
1580
	.pflip = {
-
 
1581
//		.pre_page_flip = &evergreen_pre_page_flip,
-
 
1582
//		.page_flip = &evergreen_page_flip,
-
 
1583
//		.post_page_flip = &evergreen_post_page_flip,
-
 
1584
	},
-
 
1585
};
-
 
1586
 
-
 
1587
static struct radeon_asic si_asic = {
-
 
1588
	.init = &si_init,
-
 
1589
//	.fini = &si_fini,
-
 
1590
//	.suspend = &si_suspend,
-
 
1591
//	.resume = &si_resume,
-
 
1592
	.asic_reset = &si_asic_reset,
-
 
1593
//	.vga_set_state = &r600_vga_set_state,
-
 
1594
//	.ioctl_wait_idle = r600_ioctl_wait_idle,
-
 
1595
	.gui_idle = &r600_gui_idle,
-
 
1596
	.mc_wait_for_idle = &evergreen_mc_wait_for_idle,
-
 
1597
	.gart = {
-
 
1598
		.tlb_flush = &si_pcie_gart_tlb_flush,
-
 
1599
		.set_page = &rs600_gart_set_page,
-
 
1600
	},
-
 
1601
	.vm = {
-
 
1602
		.init = &si_vm_init,
-
 
1603
		.fini = &si_vm_fini,
-
 
1604
		.pt_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1605
		.set_page = &si_vm_set_page,
-
 
1606
	},
-
 
1607
	.ring = {
-
 
1608
		[RADEON_RING_TYPE_GFX_INDEX] = {
-
 
1609
			.ib_execute = &si_ring_ib_execute,
-
 
1610
//           .ib_parse = &si_ib_parse,
-
 
1611
			.emit_fence = &si_fence_ring_emit,
-
 
1612
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1613
//			.cs_parse = NULL,
-
 
1614
			.ring_test = &r600_ring_test,
-
 
1615
			.ib_test = &r600_ib_test,
-
 
1616
			.is_lockup = &si_gpu_is_lockup,
-
 
1617
			.vm_flush = &si_vm_flush,
-
 
1618
		},
-
 
1619
		[CAYMAN_RING_TYPE_CP1_INDEX] = {
-
 
1620
			.ib_execute = &si_ring_ib_execute,
-
 
1621
//           .ib_parse = &si_ib_parse,
-
 
1622
			.emit_fence = &si_fence_ring_emit,
-
 
1623
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1624
//			.cs_parse = NULL,
-
 
1625
			.ring_test = &r600_ring_test,
-
 
1626
			.ib_test = &r600_ib_test,
-
 
1627
			.is_lockup = &si_gpu_is_lockup,
-
 
1628
			.vm_flush = &si_vm_flush,
-
 
1629
		},
-
 
1630
		[CAYMAN_RING_TYPE_CP2_INDEX] = {
-
 
1631
			.ib_execute = &si_ring_ib_execute,
-
 
1632
//           .ib_parse = &si_ib_parse,
-
 
1633
			.emit_fence = &si_fence_ring_emit,
-
 
1634
			.emit_semaphore = &r600_semaphore_ring_emit,
-
 
1635
//			.cs_parse = NULL,
-
 
1636
			.ring_test = &r600_ring_test,
-
 
1637
			.ib_test = &r600_ib_test,
-
 
1638
			.is_lockup = &si_gpu_is_lockup,
-
 
1639
			.vm_flush = &si_vm_flush,
-
 
1640
		}
-
 
1641
	},
-
 
1642
	.irq = {
-
 
1643
		.set = &si_irq_set,
-
 
1644
		.process = &si_irq_process,
-
 
1645
	},
-
 
1646
	.display = {
-
 
1647
		.bandwidth_update = &dce6_bandwidth_update,
-
 
1648
		.get_vblank_counter = &evergreen_get_vblank_counter,
-
 
1649
		.wait_for_vblank = &dce4_wait_for_vblank,
747
	.irq_process = &evergreen_irq_process,
1650
//		.set_backlight_level = &atombios_set_backlight_level,
748
	.fence_ring_emit = &r600_fence_ring_emit,
1651
//		.get_backlight_level = &atombios_get_backlight_level,
749
//	.cs_parse = &evergreen_cs_parse,
1652
	},
750
	.copy_blit = &evergreen_copy_blit,
1653
	.copy = {
-
 
1654
		.blit = NULL,
-
 
1655
		.blit_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1656
		.dma = NULL,
-
 
1657
		.dma_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1658
		.copy = NULL,
-
 
1659
		.copy_ring_index = RADEON_RING_TYPE_GFX_INDEX,
-
 
1660
	},
-
 
1661
	.surface = {
-
 
1662
		.set_reg = r600_set_surface_reg,
-
 
1663
		.clear_reg = r600_clear_surface_reg,
-
 
1664
	},
-
 
1665
	.hpd = {
-
 
1666
		.init = &evergreen_hpd_init,
-
 
1667
		.fini = &evergreen_hpd_fini,
-
 
1668
		.sense = &evergreen_hpd_sense,
-
 
1669
		.set_polarity = &evergreen_hpd_set_polarity,
-
 
1670
	},
-
 
1671
	.pm = {
-
 
1672
//		.misc = &evergreen_pm_misc,
-
 
1673
//		.prepare = &evergreen_pm_prepare,
751
	.copy_dma = NULL,
1674
//		.finish = &evergreen_pm_finish,
Line -... Line 1675...
-
 
1675
//		.init_profile = &sumo_pm_init_profile,
-
 
1676
//		.get_dynpm_state = &r600_pm_get_dynpm_state,
-
 
1677
//		.get_engine_clock = &radeon_atom_get_engine_clock,
-
 
1678
//		.set_engine_clock = &radeon_atom_set_engine_clock,
-
 
1679
//		.get_memory_clock = &radeon_atom_get_memory_clock,
-
 
1680
//		.set_memory_clock = &radeon_atom_set_memory_clock,
-
 
1681
//		.get_pcie_lanes = NULL,
-
 
1682
//		.set_pcie_lanes = NULL,
-
 
1683
//		.set_clock_gating = NULL,
-
 
1684
	},
752
	.copy = &evergreen_copy_blit,
1685
	.pflip = {
753
	.get_engine_clock = &radeon_atom_get_engine_clock,
1686
//		.pre_page_flip = &evergreen_pre_page_flip,
754
	.set_engine_clock = &radeon_atom_set_engine_clock,
1687
//		.page_flip = &evergreen_page_flip,
Line 755... Line 1688...
755
	.get_memory_clock = &radeon_atom_get_memory_clock,
1688
//		.post_page_flip = &evergreen_post_page_flip,
Line 803... Line 1736...
803
	case CHIP_R423:
1736
	case CHIP_R423:
804
	case CHIP_RV410:
1737
	case CHIP_RV410:
805
		rdev->asic = &r420_asic;
1738
		rdev->asic = &r420_asic;
806
		/* handle macs */
1739
		/* handle macs */
807
		if (rdev->bios == NULL) {
1740
		if (rdev->bios == NULL) {
808
			rdev->asic->get_engine_clock = &radeon_legacy_get_engine_clock;
1741
			rdev->asic->pm.get_engine_clock = &radeon_legacy_get_engine_clock;
809
			rdev->asic->set_engine_clock = &radeon_legacy_set_engine_clock;
1742
			rdev->asic->pm.set_engine_clock = &radeon_legacy_set_engine_clock;
810
			rdev->asic->get_memory_clock = &radeon_legacy_get_memory_clock;
1743
			rdev->asic->pm.get_memory_clock = &radeon_legacy_get_memory_clock;
811
			rdev->asic->set_memory_clock = NULL;
1744
			rdev->asic->pm.set_memory_clock = NULL;
-
 
1745
			rdev->asic->display.set_backlight_level = &radeon_legacy_set_backlight_level;
812
		}
1746
		}
813
		break;
1747
		break;
814
	case CHIP_RS400:
1748
	case CHIP_RS400:
815
	case CHIP_RS480:
1749
	case CHIP_RS480:
816
		rdev->asic = &rs400_asic;
1750
		rdev->asic = &rs400_asic;
Line 880... Line 1814...
880
	case CHIP_CAYMAN:
1814
	case CHIP_CAYMAN:
881
		rdev->asic = &cayman_asic;
1815
		rdev->asic = &cayman_asic;
882
		/* set num crtcs */
1816
		/* set num crtcs */
883
		rdev->num_crtc = 6;
1817
		rdev->num_crtc = 6;
884
		break;
1818
		break;
-
 
1819
	case CHIP_ARUBA:
-
 
1820
		rdev->asic = &trinity_asic;
-
 
1821
		/* set num crtcs */
-
 
1822
		rdev->num_crtc = 4;
-
 
1823
		break;
-
 
1824
	case CHIP_TAHITI:
-
 
1825
	case CHIP_PITCAIRN:
-
 
1826
	case CHIP_VERDE:
-
 
1827
		rdev->asic = &si_asic;
-
 
1828
		/* set num crtcs */
-
 
1829
		rdev->num_crtc = 6;
-
 
1830
		break;
885
	default:
1831
	default:
886
		/* FIXME: not supported yet */
1832
		/* FIXME: not supported yet */
887
		return -EINVAL;
1833
		return -EINVAL;
888
	}
1834
	}
Line 889... Line 1835...
889
 
1835
 
890
	if (rdev->flags & RADEON_IS_IGP) {
1836
	if (rdev->flags & RADEON_IS_IGP) {
891
		rdev->asic->get_memory_clock = NULL;
1837
		rdev->asic->pm.get_memory_clock = NULL;
892
		rdev->asic->set_memory_clock = NULL;
1838
		rdev->asic->pm.set_memory_clock = NULL;
Line 893... Line 1839...
893
	}
1839
	}
894
 
1840