Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Mar 2002 21:51:28 +0900 (JST)
From:      Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
To:        julian@elischer.org
Cc:        iwasaki@FreeBSD.org, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/conf files src/sys/dev/acpica acpi_acad.c acpi_cpu.c acpi_powerprofile.c acpi_thermal.c acpivar.h src/sys/i386/apm apm.c src/sys/i386/i386 identcpu.c src/sys/kern subr_power.c src/sys/modules/acpi Makefile src/sys/sys power.h
Message-ID:  <20020305.215128.26269170.iwasaki@jp.FreeBSD.org>
In-Reply-To: <20020305042917B.iwasaki@jp.FreeBSD.org>
References:  <200203041846.g24IkEU53060@freefall.freebsd.org> <Pine.BSF.4.21.0203041109490.26829-100000@InterJet.elischer.org> <20020305042917B.iwasaki@jp.FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> > Hi..
> > will "halt -p" now work again?
> 
> This commit is not related with power off, sorry.
> 
> > it used to work, but stopped working about 3 or 4 months ago.
> 
> Hmmm, which PM are you using, APM or ACPI?

If ACPI, please try this.
# takawata-san suggested this patch.

I'll commit this if the problem is solved.

# this can be controlled by MIB hw.acpi.disable_before_poweroff
# Hmm, better name?

Thanks

Index: acpi.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/acpi.c,v
retrieving revision 1.56
diff -u -r1.56 acpi.c
--- acpi.c	23 Feb 2002 05:21:56 -0000	1.56
+++ acpi.c	5 Mar 2002 03:30:03 -0000
@@ -413,6 +413,9 @@
     SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree),
 	OID_AUTO, "verbose", CTLFLAG_RD | CTLFLAG_RW,
 	&sc->acpi_verbose, 0, "verbose mode");
+    SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree),
+	OID_AUTO, "disable_before_poweroff", CTLFLAG_RD | CTLFLAG_RW,
+	&sc->acpi_disable_before_poweroff, 0, "disable acpi events before poweroff");
     sc->acpi_s4bios = 1;
     if (bootverbose)
 	sc->acpi_verbose = 1;
@@ -873,18 +876,16 @@
 static void
 acpi_shutdown_pre_sync(void *arg, int howto)
 {
+    struct acpi_softc *sc = arg;
 
     ACPI_ASSERTLOCK;
     
     /*
      * Disable all ACPI events before soft off, otherwise the system
      * will be turned on again on some laptops.
-     *
-     * XXX this should probably be restricted to masking some events just
-     *     before powering down, since we may still need ACPI during the
-     *     shutdown process.
      */
-    acpi_Disable((struct acpi_softc *)arg);
+    if (sc->acpi_disable_before_poweroff)
+	acpi_Disable((struct acpi_softc *)arg);
 }
 
 static void
Index: acpivar.h
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/acpivar.h,v
retrieving revision 1.29
diff -u -r1.29 acpivar.h
--- acpivar.h	23 Feb 2002 05:30:54 -0000	1.29
+++ acpivar.h	4 Mar 2002 20:14:29 -0000
@@ -63,6 +63,8 @@
 
     int			acpi_verbose;
 
+    int			acpi_disable_before_poweroff;
+
     bus_dma_tag_t	acpi_waketag;
     bus_dmamap_t	acpi_wakemap;
     vm_offset_t		acpi_wakeaddr;

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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