Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Mar 2007 13:21:17 -0800
From:      Nate Lawson <nate@root.org>
To:        Stefan Ehmann <shoesoft@gmx.net>
Cc:        freebsd-acpi@FreeBSD.org
Subject:   Re: notebook freezes
Message-ID:  <45EC89CD.5050907@root.org>
In-Reply-To: <1173084724.1850.3.camel@localhost>
References:  <200703011612.07110.shoesoft@gmx.net>	 <20070305004000.B17935@delplex.bde.org> <45EB28A1.5010803@root.org>	 <200703042242.58748.shoesoft@gmx.net>	 <20070305142926.O2780@besplex.bde.org> <1173084724.1850.3.camel@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
Stefan Ehmann wrote:
> On Mon, 2007-03-05 at 15:21 +1100, Bruce Evans wrote:
>> On Sun, 4 Mar 2007, Stefan Ehmann wrote:
>>> Oops, seems I somehow screwed up Bruce's patch on first try (pmtimer was
>>> already in my config). Probably the aftermath of the lunar eclipse :)
>>>
>>> On my second try, timer_restore really gets called and it also fixes my
>>> problem.
>> Could you add some RTC accesses to determine exactly what state is
>> inconsistent?  Something like the following:
>>
>>  	cur_rtc_reg = inb(IO_RTC);	/* Sloppy locking. */
>>  	printf("cur_rtc_reg = %02x, rtc_reg = %02x\n", cur_rtc_reg, rtc_reg);
>>  	rtc_reg = -1;
>>  	cur_rtc_statusa = rtcin(RTC_STATUSA);
>>  	printf(...);
>>  	cur_rtc_statusb = rtcin(RTC_STATUSB);
>>  	printf(...);
>>
> 
> Putting this on top of rtc_resume, I get this on resume (all values are
> hexadecimal):
> 
> cur_rtc_reg = ff, rtc_reg = 0c
> cur_rtc_statusa = 29
> cur_rtc_statusb = 42

Yes, that's what I expected.  Reads from uninitialized regions of the
southbridge usually return all 1's.  PCI config registers usually show
the same thing on resume until reprogrammed.  The solution is to not
assume anything about the state of the RTC in the resume method and
always reprogram all the registers as if it was coming up from hard
power off.

-- 
Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45EC89CD.5050907>