[PATCH] drm/radeon/kms: bail on BTC parts if MC ucode is missing
Jean Delvare
khali at linux-fr.org
Fri Dec 9 11:52:35 PST 2011
On Fri, 9 Dec 2011 11:31:54 -0500, alexdeucher at gmail.com wrote:
> From: Alex Deucher <alexander.deucher at 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 at amd.com>
> Cc: stable at kernel.org
> Cc: Jean Delvare <khali at 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 at 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;
> }
>
--
Jean Delvare
More information about the dri-devel
mailing list