Enforce ACPI timer as the timecounter hardware before we change sleep state
unless it is the current timer. When we have resumed successfully, restore the previous timecounter hardware if it was changed earlier. Only the ACPI timer is guaranteed to increase monotonically between S-state changes.
This commit is contained in:
parent
c5e4fa998d
commit
ed82feee0c
@ -43,6 +43,12 @@ if [ -r /var/run/rc.suspend.pid ]; then
|
||||
echo 'rc.resume: killed rc.suspend that was still around'
|
||||
fi
|
||||
|
||||
if [ -r /var/run/rc.suspend.tch ]; then
|
||||
_t=`cat /var/run/rc.suspend.tch`
|
||||
/sbin/sysctl -n kern.timecounter.hardware=$_t > /dev/null 2>&1
|
||||
/bin/rm -f /var/run/rc.suspend.tch
|
||||
fi
|
||||
|
||||
# Turns on a power supply of a card in the slot inactivated.
|
||||
# See also contrib/pccardq.c (only for PAO users).
|
||||
# pccardq | awk -F '~' '$5 == "inactive" \
|
||||
|
@ -43,6 +43,18 @@ fi
|
||||
|
||||
echo $$ 2> /dev/null > /var/run/rc.suspend.pid
|
||||
|
||||
_t=`/sbin/sysctl -n kern.timecounter.hardware 2> /dev/null`
|
||||
case ${_t#ACPI-} in
|
||||
fast|safe)
|
||||
/bin/rm -f /var/run/rc.suspend.tch
|
||||
;;
|
||||
*)
|
||||
( /sbin/sysctl -n kern.timecounter.hardware=ACPI-fast || \
|
||||
/sbin/sysctl -n kern.timecounter.hardware=ACPI-safe ) \
|
||||
> /dev/null 2>&1 && echo $_t > /var/run/rc.suspend.tch
|
||||
;;
|
||||
esac
|
||||
|
||||
# If you have troubles on suspending with PC-CARD modem, try this.
|
||||
# See also contrib/pccardq.c (Only for PAO users).
|
||||
# pccardq | awk -F '~' '$5 == "filled" && $4 ~ /uart/ \
|
||||
|
Loading…
x
Reference in New Issue
Block a user