Date: Mon, 15 Nov 2004 09:56:29 -0800 From: Nate Lawson <nate@root.org> To: Bruno Ducrot <ducrot@poupinou.org> Cc: Adam K Kirchhoff <adamk@voicenet.com> Subject: Re: Laptop troubles... Message-ID: <4198EDCD.8070306@root.org> In-Reply-To: <20041112181038.GK31422@poupinou.org> References: <41910F00.3070402@voicenet.com> <419113BA.9000806@root.org> <41911D01.1090303@voicenet.com> <4191201A.4080406@root.org> <4191330A.7040707@voicenet.com> <41913F15.9060701@root.org> <419145A7.3000406@voicenet.com> <41914DCC.8000100@root.org> <20041112181038.GK31422@poupinou.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Bruno Ducrot wrote:
> On Tue, Nov 09, 2004 at 03:07:56PM -0800, Nate Lawson wrote:
>
>>That's fine, try cx_lowest=C2. If that works, a workaround is to set
>>cx_performance_state=C2 and cx_economy_state=C2 in /etc/rc.conf (or
>>something like that, see /etc/defaults/rc.conf for the right variable
>>names). Please send me the output of acpidump -t -d > adam.asl
>>separately as an attachment. I think I will have enough with that to
>>debug why C3 is hanging your system. I'm pretty sure the problem area
>>of the commit is in enabling C3 for systems that don't have bus master
>>control.
>>
>
> C3 support with a PIIX4 southbridge is buggy as hell and
> should be disabled no matter what.
Right, thanks for the reminder. I actually have quirk code to do this
but it wasn't enabled since I wanted to find an actual test case before
turning it on. Adam, please recompile with the attached patch. Also,
send me pciconf -l. The patch will disable C3 and you should only get
C1/C2 if your system is truly a PIIX4.
Thanks,
Nate
[-- Attachment #2 --]
Index: sys/dev/acpica/acpi_cpu.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/acpi_cpu.c,v
retrieving revision 1.45
diff -u -r1.45 acpi_cpu.c
--- sys/dev/acpica/acpi_cpu.c 11 Oct 2004 21:15:10 -0000 1.45
+++ sys/dev/acpica/acpi_cpu.c 15 Nov 2004 17:52:15 -0000
@@ -966,6 +966,7 @@
static int
acpi_cpu_quirks(struct acpi_cpu_softc *sc)
{
+ device_t acpi_dev;
/*
* C3 on multiple CPUs requires using the expensive flush cache
@@ -974,7 +975,6 @@
if (mp_ncpus > 1)
cpu_quirks |= CPU_QUIRK_NO_BM_CTRL;
-#ifdef notyet
/* Look for various quirks of the PIIX4 part. */
acpi_dev = pci_find_device(PCI_VENDOR_INTEL, PCI_DEVICE_82371AB_3);
if (acpi_dev != NULL) {
@@ -1011,7 +1011,6 @@
break;
}
}
-#endif
return (0);
}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4198EDCD.8070306>
