From: Alex Deucher alexander.deucher@amd.com
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 --- drivers/gpu/drm/radeon/evergreen.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 3e8054c..93c0348 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c @@ -3468,6 +3468,18 @@ int evergreen_init(struct radeon_device *rdev) evergreen_pcie_gart_fini(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; }
On Fri, 9 Dec 2011 11:31:54 -0500, alexdeucher@gmail.com wrote:
From: Alex Deucher alexander.deucher@amd.com
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
Thanks Alex. I tested this fix and it works to some degree, but it doesn't solve all the issues.
What works: * No garbage on the screen. * X falls back to the vesa driver.
What doesn't work: * No console messages displayed. * Trying to switch to a text console (e.g. Ctrl+Alt+F2) results in a permanent black screen, I couldn't return to X after that.
So there must be some more integration work needed, probably not in the radeon driver but rather in the drm_fb layer. But anyway, the situation is definitely better with this patch than without, so it should be applied and go to stable trees too:
Tested-by: Jean Delvare khali@linux-fr.org
drivers/gpu/drm/radeon/evergreen.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 3e8054c..93c0348 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c @@ -3468,6 +3468,18 @@ int evergreen_init(struct radeon_device *rdev) evergreen_pcie_gart_fini(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;
}
dri-devel@lists.freedesktop.org