summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrmh <rmh@FreeBSD.org>2014-02-12 13:55:30 +0000
committerrmh <rmh@FreeBSD.org>2014-02-12 13:55:30 +0000
commitb7969843d1787507419cfba9cb55e6ac13055fd9 (patch)
tree4130a07bcc403f5b15f4443e3bfec564759e6612
parent11ec5c94e7f40b5b542cbd753643b14019719c59 (diff)
downloadFreeBSD-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.c6
-rw-r--r--sys/dev/drm2/radeon/rv770.c6
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;
}
OpenPOWER on IntegriCloud