diff options
author | rmh <rmh@FreeBSD.org> | 2014-02-12 13:55:30 +0000 |
---|---|---|
committer | rmh <rmh@FreeBSD.org> | 2014-02-12 13:55:30 +0000 |
commit | b7969843d1787507419cfba9cb55e6ac13055fd9 (patch) | |
tree | 4130a07bcc403f5b15f4443e3bfec564759e6612 | |
parent | 11ec5c94e7f40b5b542cbd753643b14019719c59 (diff) | |
download | FreeBSD-src-b7969843d1787507419cfba9cb55e6ac13055fd9.zip FreeBSD-src-b7969843d1787507419cfba9cb55e6ac13055fd9.tar.gz |
MFC r261497:
Abort when firmware isn't present in R600+ models.
More details at:
http://anonscm.debian.org/viewvc/kernel/dists/trunk/linux/debian/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch?revision=20909&view=co
-rw-r--r-- | sys/dev/drm2/radeon/r600.c | 6 | ||||
-rw-r--r-- | sys/dev/drm2/radeon/rv770.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/drm2/radeon/r600.c b/sys/dev/drm2/radeon/r600.c index b9d41bc..586427d 100644 --- a/sys/dev/drm2/radeon/r600.c +++ b/sys/dev/drm2/radeon/r600.c @@ -3012,6 +3012,12 @@ int r600_init(struct radeon_device *rdev) rdev->accel_working = false; } + /* Don't start up if the ucode is missing. */ + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { + DRM_ERROR("radeon: ucode required for R600+.\n"); + return -EINVAL; + } + return 0; } diff --git a/sys/dev/drm2/radeon/rv770.c b/sys/dev/drm2/radeon/rv770.c index cb875bd..549ed90 100644 --- a/sys/dev/drm2/radeon/rv770.c +++ b/sys/dev/drm2/radeon/rv770.c @@ -1186,6 +1186,12 @@ int rv770_init(struct radeon_device *rdev) rdev->accel_working = false; } + /* Don't start up if the ucode is missing. */ + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { + DRM_ERROR("radeon: ucode required for R600+.\n"); + return -EINVAL; + } + return 0; } |