diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2013-08-18 10:45:33 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2013-08-18 10:45:33 +0000 |
commit | 006dba5fa202d561ef783b14dcdec84bf7766b92 (patch) | |
tree | 1b43faaff62e0eef32d3afe74ba6906482e69330 /sys/dev/pci/drm/radeon/r600.c | |
parent | 285447ca012c1cde68d8a3dd035836461faf2973 (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.c | 5 |
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 { |