From f9390180fe3afa600d83de925f2e5c4a2eb676c7 Mon Sep 17 00:00:00 2001 From: Mitsuru IWASAKI Date: Thu, 1 Nov 2001 16:34:07 +0000 Subject: Some fix for the recent apm module changes. - Now that apm loadable module can inform its existence to other kernel components (e.g. i386/isa/clock.c:startrtclock()'s TCS hack). - Exchange priority of SI_SUB_CPU and SI_SUB_KLD for above purpose. - Add simple arbitration mechanism for APM vs. ACPI. This prevents the kernel enables both of them. - Remove obsolete `#ifdef DEV_APM' related code. - Add abstracted interface for Powermanagement operations. Public apm(4) functions, such as apm_suspend(), should be replaced new interfaces. Currently only power_pm_suspend (successor of apm_suspend) is implemented. Reviewed by: peter, arch@ and audit@ --- sys/amd64/amd64/tsc.c | 11 ++++------- sys/amd64/isa/clock.c | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) (limited to 'sys/amd64') diff --git a/sys/amd64/amd64/tsc.c b/sys/amd64/amd64/tsc.c index 13e11a4315a2..a7aaea0b7a5e 100644 --- a/sys/amd64/amd64/tsc.c +++ b/sys/amd64/amd64/tsc.c @@ -49,7 +49,6 @@ */ #include "opt_clock.h" -#include "opt_apm.h" #include "opt_mca.h" #include @@ -63,6 +62,7 @@ #include #include #include +#include #include #ifdef CLK_CALIBRATION_LOOP @@ -823,7 +823,6 @@ startrtclock() * Curse Intel for leaving the counter out of the I/O APIC. */ -#ifdef DEV_APM /* * We can not use the TSC if we support APM. Precise timekeeping * on an APM'ed machine is at best a fools pursuit, since @@ -834,13 +833,11 @@ startrtclock() * We don't know at this point whether APM is going to be used * or not, nor when it might be activated. Play it safe. */ - { - int disabled = 0; - resource_int_value("apm", 0, "disabled", &disabled); - if (disabled == 0) + if (power_pm_get_type() == POWER_PM_TYPE_APM) { + if (bootverbose) + printf("TSC initialization skipped: APM enabled.\n"); return; } -#endif /* DEV_APM */ if (tsc_present && tsc_freq != 0 && !tsc_is_broken) { tsc_timecounter.tc_frequency = tsc_freq; diff --git a/sys/amd64/isa/clock.c b/sys/amd64/isa/clock.c index 13e11a4315a2..a7aaea0b7a5e 100644 --- a/sys/amd64/isa/clock.c +++ b/sys/amd64/isa/clock.c @@ -49,7 +49,6 @@ */ #include "opt_clock.h" -#include "opt_apm.h" #include "opt_mca.h" #include @@ -63,6 +62,7 @@ #include #include #include +#include #include #ifdef CLK_CALIBRATION_LOOP @@ -823,7 +823,6 @@ startrtclock() * Curse Intel for leaving the counter out of the I/O APIC. */ -#ifdef DEV_APM /* * We can not use the TSC if we support APM. Precise timekeeping * on an APM'ed machine is at best a fools pursuit, since @@ -834,13 +833,11 @@ startrtclock() * We don't know at this point whether APM is going to be used * or not, nor when it might be activated. Play it safe. */ - { - int disabled = 0; - resource_int_value("apm", 0, "disabled", &disabled); - if (disabled == 0) + if (power_pm_get_type() == POWER_PM_TYPE_APM) { + if (bootverbose) + printf("TSC initialization skipped: APM enabled.\n"); return; } -#endif /* DEV_APM */ if (tsc_present && tsc_freq != 0 && !tsc_is_broken) { tsc_timecounter.tc_frequency = tsc_freq; -- cgit v1.3