|
@@ -5110,26 +5110,11 @@ static int evergreen_startup(struct radeon_device *rdev)
|
|
evergreen_mc_program(rdev);
|
|
evergreen_mc_program(rdev);
|
|
|
|
|
|
if (ASIC_IS_DCE5(rdev)) {
|
|
if (ASIC_IS_DCE5(rdev)) {
|
|
- if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) {
|
|
|
|
- r = ni_init_microcode(rdev);
|
|
|
|
- if (r) {
|
|
|
|
- DRM_ERROR("Failed to load firmware!\n");
|
|
|
|
- return r;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
r = ni_mc_load_microcode(rdev);
|
|
r = ni_mc_load_microcode(rdev);
|
|
if (r) {
|
|
if (r) {
|
|
DRM_ERROR("Failed to load MC firmware!\n");
|
|
DRM_ERROR("Failed to load MC firmware!\n");
|
|
return r;
|
|
return r;
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
- if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
|
|
|
|
- r = r600_init_microcode(rdev);
|
|
|
|
- if (r) {
|
|
|
|
- DRM_ERROR("Failed to load firmware!\n");
|
|
|
|
- return r;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
if (rdev->flags & RADEON_IS_AGP) {
|
|
if (rdev->flags & RADEON_IS_AGP) {
|
|
@@ -5357,6 +5342,24 @@ int evergreen_init(struct radeon_device *rdev)
|
|
if (r)
|
|
if (r)
|
|
return r;
|
|
return r;
|
|
|
|
|
|
|
|
+ if (ASIC_IS_DCE5(rdev)) {
|
|
|
|
+ if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) {
|
|
|
|
+ r = ni_init_microcode(rdev);
|
|
|
|
+ if (r) {
|
|
|
|
+ DRM_ERROR("Failed to load firmware!\n");
|
|
|
|
+ return r;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
|
|
|
|
+ r = r600_init_microcode(rdev);
|
|
|
|
+ if (r) {
|
|
|
|
+ DRM_ERROR("Failed to load firmware!\n");
|
|
|
|
+ return r;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL;
|
|
rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL;
|
|
r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024);
|
|
r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024);
|
|
|
|
|