|
@@ -1003,16 +1003,28 @@ static void radeon_check_arguments(struct radeon_device *rdev)
|
|
|
radeon_vram_limit = 0;
|
|
|
}
|
|
|
|
|
|
+ if (radeon_gart_size == -1) {
|
|
|
+ /* default to a larger gart size on newer asics */
|
|
|
+ if (rdev->family >= CHIP_RV770)
|
|
|
+ radeon_gart_size = 1024;
|
|
|
+ else
|
|
|
+ radeon_gart_size = 512;
|
|
|
+ }
|
|
|
/* gtt size must be power of two and greater or equal to 32M */
|
|
|
if (radeon_gart_size < 32) {
|
|
|
- dev_warn(rdev->dev, "gart size (%d) too small forcing to 512M\n",
|
|
|
+ dev_warn(rdev->dev, "gart size (%d) too small\n",
|
|
|
radeon_gart_size);
|
|
|
- radeon_gart_size = 512;
|
|
|
-
|
|
|
+ if (rdev->family >= CHIP_RV770)
|
|
|
+ radeon_gart_size = 1024;
|
|
|
+ else
|
|
|
+ radeon_gart_size = 512;
|
|
|
} else if (!radeon_check_pot_argument(radeon_gart_size)) {
|
|
|
dev_warn(rdev->dev, "gart size (%d) must be a power of 2\n",
|
|
|
radeon_gart_size);
|
|
|
- radeon_gart_size = 512;
|
|
|
+ if (rdev->family >= CHIP_RV770)
|
|
|
+ radeon_gart_size = 1024;
|
|
|
+ else
|
|
|
+ radeon_gart_size = 512;
|
|
|
}
|
|
|
rdev->mc.gtt_size = (uint64_t)radeon_gart_size << 20;
|
|
|
|
|
@@ -1144,7 +1156,7 @@ int radeon_device_init(struct radeon_device *rdev,
|
|
|
rdev->family = flags & RADEON_FAMILY_MASK;
|
|
|
rdev->is_atom_bios = false;
|
|
|
rdev->usec_timeout = RADEON_MAX_USEC_TIMEOUT;
|
|
|
- rdev->mc.gtt_size = radeon_gart_size * 1024 * 1024;
|
|
|
+ rdev->mc.gtt_size = 512 * 1024 * 1024;
|
|
|
rdev->accel_working = false;
|
|
|
/* set up ring ids */
|
|
|
for (i = 0; i < RADEON_NUM_RINGS; i++) {
|