Kyösti Mälkki (kyosti.malkki@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6981
-gerrit
commit 0f5689a6da4adde757f3f0bbfb83c6c30662aa1e Author: Kyösti Mälkki kyosti.malkki@gmail.com Date: Thu Oct 16 21:35:48 2014 +0300
AMD Trinity and Kabini: fix fan control
The fan can stop but can't run again. "AGESA: Call get_bus_conf() just once" (commit ef40ca57) results to this problem. This patch can resolve this problem.
Change-Id: I1b5bf3f6f7a66c60743f78918dc5442cdfc8b6e4 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- src/cpu/amd/agesa/amd_late_init.c | 8 -------- src/southbridge/amd/agesa/hudson/hudson.c | 12 +++++++++++- 2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/cpu/amd/agesa/amd_late_init.c b/src/cpu/amd/agesa/amd_late_init.c index c7927dc..cab03a3 100644 --- a/src/cpu/amd/agesa/amd_late_init.c +++ b/src/cpu/amd/agesa/amd_late_init.c @@ -27,9 +27,6 @@ #include <agesawrapper.h> #include <northbridge/amd/agesa/agesawrapper_call.h>
-#if IS_ENABLED(CONFIG_HUDSON_IMC_FWM) -#include <southbridge/amd/agesa/hudson/imc.h> -#endif #if CONFIG_AMD_SB_CIMX #include <sb_cimx.h> #endif @@ -58,11 +55,6 @@ static void agesawrapper_post_device(void *unused) pci_write_config32(dev, 0x60, value); #endif
-#if IS_ENABLED(CONFIG_HUDSON_IMC_FWM) - /* AMD AGESA does not enable thermal zone, so we enable it here. */ - enable_imc_thermal_zone(); -#endif - #if CONFIG_AMD_SB_CIMX sb_Late_Post(); #endif diff --git a/src/southbridge/amd/agesa/hudson/hudson.c b/src/southbridge/amd/agesa/hudson/hudson.c index 0edca6e..f60dddb 100644 --- a/src/southbridge/amd/agesa/hudson/hudson.c +++ b/src/southbridge/amd/agesa/hudson/hudson.c @@ -28,6 +28,7 @@ #include <device/pci_ops.h> #include <cbmem.h> #include "hudson.h" +#include "imc.h" #include "smbus.h" #include "smi.h"
@@ -161,8 +162,17 @@ static void hudson_init(void *chip_info) hudson_init_acpi_ports(); }
+static void hudson_final(void *chip_info) +{ +#if IS_ENABLED(CONFIG_HUDSON_IMC_FWM) + /* AMD AGESA does not enable thermal zone, so we enable it here. */ + enable_imc_thermal_zone(); +#endif +} + struct chip_operations southbridge_amd_agesa_hudson_ops = { CHIP_NAME("ATI HUDSON") .enable_dev = hudson_enable, - .init = hudson_init + .init = hudson_init, + .final = hudson_final };