drm/radeon: fix init ordering for r600+
[linux-2.6-block.git] / drivers / gpu / drm / radeon / r600.c
index 087cff444ba25712f977a30f05157b457494242f..b72d4d717a723ae63c8cb64a1f4cce6dce33ca54 100644 (file)
@@ -2698,6 +2698,11 @@ static int r600_startup(struct radeon_device *rdev)
        /* enable pcie gen2 link */
        r600_pcie_gen2_enable(rdev);
 
+       /* scratch needs to be initialized before MC */
+       r = r600_vram_scratch_init(rdev);
+       if (r)
+               return r;
+
        r600_mc_program(rdev);
 
        if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
@@ -2708,10 +2713,6 @@ static int r600_startup(struct radeon_device *rdev)
                }
        }
 
-       r = r600_vram_scratch_init(rdev);
-       if (r)
-               return r;
-
        if (rdev->flags & RADEON_IS_AGP) {
                r600_agp_enable(rdev);
        } else {