Date: Mon, 24 Jan 2000 01:29:03 +0100 (MET) From: "Jose M. Alcaide" <jose@we.lc.ehu.es> To: freebsd-mobile@FreeBSD.ORG Subject: Re: suspend problems with Dell Inspiron 3700 Message-ID: <200001240029.BAA04930@polaris.we.lc.ehu.es>
next in thread | raw e-mail | index | archive | help
The saga of the APM suspend problems with my Inspiron 3700 continues... I found a pattern! However, it is astonishing. Too astonishing to be true. I will try to explain what I discovered. It is difficult to explain, especially in English :-). Sorry. First, I found a strange thing that I thought it was unrelated to the suspend problem. But, somehow, it _is_ related. This strange thing is that, under some circumstances, the RTC does not generate interrupts (IRQ 8). These circumstances are: 1. The system is connected to AC-line, and it is rebooted, or powered down and turned on again. However, if I disconnect the power cable for a couple of seconds while the system is off, reconnect, and then I turn it on again, the RTC generates IRQ8s. 2. The system is battery powered, and it is rebooted. However, if it is powered down and turned on again, the RTC generates IRQ8s. I use "vmstat -i" to see when the RTC is generating interrupts. Maybe the RTC is working but the interrupts are not being accounted by the kernel... How are related the RTC and the APM suspend problems? Well, there is a reproducible (and astonishing) fact: When the RTC is generating IRQ8s, APM suspend does _not_ work. Moreover, if I reboot the system (so the RTC is not working), I suspend it (this now works), wait a few seconds, and I resume it, then, after resuming, "vmstat -i" shows that the RTC is now generating interrupts; after that I cannot suspend the system again. I inserted a ``printf("apm_int(%lx,%lx,%lx,%lx)\n", eax, ebx, ecx, edx)'' in sys/i386/apm/apm.c, in the function apm_suspend_system(), just before the call to apm_int(). I wanted to see whether this call is actually done, or it is not. And it is: whenever I try to suspend the machine, I see this message: apm_int(5307,1,2,0) and nothing more. After 50-52 seconds, this message appears on the console: resumed from suspended mode (slept 00:00:50) The conclusion is that the BIOS suspend call is being activated, but for some reason the system is not suspended. And the suspend fails when the RTC is generating IRQ8s (as it should do!). About 50 seconds after the false suspend, a resume event comes from the BIOS (why?). From all these symptoms we could infer that the APM BIOS is not working correctly, but... what happens with the RTC interrupts? And remember that Windows does not present any problems suspending the same machine (this is really disgusting :-) ). I would really appreciate any theory about this problem from you APM gurus :-) Thanks in advance, and my apologies for this long message written in poor English. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-mobile" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001240029.BAA04930>