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/rv770.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/rv770.c')
-rw-r--r-- | sys/dev/pci/drm/radeon/rv770.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/pci/drm/radeon/rv770.c b/sys/dev/pci/drm/radeon/rv770.c index 7bf44ebd343..fd8ce663ded 100644 --- a/sys/dev/pci/drm/radeon/rv770.c +++ b/sys/dev/pci/drm/radeon/rv770.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rv770.c,v 1.1 2013/08/12 04:11:53 jsg Exp $ */ +/* $OpenBSD: rv770.c,v 1.2 2013/08/18 10:45:32 jsg Exp $ */ /* * Copyright 2008 Advanced Micro Devices, Inc. * Copyright 2008 Red Hat Inc. @@ -967,6 +967,8 @@ static int rv770_startup(struct radeon_device *rdev) /* enable pcie gen2 link */ rv770_pcie_gen2_enable(rdev); + rv770_mc_program(rdev); + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { r = r600_init_microcode(rdev); if (r) { @@ -979,7 +981,6 @@ static int rv770_startup(struct radeon_device *rdev) if (r) return r; - rv770_mc_program(rdev); if (rdev->flags & RADEON_IS_AGP) { rv770_agp_enable(rdev); } else { |