Stop calling atrtc_set() from the xen timer clock_settime() method. That
removes the only reference to atrtc_set() from outside of atrtc.c, so make it static. The xen timer driver registers as a realtime clock with 1us resolution. In the past that resulted in only the xen timer's clock_settime() getting called, so it would call atrtc_set() to set the hardware clock as well. As of r32090, the clock_settime() method of all registered realtime clocks gets called, so the xen driver no longer needs to chain-call the lower-resolution driver. Thanks to royger@ for talking me through the xen stuff, and for testing.
This commit is contained in:
parent
74a90ba38a
commit
c82d887d47
@ -64,8 +64,6 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#include <dev/xen/timer/timer.h>
|
||||
|
||||
#include <isa/rtc.h>
|
||||
|
||||
#include "clock_if.h"
|
||||
|
||||
static devclass_t xentimer_devclass;
|
||||
@ -229,9 +227,6 @@ xentimer_settime(device_t dev __unused, struct timespec *ts)
|
||||
if (!xen_initial_domain())
|
||||
return (0);
|
||||
|
||||
/* Set the native RTC. */
|
||||
atrtc_set(ts);
|
||||
|
||||
settime.cmd = XENPF_settime64;
|
||||
settime.u.settime64.mbz = 0;
|
||||
settime.u.settime64.secs = ts->tv_sec;
|
||||
|
@ -118,7 +118,6 @@ extern int atrtcclock_disable;
|
||||
int rtcin(int reg);
|
||||
void atrtc_restore(void);
|
||||
void writertc(int reg, u_char val);
|
||||
void atrtc_set(struct timespec *ts);
|
||||
#endif
|
||||
|
||||
#endif /* _I386_ISA_RTC_H_ */
|
||||
|
@ -164,7 +164,7 @@ atrtc_restore(void)
|
||||
rtcin(RTC_INTR);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
atrtc_set(struct timespec *ts)
|
||||
{
|
||||
struct clocktime ct;
|
||||
|
Loading…
Reference in New Issue
Block a user