diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon.h')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 151 |
1 files changed, 86 insertions, 65 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index 3a7095743d44..e9486630a467 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -69,6 +69,7 @@ | |||
69 | #include <ttm/ttm_bo_driver.h> | 69 | #include <ttm/ttm_bo_driver.h> |
70 | #include <ttm/ttm_placement.h> | 70 | #include <ttm/ttm_placement.h> |
71 | #include <ttm/ttm_module.h> | 71 | #include <ttm/ttm_module.h> |
72 | #include <ttm/ttm_execbuf_util.h> | ||
72 | 73 | ||
73 | #include "radeon_family.h" | 74 | #include "radeon_family.h" |
74 | #include "radeon_mode.h" | 75 | #include "radeon_mode.h" |
@@ -180,6 +181,7 @@ void rs690_pm_info(struct radeon_device *rdev); | |||
180 | extern u32 rv6xx_get_temp(struct radeon_device *rdev); | 181 | extern u32 rv6xx_get_temp(struct radeon_device *rdev); |
181 | extern u32 rv770_get_temp(struct radeon_device *rdev); | 182 | extern u32 rv770_get_temp(struct radeon_device *rdev); |
182 | extern u32 evergreen_get_temp(struct radeon_device *rdev); | 183 | extern u32 evergreen_get_temp(struct radeon_device *rdev); |
184 | extern u32 sumo_get_temp(struct radeon_device *rdev); | ||
183 | 185 | ||
184 | /* | 186 | /* |
185 | * Fences. | 187 | * Fences. |
@@ -259,13 +261,12 @@ struct radeon_bo { | |||
259 | }; | 261 | }; |
260 | 262 | ||
261 | struct radeon_bo_list { | 263 | struct radeon_bo_list { |
262 | struct list_head list; | 264 | struct ttm_validate_buffer tv; |
263 | struct radeon_bo *bo; | 265 | struct radeon_bo *bo; |
264 | uint64_t gpu_offset; | 266 | uint64_t gpu_offset; |
265 | unsigned rdomain; | 267 | unsigned rdomain; |
266 | unsigned wdomain; | 268 | unsigned wdomain; |
267 | u32 tiling_flags; | 269 | u32 tiling_flags; |
268 | bool reserved; | ||
269 | }; | 270 | }; |
270 | 271 | ||
271 | /* | 272 | /* |
@@ -377,11 +378,56 @@ void radeon_scratch_free(struct radeon_device *rdev, uint32_t reg); | |||
377 | /* | 378 | /* |
378 | * IRQS. | 379 | * IRQS. |
379 | */ | 380 | */ |
381 | |||
382 | struct radeon_unpin_work { | ||
383 | struct work_struct work; | ||
384 | struct radeon_device *rdev; | ||
385 | int crtc_id; | ||
386 | struct radeon_fence *fence; | ||
387 | struct drm_pending_vblank_event *event; | ||
388 | struct radeon_bo *old_rbo; | ||
389 | u64 new_crtc_base; | ||
390 | }; | ||
391 | |||
392 | struct r500_irq_stat_regs { | ||
393 | u32 disp_int; | ||
394 | }; | ||
395 | |||
396 | struct r600_irq_stat_regs { | ||
397 | u32 disp_int; | ||
398 | u32 disp_int_cont; | ||
399 | u32 disp_int_cont2; | ||
400 | u32 d1grph_int; | ||
401 | u32 d2grph_int; | ||
402 | }; | ||
403 | |||
404 | struct evergreen_irq_stat_regs { | ||
405 | u32 disp_int; | ||
406 | u32 disp_int_cont; | ||
407 | u32 disp_int_cont2; | ||
408 | u32 disp_int_cont3; | ||
409 | u32 disp_int_cont4; | ||
410 | u32 disp_int_cont5; | ||
411 | u32 d1grph_int; | ||
412 | u32 d2grph_int; | ||
413 | u32 d3grph_int; | ||
414 | u32 d4grph_int; | ||
415 | u32 d5grph_int; | ||
416 | u32 d6grph_int; | ||
417 | }; | ||
418 | |||
419 | union radeon_irq_stat_regs { | ||
420 | struct r500_irq_stat_regs r500; | ||
421 | struct r600_irq_stat_regs r600; | ||
422 | struct evergreen_irq_stat_regs evergreen; | ||
423 | }; | ||
424 | |||
380 | struct radeon_irq { | 425 | struct radeon_irq { |
381 | bool installed; | 426 | bool installed; |
382 | bool sw_int; | 427 | bool sw_int; |
383 | /* FIXME: use a define max crtc rather than hardcode it */ | 428 | /* FIXME: use a define max crtc rather than hardcode it */ |
384 | bool crtc_vblank_int[6]; | 429 | bool crtc_vblank_int[6]; |
430 | bool pflip[6]; | ||
385 | wait_queue_head_t vblank_queue; | 431 | wait_queue_head_t vblank_queue; |
386 | /* FIXME: use defines for max hpd/dacs */ | 432 | /* FIXME: use defines for max hpd/dacs */ |
387 | bool hpd[6]; | 433 | bool hpd[6]; |
@@ -392,12 +438,17 @@ struct radeon_irq { | |||
392 | bool hdmi[2]; | 438 | bool hdmi[2]; |
393 | spinlock_t sw_lock; | 439 | spinlock_t sw_lock; |
394 | int sw_refcount; | 440 | int sw_refcount; |
441 | union radeon_irq_stat_regs stat_regs; | ||
442 | spinlock_t pflip_lock[6]; | ||
443 | int pflip_refcount[6]; | ||
395 | }; | 444 | }; |
396 | 445 | ||
397 | int radeon_irq_kms_init(struct radeon_device *rdev); | 446 | int radeon_irq_kms_init(struct radeon_device *rdev); |
398 | void radeon_irq_kms_fini(struct radeon_device *rdev); | 447 | void radeon_irq_kms_fini(struct radeon_device *rdev); |
399 | void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev); | 448 | void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev); |
400 | void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev); | 449 | void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev); |
450 | void radeon_irq_kms_pflip_irq_get(struct radeon_device *rdev, int crtc); | ||
451 | void radeon_irq_kms_pflip_irq_put(struct radeon_device *rdev, int crtc); | ||
401 | 452 | ||
402 | /* | 453 | /* |
403 | * CP & ring. | 454 | * CP & ring. |
@@ -687,6 +738,8 @@ enum radeon_int_thermal_type { | |||
687 | THERMAL_TYPE_RV6XX, | 738 | THERMAL_TYPE_RV6XX, |
688 | THERMAL_TYPE_RV770, | 739 | THERMAL_TYPE_RV770, |
689 | THERMAL_TYPE_EVERGREEN, | 740 | THERMAL_TYPE_EVERGREEN, |
741 | THERMAL_TYPE_SUMO, | ||
742 | THERMAL_TYPE_NI, | ||
690 | }; | 743 | }; |
691 | 744 | ||
692 | struct radeon_voltage { | 745 | struct radeon_voltage { |
@@ -770,6 +823,9 @@ struct radeon_pm { | |||
770 | u32 current_sclk; | 823 | u32 current_sclk; |
771 | u32 current_mclk; | 824 | u32 current_mclk; |
772 | u32 current_vddc; | 825 | u32 current_vddc; |
826 | u32 default_sclk; | ||
827 | u32 default_mclk; | ||
828 | u32 default_vddc; | ||
773 | struct radeon_i2c_chan *i2c_bus; | 829 | struct radeon_i2c_chan *i2c_bus; |
774 | /* selected pm method */ | 830 | /* selected pm method */ |
775 | enum radeon_pm_method pm_method; | 831 | enum radeon_pm_method pm_method; |
@@ -881,6 +937,10 @@ struct radeon_asic { | |||
881 | void (*pm_finish)(struct radeon_device *rdev); | 937 | void (*pm_finish)(struct radeon_device *rdev); |
882 | void (*pm_init_profile)(struct radeon_device *rdev); | 938 | void (*pm_init_profile)(struct radeon_device *rdev); |
883 | void (*pm_get_dynpm_state)(struct radeon_device *rdev); | 939 | void (*pm_get_dynpm_state)(struct radeon_device *rdev); |
940 | /* pageflipping */ | ||
941 | void (*pre_page_flip)(struct radeon_device *rdev, int crtc); | ||
942 | u32 (*page_flip)(struct radeon_device *rdev, int crtc, u64 crtc_base); | ||
943 | void (*post_page_flip)(struct radeon_device *rdev, int crtc); | ||
884 | }; | 944 | }; |
885 | 945 | ||
886 | /* | 946 | /* |
@@ -975,6 +1035,7 @@ struct evergreen_asic { | |||
975 | unsigned tiling_npipes; | 1035 | unsigned tiling_npipes; |
976 | unsigned tiling_group_size; | 1036 | unsigned tiling_group_size; |
977 | unsigned tile_config; | 1037 | unsigned tile_config; |
1038 | struct r100_gpu_lockup lockup; | ||
978 | }; | 1039 | }; |
979 | 1040 | ||
980 | union radeon_asic_config { | 1041 | union radeon_asic_config { |
@@ -1091,11 +1152,11 @@ struct radeon_device { | |||
1091 | const struct firmware *me_fw; /* all family ME firmware */ | 1152 | const struct firmware *me_fw; /* all family ME firmware */ |
1092 | const struct firmware *pfp_fw; /* r6/700 PFP firmware */ | 1153 | const struct firmware *pfp_fw; /* r6/700 PFP firmware */ |
1093 | const struct firmware *rlc_fw; /* r6/700 RLC firmware */ | 1154 | const struct firmware *rlc_fw; /* r6/700 RLC firmware */ |
1155 | const struct firmware *mc_fw; /* NI MC firmware */ | ||
1094 | struct r600_blit r600_blit; | 1156 | struct r600_blit r600_blit; |
1095 | struct r700_vram_scratch vram_scratch; | 1157 | struct r700_vram_scratch vram_scratch; |
1096 | int msi_enabled; /* msi enabled */ | 1158 | int msi_enabled; /* msi enabled */ |
1097 | struct r600_ih ih; /* r6/700 interrupt ring */ | 1159 | struct r600_ih ih; /* r6/700 interrupt ring */ |
1098 | struct workqueue_struct *wq; | ||
1099 | struct work_struct hotplug_work; | 1160 | struct work_struct hotplug_work; |
1100 | int num_crtc; /* number of crtcs */ | 1161 | int num_crtc; /* number of crtcs */ |
1101 | struct mutex dc_hw_i2c_mutex; /* display controller hw i2c mutex */ | 1162 | struct mutex dc_hw_i2c_mutex; /* display controller hw i2c mutex */ |
@@ -1110,10 +1171,10 @@ struct radeon_device { | |||
1110 | uint8_t audio_status_bits; | 1171 | uint8_t audio_status_bits; |
1111 | uint8_t audio_category_code; | 1172 | uint8_t audio_category_code; |
1112 | 1173 | ||
1113 | bool powered_down; | ||
1114 | struct notifier_block acpi_nb; | 1174 | struct notifier_block acpi_nb; |
1115 | /* only one userspace can use Hyperz features at a time */ | 1175 | /* only one userspace can use Hyperz features or CMASK at a time */ |
1116 | struct drm_file *hyperz_filp; | 1176 | struct drm_file *hyperz_filp; |
1177 | struct drm_file *cmask_filp; | ||
1117 | /* i2c buses */ | 1178 | /* i2c buses */ |
1118 | struct radeon_i2c_chan *i2c_bus[RADEON_MAX_I2C_BUS]; | 1179 | struct radeon_i2c_chan *i2c_bus[RADEON_MAX_I2C_BUS]; |
1119 | }; | 1180 | }; |
@@ -1188,6 +1249,8 @@ static inline void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v) | |||
1188 | */ | 1249 | */ |
1189 | #define RREG8(reg) readb(((void __iomem *)rdev->rmmio) + (reg)) | 1250 | #define RREG8(reg) readb(((void __iomem *)rdev->rmmio) + (reg)) |
1190 | #define WREG8(reg, v) writeb(v, ((void __iomem *)rdev->rmmio) + (reg)) | 1251 | #define WREG8(reg, v) writeb(v, ((void __iomem *)rdev->rmmio) + (reg)) |
1252 | #define RREG16(reg) readw(((void __iomem *)rdev->rmmio) + (reg)) | ||
1253 | #define WREG16(reg, v) writew(v, ((void __iomem *)rdev->rmmio) + (reg)) | ||
1191 | #define RREG32(reg) r100_mm_rreg(rdev, (reg)) | 1254 | #define RREG32(reg) r100_mm_rreg(rdev, (reg)) |
1192 | #define DREG32(reg) printk(KERN_INFO "REGISTER: " #reg " : 0x%08X\n", r100_mm_rreg(rdev, (reg))) | 1255 | #define DREG32(reg) printk(KERN_INFO "REGISTER: " #reg " : 0x%08X\n", r100_mm_rreg(rdev, (reg))) |
1193 | #define WREG32(reg, v) r100_mm_wreg(rdev, (reg), (v)) | 1256 | #define WREG32(reg, v) r100_mm_wreg(rdev, (reg), (v)) |
@@ -1261,6 +1324,14 @@ void r100_pll_errata_after_index(struct radeon_device *rdev); | |||
1261 | (rdev->family == CHIP_RV410) || \ | 1324 | (rdev->family == CHIP_RV410) || \ |
1262 | (rdev->family == CHIP_RS400) || \ | 1325 | (rdev->family == CHIP_RS400) || \ |
1263 | (rdev->family == CHIP_RS480)) | 1326 | (rdev->family == CHIP_RS480)) |
1327 | #define ASIC_IS_X2(rdev) ((rdev->ddev->pdev->device == 0x9441) || \ | ||
1328 | (rdev->ddev->pdev->device == 0x9443) || \ | ||
1329 | (rdev->ddev->pdev->device == 0x944B) || \ | ||
1330 | (rdev->ddev->pdev->device == 0x9506) || \ | ||
1331 | (rdev->ddev->pdev->device == 0x9509) || \ | ||
1332 | (rdev->ddev->pdev->device == 0x950F) || \ | ||
1333 | (rdev->ddev->pdev->device == 0x689C) || \ | ||
1334 | (rdev->ddev->pdev->device == 0x689D)) | ||
1264 | #define ASIC_IS_AVIVO(rdev) ((rdev->family >= CHIP_RS600)) | 1335 | #define ASIC_IS_AVIVO(rdev) ((rdev->family >= CHIP_RS600)) |
1265 | #define ASIC_IS_DCE2(rdev) ((rdev->family == CHIP_RS600) || \ | 1336 | #define ASIC_IS_DCE2(rdev) ((rdev->family == CHIP_RS600) || \ |
1266 | (rdev->family == CHIP_RS690) || \ | 1337 | (rdev->family == CHIP_RS690) || \ |
@@ -1269,6 +1340,9 @@ void r100_pll_errata_after_index(struct radeon_device *rdev); | |||
1269 | #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620)) | 1340 | #define ASIC_IS_DCE3(rdev) ((rdev->family >= CHIP_RV620)) |
1270 | #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730)) | 1341 | #define ASIC_IS_DCE32(rdev) ((rdev->family >= CHIP_RV730)) |
1271 | #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR)) | 1342 | #define ASIC_IS_DCE4(rdev) ((rdev->family >= CHIP_CEDAR)) |
1343 | #define ASIC_IS_DCE41(rdev) ((rdev->family >= CHIP_PALM) && \ | ||
1344 | (rdev->flags & RADEON_IS_IGP)) | ||
1345 | #define ASIC_IS_DCE5(rdev) ((rdev->family >= CHIP_BARTS)) | ||
1272 | 1346 | ||
1273 | /* | 1347 | /* |
1274 | * BIOS helpers. | 1348 | * BIOS helpers. |
@@ -1344,6 +1418,9 @@ static inline void radeon_ring_write(struct radeon_device *rdev, uint32_t v) | |||
1344 | #define radeon_pm_finish(rdev) (rdev)->asic->pm_finish((rdev)) | 1418 | #define radeon_pm_finish(rdev) (rdev)->asic->pm_finish((rdev)) |
1345 | #define radeon_pm_init_profile(rdev) (rdev)->asic->pm_init_profile((rdev)) | 1419 | #define radeon_pm_init_profile(rdev) (rdev)->asic->pm_init_profile((rdev)) |
1346 | #define radeon_pm_get_dynpm_state(rdev) (rdev)->asic->pm_get_dynpm_state((rdev)) | 1420 | #define radeon_pm_get_dynpm_state(rdev) (rdev)->asic->pm_get_dynpm_state((rdev)) |
1421 | #define radeon_pre_page_flip(rdev, crtc) rdev->asic->pre_page_flip((rdev), (crtc)) | ||
1422 | #define radeon_page_flip(rdev, crtc, base) rdev->asic->page_flip((rdev), (crtc), (base)) | ||
1423 | #define radeon_post_page_flip(rdev, crtc) rdev->asic->post_page_flip((rdev), (crtc)) | ||
1347 | 1424 | ||
1348 | /* Common functions */ | 1425 | /* Common functions */ |
1349 | /* AGP */ | 1426 | /* AGP */ |
@@ -1372,67 +1449,7 @@ extern void radeon_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc | |||
1372 | extern int radeon_resume_kms(struct drm_device *dev); | 1449 | extern int radeon_resume_kms(struct drm_device *dev); |
1373 | extern int radeon_suspend_kms(struct drm_device *dev, pm_message_t state); | 1450 | extern int radeon_suspend_kms(struct drm_device *dev, pm_message_t state); |
1374 | 1451 | ||
1375 | /* r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 */ | ||
1376 | extern void r100_gpu_lockup_update(struct r100_gpu_lockup *lockup, struct radeon_cp *cp); | ||
1377 | extern bool r100_gpu_cp_is_lockup(struct radeon_device *rdev, struct r100_gpu_lockup *lockup, struct radeon_cp *cp); | ||
1378 | |||
1379 | /* rv200,rv250,rv280 */ | ||
1380 | extern void r200_set_safe_registers(struct radeon_device *rdev); | ||
1381 | |||
1382 | /* r300,r350,rv350,rv370,rv380 */ | ||
1383 | extern void r300_set_reg_safe(struct radeon_device *rdev); | ||
1384 | extern void r300_mc_program(struct radeon_device *rdev); | ||
1385 | extern void r300_mc_init(struct radeon_device *rdev); | ||
1386 | extern void r300_clock_startup(struct radeon_device *rdev); | ||
1387 | extern int r300_mc_wait_for_idle(struct radeon_device *rdev); | ||
1388 | extern int rv370_pcie_gart_init(struct radeon_device *rdev); | ||
1389 | extern void rv370_pcie_gart_fini(struct radeon_device *rdev); | ||
1390 | extern int rv370_pcie_gart_enable(struct radeon_device *rdev); | ||
1391 | extern void rv370_pcie_gart_disable(struct radeon_device *rdev); | ||
1392 | |||
1393 | /* r420,r423,rv410 */ | ||
1394 | extern u32 r420_mc_rreg(struct radeon_device *rdev, u32 reg); | ||
1395 | extern void r420_mc_wreg(struct radeon_device *rdev, u32 reg, u32 v); | ||
1396 | extern int r420_debugfs_pipes_info_init(struct radeon_device *rdev); | ||
1397 | extern void r420_pipes_init(struct radeon_device *rdev); | ||
1398 | |||
1399 | /* rv515 */ | ||
1400 | struct rv515_mc_save { | ||
1401 | u32 d1vga_control; | ||
1402 | u32 d2vga_control; | ||
1403 | u32 vga_render_control; | ||
1404 | u32 vga_hdp_control; | ||
1405 | u32 d1crtc_control; | ||
1406 | u32 d2crtc_control; | ||
1407 | }; | ||
1408 | extern void rv515_bandwidth_avivo_update(struct radeon_device *rdev); | ||
1409 | extern void rv515_vga_render_disable(struct radeon_device *rdev); | ||
1410 | extern void rv515_set_safe_registers(struct radeon_device *rdev); | ||
1411 | extern void rv515_mc_stop(struct radeon_device *rdev, struct rv515_mc_save *save); | ||
1412 | extern void rv515_mc_resume(struct radeon_device *rdev, struct rv515_mc_save *save); | ||
1413 | extern void rv515_clock_startup(struct radeon_device *rdev); | ||
1414 | extern void rv515_debugfs(struct radeon_device *rdev); | ||
1415 | extern int rv515_suspend(struct radeon_device *rdev); | ||
1416 | |||
1417 | /* rs400 */ | ||
1418 | extern int rs400_gart_init(struct radeon_device *rdev); | ||
1419 | extern int rs400_gart_enable(struct radeon_device *rdev); | ||
1420 | extern void rs400_gart_adjust_size(struct radeon_device *rdev); | ||
1421 | extern void rs400_gart_disable(struct radeon_device *rdev); | ||
1422 | extern void rs400_gart_fini(struct radeon_device *rdev); | ||
1423 | |||
1424 | /* rs600 */ | ||
1425 | extern void rs600_set_safe_registers(struct radeon_device *rdev); | ||
1426 | extern int rs600_irq_set(struct radeon_device *rdev); | ||
1427 | extern void rs600_irq_disable(struct radeon_device *rdev); | ||
1428 | |||
1429 | /* rs690, rs740 */ | ||
1430 | extern void rs690_line_buffer_adjust(struct radeon_device *rdev, | ||
1431 | struct drm_display_mode *mode1, | ||
1432 | struct drm_display_mode *mode2); | ||
1433 | |||
1434 | /* r600, rv610, rv630, rv620, rv635, rv670, rs780, rs880 */ | 1452 | /* r600, rv610, rv630, rv620, rv635, rv670, rs780, rs880 */ |
1435 | extern void r600_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc); | ||
1436 | extern bool r600_card_posted(struct radeon_device *rdev); | 1453 | extern bool r600_card_posted(struct radeon_device *rdev); |
1437 | extern void r600_cp_stop(struct radeon_device *rdev); | 1454 | extern void r600_cp_stop(struct radeon_device *rdev); |
1438 | extern int r600_cp_start(struct radeon_device *rdev); | 1455 | extern int r600_cp_start(struct radeon_device *rdev); |
@@ -1478,6 +1495,7 @@ extern void r600_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mo | |||
1478 | extern int r600_hdmi_buffer_status_changed(struct drm_encoder *encoder); | 1495 | extern int r600_hdmi_buffer_status_changed(struct drm_encoder *encoder); |
1479 | extern void r600_hdmi_update_audio_settings(struct drm_encoder *encoder); | 1496 | extern void r600_hdmi_update_audio_settings(struct drm_encoder *encoder); |
1480 | 1497 | ||
1498 | extern void r700_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc); | ||
1481 | extern void r700_cp_stop(struct radeon_device *rdev); | 1499 | extern void r700_cp_stop(struct radeon_device *rdev); |
1482 | extern void r700_cp_fini(struct radeon_device *rdev); | 1500 | extern void r700_cp_fini(struct radeon_device *rdev); |
1483 | extern void evergreen_disable_interrupt_state(struct radeon_device *rdev); | 1501 | extern void evergreen_disable_interrupt_state(struct radeon_device *rdev); |
@@ -1485,6 +1503,9 @@ extern int evergreen_irq_set(struct radeon_device *rdev); | |||
1485 | extern int evergreen_blit_init(struct radeon_device *rdev); | 1503 | extern int evergreen_blit_init(struct radeon_device *rdev); |
1486 | extern void evergreen_blit_fini(struct radeon_device *rdev); | 1504 | extern void evergreen_blit_fini(struct radeon_device *rdev); |
1487 | 1505 | ||
1506 | extern int ni_init_microcode(struct radeon_device *rdev); | ||
1507 | extern int btc_mc_load_microcode(struct radeon_device *rdev); | ||
1508 | |||
1488 | /* radeon_acpi.c */ | 1509 | /* radeon_acpi.c */ |
1489 | #if defined(CONFIG_ACPI) | 1510 | #if defined(CONFIG_ACPI) |
1490 | extern int radeon_acpi_init(struct radeon_device *rdev); | 1511 | extern int radeon_acpi_init(struct radeon_device *rdev); |