787db7a9c1
2. Update a comment. We now restore much more than RTC updates and interrupts. 3. Order change. Stop interrupts by writing to RTC_STATUSB, restore rate bits for the interrupts by writing to RTC_STATUSA, then enable interrupts again. This seems to be done perfectly backwards in startrtclock(). Otherwise, the idea for this change was obtained from startrtclock(). 4. Don't stop the clock (RTCB_HALT). We only program some control bits and don't want to stop the clock. 5. (Not really related.) Add caveats to the comment about timer_restore(). The update is non-atomic since locking is not done. On locking: 6. rtcin() and writertc() are locked() adequately by splhigh() in RELENG_4, but this locking is null in -current. 7. Doing things in the correct order in (3) combined with (6) is probably enough locking for rtcrestore() in RELENG_4. In -current, the writertc()'s race with rtcintr() unless the BIOS disables RTC interrupts. Submitted by: bde (including commit message) MFC after: 1 week |
||
---|---|---|
.. | ||
atpic_vector.S | ||
clock.c | ||
icu_ipl.s | ||
icu_ipl.S | ||
icu_vector.s | ||
icu_vector.S | ||
icu.h | ||
intr_machdep.c | ||
intr_machdep.h | ||
isa_dma.c | ||
isa_dma.h | ||
isa.c | ||
isa.h | ||
ithread.c | ||
nmi.c | ||
npx.c | ||
timerreg.h | ||
vector.s | ||
vector.S |