summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authoriwasaki <iwasaki@FreeBSD.org>2002-09-18 07:34:04 +0000
committeriwasaki <iwasaki@FreeBSD.org>2002-09-18 07:34:04 +0000
commitc30c4f6198157709ed26516fd8d8a998c54c3627 (patch)
tree91383f3735230e993b71a5fb217468de6ad3c853 /sys/i386
parente35c51c74c9136c275aff6e68216801a7262f546 (diff)
downloadFreeBSD-src-c30c4f6198157709ed26516fd8d8a998c54c3627.zip
FreeBSD-src-c30c4f6198157709ed26516fd8d8a998c54c3627.tar.gz
Restore status register A of RTC at resume time.
This should fix the 'too many RTC interrupts and statclock seems broken after resume' problem. MFC after: 1 week
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/tsc.c1
-rw-r--r--sys/i386/isa/clock.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/i386/i386/tsc.c b/sys/i386/i386/tsc.c
index 52e1932..539a460 100644
--- a/sys/i386/i386/tsc.c
+++ b/sys/i386/i386/tsc.c
@@ -719,6 +719,7 @@ rtc_restore(void)
/* Reenable RTC updates and interrupts. */
/* XXX locking is needed for RTC access? */
+ writertc(RTC_STATUSA, rtc_statusa);
writertc(RTC_STATUSB, RTCSB_HALT | RTCSB_24HR);
writertc(RTC_STATUSB, rtc_statusb);
}
diff --git a/sys/i386/isa/clock.c b/sys/i386/isa/clock.c
index 52e1932..539a460 100644
--- a/sys/i386/isa/clock.c
+++ b/sys/i386/isa/clock.c
@@ -719,6 +719,7 @@ rtc_restore(void)
/* Reenable RTC updates and interrupts. */
/* XXX locking is needed for RTC access? */
+ writertc(RTC_STATUSA, rtc_statusa);
writertc(RTC_STATUSB, RTCSB_HALT | RTCSB_24HR);
writertc(RTC_STATUSB, rtc_statusb);
}
OpenPOWER on IntegriCloud