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 |