aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/rs690.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/rs690.c')
-rw-r--r--drivers/gpu/drm/radeon/rs690.c174
1 files changed, 96 insertions, 78 deletions
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
index 27547175cf93..bbf3da790fd5 100644
--- a/drivers/gpu/drm/radeon/rs690.c
+++ b/drivers/gpu/drm/radeon/rs690.c
@@ -27,6 +27,7 @@
27 */ 27 */
28#include "drmP.h" 28#include "drmP.h"
29#include "radeon.h" 29#include "radeon.h"
30#include "radeon_asic.h"
30#include "atom.h" 31#include "atom.h"
31#include "rs690d.h" 32#include "rs690d.h"
32 33
@@ -57,42 +58,57 @@ static void rs690_gpu_init(struct radeon_device *rdev)
57 } 58 }
58} 59}
59 60
61union igp_info {
62 struct _ATOM_INTEGRATED_SYSTEM_INFO info;
63 struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 info_v2;
64};
65
60void rs690_pm_info(struct radeon_device *rdev) 66void rs690_pm_info(struct radeon_device *rdev)
61{ 67{
62 int index = GetIndexIntoMasterTable(DATA, IntegratedSystemInfo); 68 int index = GetIndexIntoMasterTable(DATA, IntegratedSystemInfo);
63 struct _ATOM_INTEGRATED_SYSTEM_INFO *info; 69 union igp_info *info;
64 struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 *info_v2;
65 void *ptr;
66 uint16_t data_offset; 70 uint16_t data_offset;
67 uint8_t frev, crev; 71 uint8_t frev, crev;
68 fixed20_12 tmp; 72 fixed20_12 tmp;
69 73
70 atom_parse_data_header(rdev->mode_info.atom_context, index, NULL, 74 if (atom_parse_data_header(rdev->mode_info.atom_context, index, NULL,
71 &frev, &crev, &data_offset); 75 &frev, &crev, &data_offset)) {
72 ptr = rdev->mode_info.atom_context->bios + data_offset; 76 info = (union igp_info *)(rdev->mode_info.atom_context->bios + data_offset);
73 info = (struct _ATOM_INTEGRATED_SYSTEM_INFO *)ptr; 77
74 info_v2 = (struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 *)ptr; 78 /* Get various system informations from bios */
75 /* Get various system informations from bios */ 79 switch (crev) {
76 switch (crev) { 80 case 1:
77 case 1: 81 tmp.full = rfixed_const(100);
78 tmp.full = rfixed_const(100); 82 rdev->pm.igp_sideport_mclk.full = rfixed_const(info->info.ulBootUpMemoryClock);
79 rdev->pm.igp_sideport_mclk.full = rfixed_const(info->ulBootUpMemoryClock); 83 rdev->pm.igp_sideport_mclk.full = rfixed_div(rdev->pm.igp_sideport_mclk, tmp);
80 rdev->pm.igp_sideport_mclk.full = rfixed_div(rdev->pm.igp_sideport_mclk, tmp); 84 rdev->pm.igp_system_mclk.full = rfixed_const(le16_to_cpu(info->info.usK8MemoryClock));
81 rdev->pm.igp_system_mclk.full = rfixed_const(le16_to_cpu(info->usK8MemoryClock)); 85 rdev->pm.igp_ht_link_clk.full = rfixed_const(le16_to_cpu(info->info.usFSBClock));
82 rdev->pm.igp_ht_link_clk.full = rfixed_const(le16_to_cpu(info->usFSBClock)); 86 rdev->pm.igp_ht_link_width.full = rfixed_const(info->info.ucHTLinkWidth);
83 rdev->pm.igp_ht_link_width.full = rfixed_const(info->ucHTLinkWidth); 87 break;
84 break; 88 case 2:
85 case 2: 89 tmp.full = rfixed_const(100);
86 tmp.full = rfixed_const(100); 90 rdev->pm.igp_sideport_mclk.full = rfixed_const(info->info_v2.ulBootUpSidePortClock);
87 rdev->pm.igp_sideport_mclk.full = rfixed_const(info_v2->ulBootUpSidePortClock); 91 rdev->pm.igp_sideport_mclk.full = rfixed_div(rdev->pm.igp_sideport_mclk, tmp);
88 rdev->pm.igp_sideport_mclk.full = rfixed_div(rdev->pm.igp_sideport_mclk, tmp); 92 rdev->pm.igp_system_mclk.full = rfixed_const(info->info_v2.ulBootUpUMAClock);
89 rdev->pm.igp_system_mclk.full = rfixed_const(info_v2->ulBootUpUMAClock); 93 rdev->pm.igp_system_mclk.full = rfixed_div(rdev->pm.igp_system_mclk, tmp);
90 rdev->pm.igp_system_mclk.full = rfixed_div(rdev->pm.igp_system_mclk, tmp); 94 rdev->pm.igp_ht_link_clk.full = rfixed_const(info->info_v2.ulHTLinkFreq);
91 rdev->pm.igp_ht_link_clk.full = rfixed_const(info_v2->ulHTLinkFreq); 95 rdev->pm.igp_ht_link_clk.full = rfixed_div(rdev->pm.igp_ht_link_clk, tmp);
92 rdev->pm.igp_ht_link_clk.full = rfixed_div(rdev->pm.igp_ht_link_clk, tmp); 96 rdev->pm.igp_ht_link_width.full = rfixed_const(le16_to_cpu(info->info_v2.usMinHTLinkWidth));
93 rdev->pm.igp_ht_link_width.full = rfixed_const(le16_to_cpu(info_v2->usMinHTLinkWidth)); 97 break;
94 break; 98 default:
95 default: 99 tmp.full = rfixed_const(100);
100 /* We assume the slower possible clock ie worst case */
101 /* DDR 333Mhz */
102 rdev->pm.igp_sideport_mclk.full = rfixed_const(333);
103 /* FIXME: system clock ? */
104 rdev->pm.igp_system_mclk.full = rfixed_const(100);
105 rdev->pm.igp_system_mclk.full = rfixed_div(rdev->pm.igp_system_mclk, tmp);
106 rdev->pm.igp_ht_link_clk.full = rfixed_const(200);
107 rdev->pm.igp_ht_link_width.full = rfixed_const(8);
108 DRM_ERROR("No integrated system info for your GPU, using safe default\n");
109 break;
110 }
111 } else {
96 tmp.full = rfixed_const(100); 112 tmp.full = rfixed_const(100);
97 /* We assume the slower possible clock ie worst case */ 113 /* We assume the slower possible clock ie worst case */
98 /* DDR 333Mhz */ 114 /* DDR 333Mhz */
@@ -103,7 +119,6 @@ void rs690_pm_info(struct radeon_device *rdev)
103 rdev->pm.igp_ht_link_clk.full = rfixed_const(200); 119 rdev->pm.igp_ht_link_clk.full = rfixed_const(200);
104 rdev->pm.igp_ht_link_width.full = rfixed_const(8); 120 rdev->pm.igp_ht_link_width.full = rfixed_const(8);
105 DRM_ERROR("No integrated system info for your GPU, using safe default\n"); 121 DRM_ERROR("No integrated system info for your GPU, using safe default\n");
106 break;
107 } 122 }
108 /* Compute various bandwidth */ 123 /* Compute various bandwidth */
109 /* k8_bandwidth = (memory_clk / 2) * 2 * 8 * 0.5 = memory_clk * 4 */ 124 /* k8_bandwidth = (memory_clk / 2) * 2 * 8 * 0.5 = memory_clk * 4 */
@@ -129,36 +144,25 @@ void rs690_pm_info(struct radeon_device *rdev)
129 rdev->pm.sideport_bandwidth.full = rfixed_div(rdev->pm.sideport_bandwidth, tmp); 144 rdev->pm.sideport_bandwidth.full = rfixed_div(rdev->pm.sideport_bandwidth, tmp);
130} 145}
131 146
132void rs690_vram_info(struct radeon_device *rdev) 147void rs690_mc_init(struct radeon_device *rdev)
133{ 148{
134 uint32_t tmp; 149 u64 base;
135 fixed20_12 a;
136 150
137 rs400_gart_adjust_size(rdev); 151 rs400_gart_adjust_size(rdev);
138 /* DDR for all card after R300 & IGP */
139 rdev->mc.vram_is_ddr = true; 152 rdev->mc.vram_is_ddr = true;
140 /* FIXME: is this correct for RS690/RS740 ? */ 153 rdev->mc.vram_width = 128;
141 tmp = RREG32(RADEON_MEM_CNTL);
142 if (tmp & R300_MEM_NUM_CHANNELS_MASK) {
143 rdev->mc.vram_width = 128;
144 } else {
145 rdev->mc.vram_width = 64;
146 }
147 rdev->mc.real_vram_size = RREG32(RADEON_CONFIG_MEMSIZE); 154 rdev->mc.real_vram_size = RREG32(RADEON_CONFIG_MEMSIZE);
148 rdev->mc.mc_vram_size = rdev->mc.real_vram_size; 155 rdev->mc.mc_vram_size = rdev->mc.real_vram_size;
149
150 rdev->mc.aper_base = drm_get_resource_start(rdev->ddev, 0); 156 rdev->mc.aper_base = drm_get_resource_start(rdev->ddev, 0);
151 rdev->mc.aper_size = drm_get_resource_len(rdev->ddev, 0); 157 rdev->mc.aper_size = drm_get_resource_len(rdev->ddev, 0);
158 rdev->mc.visible_vram_size = rdev->mc.aper_size;
159 base = RREG32_MC(R_000100_MCCFG_FB_LOCATION);
160 base = G_000100_MC_FB_START(base) << 16;
152 rs690_pm_info(rdev); 161 rs690_pm_info(rdev);
153 /* FIXME: we should enforce default clock in case GPU is not in 162 rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev);
154 * default setup 163 radeon_vram_location(rdev, &rdev->mc, base);
155 */ 164 radeon_gtt_location(rdev, &rdev->mc);
156 a.full = rfixed_const(100); 165 radeon_update_bandwidth_info(rdev);
157 rdev->pm.sclk.full = rfixed_const(rdev->clock.default_sclk);
158 rdev->pm.sclk.full = rfixed_div(rdev->pm.sclk, a);
159 a.full = rfixed_const(16);
160 /* core_bandwidth = sclk(Mhz) * 16 */
161 rdev->pm.core_bandwidth.full = rfixed_div(rdev->pm.sclk, a);
162} 166}
163 167
164void rs690_line_buffer_adjust(struct radeon_device *rdev, 168void rs690_line_buffer_adjust(struct radeon_device *rdev,
@@ -244,8 +248,9 @@ void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
244 248
245 b.full = rfixed_const(mode->crtc_hdisplay); 249 b.full = rfixed_const(mode->crtc_hdisplay);
246 c.full = rfixed_const(256); 250 c.full = rfixed_const(256);
247 a.full = rfixed_mul(wm->num_line_pair, b); 251 a.full = rfixed_div(b, c);
248 request_fifo_depth.full = rfixed_div(a, c); 252 request_fifo_depth.full = rfixed_mul(a, wm->num_line_pair);
253 request_fifo_depth.full = rfixed_ceil(request_fifo_depth);
249 if (a.full < rfixed_const(4)) { 254 if (a.full < rfixed_const(4)) {
250 wm->lb_request_fifo_depth = 4; 255 wm->lb_request_fifo_depth = 4;
251 } else { 256 } else {
@@ -374,6 +379,7 @@ void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
374 a.full = rfixed_const(16); 379 a.full = rfixed_const(16);
375 wm->priority_mark_max.full = rfixed_const(crtc->base.mode.crtc_hdisplay); 380 wm->priority_mark_max.full = rfixed_const(crtc->base.mode.crtc_hdisplay);
376 wm->priority_mark_max.full = rfixed_div(wm->priority_mark_max, a); 381 wm->priority_mark_max.full = rfixed_div(wm->priority_mark_max, a);
382 wm->priority_mark_max.full = rfixed_ceil(wm->priority_mark_max);
377 383
378 /* Determine estimated width */ 384 /* Determine estimated width */
379 estimated_width.full = tolerable_latency.full - wm->worst_case_latency.full; 385 estimated_width.full = tolerable_latency.full - wm->worst_case_latency.full;
@@ -383,6 +389,7 @@ void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
383 } else { 389 } else {
384 a.full = rfixed_const(16); 390 a.full = rfixed_const(16);
385 wm->priority_mark.full = rfixed_div(estimated_width, a); 391 wm->priority_mark.full = rfixed_div(estimated_width, a);
392 wm->priority_mark.full = rfixed_ceil(wm->priority_mark);
386 wm->priority_mark.full = wm->priority_mark_max.full - wm->priority_mark.full; 393 wm->priority_mark.full = wm->priority_mark_max.full - wm->priority_mark.full;
387 } 394 }
388} 395}
@@ -393,10 +400,12 @@ void rs690_bandwidth_update(struct radeon_device *rdev)
393 struct drm_display_mode *mode1 = NULL; 400 struct drm_display_mode *mode1 = NULL;
394 struct rs690_watermark wm0; 401 struct rs690_watermark wm0;
395 struct rs690_watermark wm1; 402 struct rs690_watermark wm1;
396 u32 tmp; 403 u32 tmp, d1mode_priority_a_cnt, d2mode_priority_a_cnt;
397 fixed20_12 priority_mark02, priority_mark12, fill_rate; 404 fixed20_12 priority_mark02, priority_mark12, fill_rate;
398 fixed20_12 a, b; 405 fixed20_12 a, b;
399 406
407 radeon_update_display_priority(rdev);
408
400 if (rdev->mode_info.crtcs[0]->base.enabled) 409 if (rdev->mode_info.crtcs[0]->base.enabled)
401 mode0 = &rdev->mode_info.crtcs[0]->base.mode; 410 mode0 = &rdev->mode_info.crtcs[0]->base.mode;
402 if (rdev->mode_info.crtcs[1]->base.enabled) 411 if (rdev->mode_info.crtcs[1]->base.enabled)
@@ -406,7 +415,8 @@ void rs690_bandwidth_update(struct radeon_device *rdev)
406 * modes if the user specifies HIGH for displaypriority 415 * modes if the user specifies HIGH for displaypriority
407 * option. 416 * option.
408 */ 417 */
409 if (rdev->disp_priority == 2) { 418 if ((rdev->disp_priority == 2) &&
419 ((rdev->family == CHIP_RS690) || (rdev->family == CHIP_RS740))) {
410 tmp = RREG32_MC(R_000104_MC_INIT_MISC_LAT_TIMER); 420 tmp = RREG32_MC(R_000104_MC_INIT_MISC_LAT_TIMER);
411 tmp &= C_000104_MC_DISP0R_INIT_LAT; 421 tmp &= C_000104_MC_DISP0R_INIT_LAT;
412 tmp &= C_000104_MC_DISP1R_INIT_LAT; 422 tmp &= C_000104_MC_DISP1R_INIT_LAT;
@@ -481,10 +491,16 @@ void rs690_bandwidth_update(struct radeon_device *rdev)
481 priority_mark12.full = 0; 491 priority_mark12.full = 0;
482 if (wm1.priority_mark_max.full > priority_mark12.full) 492 if (wm1.priority_mark_max.full > priority_mark12.full)
483 priority_mark12.full = wm1.priority_mark_max.full; 493 priority_mark12.full = wm1.priority_mark_max.full;
484 WREG32(R_006548_D1MODE_PRIORITY_A_CNT, rfixed_trunc(priority_mark02)); 494 d1mode_priority_a_cnt = rfixed_trunc(priority_mark02);
485 WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, rfixed_trunc(priority_mark02)); 495 d2mode_priority_a_cnt = rfixed_trunc(priority_mark12);
486 WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, rfixed_trunc(priority_mark12)); 496 if (rdev->disp_priority == 2) {
487 WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, rfixed_trunc(priority_mark12)); 497 d1mode_priority_a_cnt |= S_006548_D1MODE_PRIORITY_A_ALWAYS_ON(1);
498 d2mode_priority_a_cnt |= S_006D48_D2MODE_PRIORITY_A_ALWAYS_ON(1);
499 }
500 WREG32(R_006548_D1MODE_PRIORITY_A_CNT, d1mode_priority_a_cnt);
501 WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, d1mode_priority_a_cnt);
502 WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, d2mode_priority_a_cnt);
503 WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, d2mode_priority_a_cnt);
488 } else if (mode0) { 504 } else if (mode0) {
489 if (rfixed_trunc(wm0.dbpp) > 64) 505 if (rfixed_trunc(wm0.dbpp) > 64)
490 a.full = rfixed_mul(wm0.dbpp, wm0.num_line_pair); 506 a.full = rfixed_mul(wm0.dbpp, wm0.num_line_pair);
@@ -511,8 +527,11 @@ void rs690_bandwidth_update(struct radeon_device *rdev)
511 priority_mark02.full = 0; 527 priority_mark02.full = 0;
512 if (wm0.priority_mark_max.full > priority_mark02.full) 528 if (wm0.priority_mark_max.full > priority_mark02.full)
513 priority_mark02.full = wm0.priority_mark_max.full; 529 priority_mark02.full = wm0.priority_mark_max.full;
514 WREG32(R_006548_D1MODE_PRIORITY_A_CNT, rfixed_trunc(priority_mark02)); 530 d1mode_priority_a_cnt = rfixed_trunc(priority_mark02);
515 WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, rfixed_trunc(priority_mark02)); 531 if (rdev->disp_priority == 2)
532 d1mode_priority_a_cnt |= S_006548_D1MODE_PRIORITY_A_ALWAYS_ON(1);
533 WREG32(R_006548_D1MODE_PRIORITY_A_CNT, d1mode_priority_a_cnt);
534 WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, d1mode_priority_a_cnt);
516 WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, 535 WREG32(R_006D48_D2MODE_PRIORITY_A_CNT,
517 S_006D48_D2MODE_PRIORITY_A_OFF(1)); 536 S_006D48_D2MODE_PRIORITY_A_OFF(1));
518 WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, 537 WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT,
@@ -543,12 +562,15 @@ void rs690_bandwidth_update(struct radeon_device *rdev)
543 priority_mark12.full = 0; 562 priority_mark12.full = 0;
544 if (wm1.priority_mark_max.full > priority_mark12.full) 563 if (wm1.priority_mark_max.full > priority_mark12.full)
545 priority_mark12.full = wm1.priority_mark_max.full; 564 priority_mark12.full = wm1.priority_mark_max.full;
565 d2mode_priority_a_cnt = rfixed_trunc(priority_mark12);
566 if (rdev->disp_priority == 2)
567 d2mode_priority_a_cnt |= S_006D48_D2MODE_PRIORITY_A_ALWAYS_ON(1);
546 WREG32(R_006548_D1MODE_PRIORITY_A_CNT, 568 WREG32(R_006548_D1MODE_PRIORITY_A_CNT,
547 S_006548_D1MODE_PRIORITY_A_OFF(1)); 569 S_006548_D1MODE_PRIORITY_A_OFF(1));
548 WREG32(R_00654C_D1MODE_PRIORITY_B_CNT, 570 WREG32(R_00654C_D1MODE_PRIORITY_B_CNT,
549 S_00654C_D1MODE_PRIORITY_B_OFF(1)); 571 S_00654C_D1MODE_PRIORITY_B_OFF(1));
550 WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, rfixed_trunc(priority_mark12)); 572 WREG32(R_006D48_D2MODE_PRIORITY_A_CNT, d2mode_priority_a_cnt);
551 WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, rfixed_trunc(priority_mark12)); 573 WREG32(R_006D4C_D2MODE_PRIORITY_B_CNT, d2mode_priority_a_cnt);
552 } 574 }
553} 575}
554 576
@@ -605,8 +627,8 @@ static int rs690_startup(struct radeon_device *rdev)
605 if (r) 627 if (r)
606 return r; 628 return r;
607 /* Enable IRQ */ 629 /* Enable IRQ */
608 rdev->irq.sw_int = true;
609 rs600_irq_set(rdev); 630 rs600_irq_set(rdev);
631 rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL);
610 /* 1M ring buffer */ 632 /* 1M ring buffer */
611 r = r100_cp_init(rdev, 1024 * 1024); 633 r = r100_cp_init(rdev, 1024 * 1024);
612 if (r) { 634 if (r) {
@@ -640,6 +662,8 @@ int rs690_resume(struct radeon_device *rdev)
640 atom_asic_init(rdev->mode_info.atom_context); 662 atom_asic_init(rdev->mode_info.atom_context);
641 /* Resume clock after posting */ 663 /* Resume clock after posting */
642 rv515_clock_startup(rdev); 664 rv515_clock_startup(rdev);
665 /* Initialize surface registers */
666 radeon_surface_init(rdev);
643 return rs690_startup(rdev); 667 return rs690_startup(rdev);
644} 668}
645 669
@@ -654,7 +678,7 @@ int rs690_suspend(struct radeon_device *rdev)
654 678
655void rs690_fini(struct radeon_device *rdev) 679void rs690_fini(struct radeon_device *rdev)
656{ 680{
657 rs690_suspend(rdev); 681 radeon_pm_fini(rdev);
658 r100_cp_fini(rdev); 682 r100_cp_fini(rdev);
659 r100_wb_fini(rdev); 683 r100_wb_fini(rdev);
660 r100_ib_fini(rdev); 684 r100_ib_fini(rdev);
@@ -662,7 +686,7 @@ void rs690_fini(struct radeon_device *rdev)
662 rs400_gart_fini(rdev); 686 rs400_gart_fini(rdev);
663 radeon_irq_kms_fini(rdev); 687 radeon_irq_kms_fini(rdev);
664 radeon_fence_driver_fini(rdev); 688 radeon_fence_driver_fini(rdev);
665 radeon_object_fini(rdev); 689 radeon_bo_fini(rdev);
666 radeon_atombios_fini(rdev); 690 radeon_atombios_fini(rdev);
667 kfree(rdev->bios); 691 kfree(rdev->bios);
668 rdev->bios = NULL; 692 rdev->bios = NULL;
@@ -700,20 +724,15 @@ int rs690_init(struct radeon_device *rdev)
700 RREG32(R_0007C0_CP_STAT)); 724 RREG32(R_0007C0_CP_STAT));
701 } 725 }
702 /* check if cards are posted or not */ 726 /* check if cards are posted or not */
703 if (!radeon_card_posted(rdev) && rdev->bios) { 727 if (radeon_boot_test_post_card(rdev) == false)
704 DRM_INFO("GPU not posted. posting now...\n"); 728 return -EINVAL;
705 atom_asic_init(rdev->mode_info.atom_context); 729
706 }
707 /* Initialize clocks */ 730 /* Initialize clocks */
708 radeon_get_clock_info(rdev->ddev); 731 radeon_get_clock_info(rdev->ddev);
709 /* Initialize power management */ 732 /* Initialize power management */
710 radeon_pm_init(rdev); 733 radeon_pm_init(rdev);
711 /* Get vram informations */ 734 /* initialize memory controller */
712 rs690_vram_info(rdev); 735 rs690_mc_init(rdev);
713 /* Initialize memory controller (also test AGP) */
714 r = r420_mc_init(rdev);
715 if (r)
716 return r;
717 rv515_debugfs(rdev); 736 rv515_debugfs(rdev);
718 /* Fence driver */ 737 /* Fence driver */
719 r = radeon_fence_driver_init(rdev); 738 r = radeon_fence_driver_init(rdev);
@@ -723,7 +742,7 @@ int rs690_init(struct radeon_device *rdev)
723 if (r) 742 if (r)
724 return r; 743 return r;
725 /* Memory manager */ 744 /* Memory manager */
726 r = radeon_object_init(rdev); 745 r = radeon_bo_init(rdev);
727 if (r) 746 if (r)
728 return r; 747 return r;
729 r = rs400_gart_init(rdev); 748 r = rs400_gart_init(rdev);
@@ -735,7 +754,6 @@ int rs690_init(struct radeon_device *rdev)
735 if (r) { 754 if (r) {
736 /* Somethings want wront with the accel init stop accel */ 755 /* Somethings want wront with the accel init stop accel */
737 dev_err(rdev->dev, "Disabling GPU acceleration\n"); 756 dev_err(rdev->dev, "Disabling GPU acceleration\n");
738 rs690_suspend(rdev);
739 r100_cp_fini(rdev); 757 r100_cp_fini(rdev);
740 r100_wb_fini(rdev); 758 r100_wb_fini(rdev);
741 r100_ib_fini(rdev); 759 r100_ib_fini(rdev);