Port-i386 archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: ICH patch for testing
On Mon, Feb 02, 2009 at 01:58:36PM +0000, Thomas E. Spanjaard wrote:
> I've had issues where sometimes it wouldn't shut down either without
> this patch (on a quad-core machine), so that seems to be another issue
> (perhaps related to not running the ACPI shutdown call on the BSP?).
Can you see if that problem disappears with the attached patch?
Joerg
Index: cpu.c
===================================================================
RCS file: /home/joerg/repo/netbsd/src/sys/arch/x86/x86/cpu.c,v
retrieving revision 1.62
diff -u -p -r1.62 cpu.c
--- cpu.c 21 Jan 2009 21:26:01 -0000 1.62
+++ cpu.c 2 Feb 2009 14:38:43 -0000
@@ -121,6 +121,7 @@ __KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.62
int cpu_match(device_t, cfdata_t, void *);
void cpu_attach(device_t, device_t, void *);
+static bool cpu_shutdown(device_t, int);
static bool cpu_suspend(device_t PMF_FN_PROTO);
static bool cpu_resume(device_t PMF_FN_PROTO);
@@ -420,7 +421,7 @@ cpu_attach(device_t parent, device_t sel
atomic_or_32(&cpus_attached, ci->ci_cpumask);
- if (!pmf_device_register(self, cpu_suspend, cpu_resume))
+ if (!pmf_device_register1(self, cpu_suspend, cpu_resume, cpu_shutdown))
aprint_error_dev(self, "couldn't establish power handler\n");
if (mp_verbose) {
@@ -995,9 +996,8 @@ cpu_offline_md(void)
splx(s);
}
-/* XXX joerg restructure and restart CPUs individually */
static bool
-cpu_suspend(device_t dv PMF_FN_ARGS)
+cpu_shutdown(device_t dv, int dummy)
{
struct cpu_softc *sc = device_private(dv);
struct cpu_info *ci = sc->sc_info;
@@ -1025,6 +1025,12 @@ cpu_suspend(device_t dv PMF_FN_ARGS)
}
static bool
+cpu_suspend(device_t dv PMF_FN_ARGS)
+{
+ return cpu_shutdown(dv, 0);
+}
+
+static bool
cpu_resume(device_t dv PMF_FN_ARGS)
{
struct cpu_softc *sc = device_private(dv);
Home |
Main Index |
Thread Index |
Old Index