diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/rs690.c')
-rw-r--r-- | drivers/gpu/drm/radeon/rs690.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c index 4dc2a87ea680..a9049ed1a519 100644 --- a/drivers/gpu/drm/radeon/rs690.c +++ b/drivers/gpu/drm/radeon/rs690.c | |||
@@ -77,9 +77,9 @@ void rs690_pm_info(struct radeon_device *rdev) | |||
77 | switch (crev) { | 77 | switch (crev) { |
78 | case 1: | 78 | case 1: |
79 | tmp.full = dfixed_const(100); | 79 | tmp.full = dfixed_const(100); |
80 | rdev->pm.igp_sideport_mclk.full = dfixed_const(info->info.ulBootUpMemoryClock); | 80 | rdev->pm.igp_sideport_mclk.full = dfixed_const(le32_to_cpu(info->info.ulBootUpMemoryClock)); |
81 | rdev->pm.igp_sideport_mclk.full = dfixed_div(rdev->pm.igp_sideport_mclk, tmp); | 81 | rdev->pm.igp_sideport_mclk.full = dfixed_div(rdev->pm.igp_sideport_mclk, tmp); |
82 | if (info->info.usK8MemoryClock) | 82 | if (le16_to_cpu(info->info.usK8MemoryClock)) |
83 | rdev->pm.igp_system_mclk.full = dfixed_const(le16_to_cpu(info->info.usK8MemoryClock)); | 83 | rdev->pm.igp_system_mclk.full = dfixed_const(le16_to_cpu(info->info.usK8MemoryClock)); |
84 | else if (rdev->clock.default_mclk) { | 84 | else if (rdev->clock.default_mclk) { |
85 | rdev->pm.igp_system_mclk.full = dfixed_const(rdev->clock.default_mclk); | 85 | rdev->pm.igp_system_mclk.full = dfixed_const(rdev->clock.default_mclk); |
@@ -91,16 +91,16 @@ void rs690_pm_info(struct radeon_device *rdev) | |||
91 | break; | 91 | break; |
92 | case 2: | 92 | case 2: |
93 | tmp.full = dfixed_const(100); | 93 | tmp.full = dfixed_const(100); |
94 | rdev->pm.igp_sideport_mclk.full = dfixed_const(info->info_v2.ulBootUpSidePortClock); | 94 | rdev->pm.igp_sideport_mclk.full = dfixed_const(le32_to_cpu(info->info_v2.ulBootUpSidePortClock)); |
95 | rdev->pm.igp_sideport_mclk.full = dfixed_div(rdev->pm.igp_sideport_mclk, tmp); | 95 | rdev->pm.igp_sideport_mclk.full = dfixed_div(rdev->pm.igp_sideport_mclk, tmp); |
96 | if (info->info_v2.ulBootUpUMAClock) | 96 | if (le32_to_cpu(info->info_v2.ulBootUpUMAClock)) |
97 | rdev->pm.igp_system_mclk.full = dfixed_const(info->info_v2.ulBootUpUMAClock); | 97 | rdev->pm.igp_system_mclk.full = dfixed_const(le32_to_cpu(info->info_v2.ulBootUpUMAClock)); |
98 | else if (rdev->clock.default_mclk) | 98 | else if (rdev->clock.default_mclk) |
99 | rdev->pm.igp_system_mclk.full = dfixed_const(rdev->clock.default_mclk); | 99 | rdev->pm.igp_system_mclk.full = dfixed_const(rdev->clock.default_mclk); |
100 | else | 100 | else |
101 | rdev->pm.igp_system_mclk.full = dfixed_const(66700); | 101 | rdev->pm.igp_system_mclk.full = dfixed_const(66700); |
102 | rdev->pm.igp_system_mclk.full = dfixed_div(rdev->pm.igp_system_mclk, tmp); | 102 | rdev->pm.igp_system_mclk.full = dfixed_div(rdev->pm.igp_system_mclk, tmp); |
103 | rdev->pm.igp_ht_link_clk.full = dfixed_const(info->info_v2.ulHTLinkFreq); | 103 | rdev->pm.igp_ht_link_clk.full = dfixed_const(le32_to_cpu(info->info_v2.ulHTLinkFreq)); |
104 | rdev->pm.igp_ht_link_clk.full = dfixed_div(rdev->pm.igp_ht_link_clk, tmp); | 104 | rdev->pm.igp_ht_link_clk.full = dfixed_div(rdev->pm.igp_ht_link_clk, tmp); |
105 | rdev->pm.igp_ht_link_width.full = dfixed_const(le16_to_cpu(info->info_v2.usMinHTLinkWidth)); | 105 | rdev->pm.igp_ht_link_width.full = dfixed_const(le16_to_cpu(info->info_v2.usMinHTLinkWidth)); |
106 | break; | 106 | break; |
@@ -157,7 +157,6 @@ void rs690_mc_init(struct radeon_device *rdev) | |||
157 | rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0); | 157 | rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0); |
158 | rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0); | 158 | rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0); |
159 | rdev->mc.visible_vram_size = rdev->mc.aper_size; | 159 | rdev->mc.visible_vram_size = rdev->mc.aper_size; |
160 | rdev->mc.active_vram_size = rdev->mc.visible_vram_size; | ||
161 | base = RREG32_MC(R_000100_MCCFG_FB_LOCATION); | 160 | base = RREG32_MC(R_000100_MCCFG_FB_LOCATION); |
162 | base = G_000100_MC_FB_START(base) << 16; | 161 | base = G_000100_MC_FB_START(base) << 16; |
163 | rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev); | 162 | rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev); |
@@ -616,21 +615,24 @@ static int rs690_startup(struct radeon_device *rdev) | |||
616 | r = rs400_gart_enable(rdev); | 615 | r = rs400_gart_enable(rdev); |
617 | if (r) | 616 | if (r) |
618 | return r; | 617 | return r; |
618 | |||
619 | /* allocate wb buffer */ | ||
620 | r = radeon_wb_init(rdev); | ||
621 | if (r) | ||
622 | return r; | ||
623 | |||
619 | /* Enable IRQ */ | 624 | /* Enable IRQ */ |
620 | rs600_irq_set(rdev); | 625 | rs600_irq_set(rdev); |
621 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | 626 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); |
622 | /* 1M ring buffer */ | 627 | /* 1M ring buffer */ |
623 | r = r100_cp_init(rdev, 1024 * 1024); | 628 | r = r100_cp_init(rdev, 1024 * 1024); |
624 | if (r) { | 629 | if (r) { |
625 | dev_err(rdev->dev, "failled initializing CP (%d).\n", r); | 630 | dev_err(rdev->dev, "failed initializing CP (%d).\n", r); |
626 | return r; | 631 | return r; |
627 | } | 632 | } |
628 | r = r100_wb_init(rdev); | ||
629 | if (r) | ||
630 | dev_err(rdev->dev, "failled initializing WB (%d).\n", r); | ||
631 | r = r100_ib_init(rdev); | 633 | r = r100_ib_init(rdev); |
632 | if (r) { | 634 | if (r) { |
633 | dev_err(rdev->dev, "failled initializing IB (%d).\n", r); | 635 | dev_err(rdev->dev, "failed initializing IB (%d).\n", r); |
634 | return r; | 636 | return r; |
635 | } | 637 | } |
636 | 638 | ||
@@ -668,7 +670,7 @@ int rs690_suspend(struct radeon_device *rdev) | |||
668 | { | 670 | { |
669 | r600_audio_fini(rdev); | 671 | r600_audio_fini(rdev); |
670 | r100_cp_disable(rdev); | 672 | r100_cp_disable(rdev); |
671 | r100_wb_disable(rdev); | 673 | radeon_wb_disable(rdev); |
672 | rs600_irq_disable(rdev); | 674 | rs600_irq_disable(rdev); |
673 | rs400_gart_disable(rdev); | 675 | rs400_gart_disable(rdev); |
674 | return 0; | 676 | return 0; |
@@ -678,7 +680,7 @@ void rs690_fini(struct radeon_device *rdev) | |||
678 | { | 680 | { |
679 | r600_audio_fini(rdev); | 681 | r600_audio_fini(rdev); |
680 | r100_cp_fini(rdev); | 682 | r100_cp_fini(rdev); |
681 | r100_wb_fini(rdev); | 683 | radeon_wb_fini(rdev); |
682 | r100_ib_fini(rdev); | 684 | r100_ib_fini(rdev); |
683 | radeon_gem_fini(rdev); | 685 | radeon_gem_fini(rdev); |
684 | rs400_gart_fini(rdev); | 686 | rs400_gart_fini(rdev); |
@@ -753,7 +755,7 @@ int rs690_init(struct radeon_device *rdev) | |||
753 | /* Somethings want wront with the accel init stop accel */ | 755 | /* Somethings want wront with the accel init stop accel */ |
754 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 756 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
755 | r100_cp_fini(rdev); | 757 | r100_cp_fini(rdev); |
756 | r100_wb_fini(rdev); | 758 | radeon_wb_fini(rdev); |
757 | r100_ib_fini(rdev); | 759 | r100_ib_fini(rdev); |
758 | rs400_gart_fini(rdev); | 760 | rs400_gart_fini(rdev); |
759 | radeon_irq_kms_fini(rdev); | 761 | radeon_irq_kms_fini(rdev); |