From owner-FreeBSD-users-jp@jp.FreeBSD.org Mon Apr 26 22:42:01 2004
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id i3QDg1r91428;
	Mon, 26 Apr 2004 22:42:01 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from kfep02.dion.ne.jp (kfep02.dion.ne.jp [203.181.105.164])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id i3QDg1991423
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Mon, 26 Apr 2004 22:42:01 +0900 (JST)
	(envelope-from kunihiro.kusano@k4.dion.ne.jp)
Received: from [61.202.19.110] by kfep02.dion.ne.jp with SMTP
          id <20040426134156613.ZVQB@kfep02.dion.ne.jp>
          for <FreeBSD-users-jp@jp.FreeBSD.org>;
          Mon, 26 Apr 2004 22:41:56 +0900
From: <kunihiro.kusano@k4.dion.ne.jp>
To: FreeBSD-users-jp@jp.FreeBSD.org
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Message-Id: <20040426134156613.ZVQB@kfep02.dion.ne.jp>
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Mon, 26 Apr 2004 22:41:57 +0900
X-Sequence: FreeBSD-users-jp 79187
Subject: [FreeBSD-users-jp 79187] Re:=?ISO-2022-JP?B?GyRCIUo6RhsoQg==?=
 =?ISO-2022-JP?B?GyRCQXc/LiFLSVFISyRLGyhC?= calcru: 	negative
 time of -686530 usec =?ISO-2022-JP?B?GyRCJCxJPTwoJDUkbBsoQg==?=
 =?ISO-2022-JP?B?GyRCJGsbKEI=?= 
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: kunihiro.kusano@k4.dion.ne.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+040413

$BApLn$G$9!#(B

Date: Mon, 26 Apr 2004 20:27:55 +0900
From: shamada@plum.plala.or.jp wrote:

>$BIY;NDL$N(B K6/2-500MHz $BEk:\$N(B DESKPOWER ME3/505 $B$K(B 5-2-1RELEASE
>$B$r%$%s%9%H!<%k$7$?$N$G$9$,!"5/F0Cf$*$h$S5/F08e$K<!$N%a%C%;!<%8$,(B
>$BIQHK$KI=<($5$l!"$7$+$b%(%G%#%?!<;HMQCf$K$b$3$N<o$N%a%C%;!<%8$,(B
>$B2hLL$K3d$j9~$s$G$/$k$N$G!";E;v$K$J$j$^$;$s!#(B
> 
>calcru: negative time of -686530 usec for pid 468(csh)

sys/i386/isa/clock.c  line 700 - 720 $B$"$?$j$K!"<!$N5-:\$,$"$j$^$9!#(B

/*
 * i8254_restore is called from apm_default_resume() to reload
 * the countdown register.
 * this should not be necessary but there are broken laptops that
 * do not restore the countdown register on resume.
 * when it happnes, it messes up the hardclock interval and system clock,
 * which leads to the infamous "calcru: negative time" problem.
 */
void
i8254_restore(void)
{
	u_long ef;

	ef = read_eflags();
	disable_intr();
	outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT);
	outb(TIMER_CNTR0, timer0_max_count & 0xff);
	outb(TIMER_CNTR0, timer0_max_count >> 8);
	CLOCK_UNLOCK();
	write_eflags(ef);
}

$B$O$:$7$F$$$k$+$bCN$l$^$;$s$,!"(B

device		apm0    at nexus?  flags 0x20 # Advanced Power Management

$B$G!"%+!<%M%k$N:F9=C[!#(B


$BApLn(B $B63Gn(B <kunihiro.kusano@k4.dion.ne.jp>


