summaryrefslogtreecommitdiff
path: root/sys/dev/pci/drm/radeon/r600.c
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2013-08-18 10:45:33 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2013-08-18 10:45:33 +0000
commit006dba5fa202d561ef783b14dcdec84bf7766b92 (patch)
tree1b43faaff62e0eef32d3afe74ba6906482e69330 /sys/dev/pci/drm/radeon/r600.c
parent285447ca012c1cde68d8a3dd035836461faf2973 (diff)
While we forceably detach radeondrm on fatal error in init
non fatal errors with >= r600 could result in an unuseable system. Avoid this by always programming the MC on startup. Patch from Alex Deucher in Linux based on a change from kettenis to program the MC on failure to load firmware for cayman/aruba. ok kettenis@
Diffstat (limited to 'sys/dev/pci/drm/radeon/r600.c')
-rw-r--r--sys/dev/pci/drm/radeon/r600.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/pci/drm/radeon/r600.c b/sys/dev/pci/drm/radeon/r600.c
index 3e8f6e3e5a5..55aba56b0a7 100644
--- a/sys/dev/pci/drm/radeon/r600.c
+++ b/sys/dev/pci/drm/radeon/r600.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: r600.c,v 1.1 2013/08/12 04:11:53 jsg Exp $ */
+/* $OpenBSD: r600.c,v 1.2 2013/08/18 10:45:32 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -2767,6 +2767,8 @@ static int r600_startup(struct radeon_device *rdev)
/* enable pcie gen2 link */
r600_pcie_gen2_enable(rdev);
+ r600_mc_program(rdev);
+
if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
r = r600_init_microcode(rdev);
if (r) {
@@ -2779,7 +2781,6 @@ static int r600_startup(struct radeon_device *rdev)
if (r)
return r;
- r600_mc_program(rdev);
if (rdev->flags & RADEON_IS_AGP) {
r600_agp_enable(rdev);
} else {