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:
Ian Lepore 2017-08-11 19:02:11 +00:00
parent 74a90ba38a
commit c82d887d47
3 changed files with 1 additions and 7 deletions

View File

@ -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;

View File

@ -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_ */

View File

@ -164,7 +164,7 @@ atrtc_restore(void)
rtcin(RTC_INTR);
}
void
static void
atrtc_set(struct timespec *ts)
{
struct clocktime ct;