drm/radeon/kms: bail on BTC parts if MC ucode is missing
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 21 Dec 2011 16:58:17 +0000 (11:58 -0500)
committerDave Airlie <airlied@redhat.com>
Thu, 22 Dec 2011 12:28:01 +0000 (12:28 +0000)
We already do this for cayman, need to also do it for
BTC parts.  The default memory and voltage setup is not
adequate for advanced operation.  Continuing will
result in an unusable display.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@kernel.org
Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/evergreen.c

index 5e00d1670aa9964b8d49d0e289e9da5211e501d2..92c9628c572daa2495a685b0a7898273957ffc73 100644 (file)
@@ -3276,6 +3276,18 @@ int evergreen_init(struct radeon_device *rdev)
                        rdev->accel_working = false;
                }
        }
+
+       /* Don't start up if the MC ucode is missing on BTC parts.
+        * The default clocks and voltages before the MC ucode
+        * is loaded are not suffient for advanced operations.
+        */
+       if (ASIC_IS_DCE5(rdev)) {
+               if (!rdev->mc_fw && !(rdev->flags & RADEON_IS_IGP)) {
+                       DRM_ERROR("radeon: MC ucode required for NI+.\n");
+                       return -EINVAL;
+               }
+       }
+
        return 0;
 }