From 29d9c5675865e902cfd46df4b2f948c195de8884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Thu, 16 Oct 2014 21:35:48 +0300 Subject: AMD Trinity and Kabini: fix fan control MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-on: http://review.coreboot.org/6981 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan --- src/cpu/amd/agesa/amd_late_init.c | 8 -------- src/southbridge/amd/agesa/hudson/hudson.c | 12 +++++++++++- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'src') 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 #include -#if IS_ENABLED(CONFIG_HUDSON_IMC_FWM) -#include -#endif #if CONFIG_AMD_SB_CIMX #include #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 #include #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 }; -- cgit v1.2.3