diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-10-16 21:35:48 +0300 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-10-23 19:18:17 +0200 |
commit | 29d9c5675865e902cfd46df4b2f948c195de8884 (patch) | |
tree | b412c0a392bcca408b1fd16260f1d15e8836bcc7 | |
parent | a10bde9048952c7a9a2f63d8450da35bbeda08c0 (diff) |
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>
Reviewed-on: http://review.coreboot.org/6981
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
-rw-r--r-- | src/cpu/amd/agesa/amd_late_init.c | 8 | ||||
-rw-r--r-- | 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 c7927dc7c1..cab03a3096 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 0edca6eafe..f60dddb71f 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 }; |