acpi_lid.c (69910) | acpi_lid.c (71872) |
---|---|
1/*- 2 * Copyright (c) 2000 Takanori Watanabe <takawata@jp.freebsd.org> 3 * Copyright (c) 2000 Mitsuru IWASAKI <iwasaki@jp.freebsd.org> 4 * Copyright (c) 2000 Michael Smith <msmith@freebd.org> 5 * Copyright (c) 2000 BSDi 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * | 1/*- 2 * Copyright (c) 2000 Takanori Watanabe <takawata@jp.freebsd.org> 3 * Copyright (c) 2000 Mitsuru IWASAKI <iwasaki@jp.freebsd.org> 4 * Copyright (c) 2000 Michael Smith <msmith@freebd.org> 5 * Copyright (c) 2000 BSDi 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * |
29 * $FreeBSD: head/sys/dev/acpica/acpi_lid.c 69910 2000-12-12 14:20:27Z iwasaki $ | 29 * $FreeBSD: head/sys/dev/acpica/acpi_lid.c 71872 2001-01-31 09:30:57Z msmith $ |
30 */ 31 32#include "opt_acpi.h" 33#include <sys/param.h> 34#include <sys/kernel.h> 35#include <sys/bus.h> 36#include <sys/mutex.h> 37 --- 65 unchanged lines hidden (view full) --- 103 return_VALUE(0); 104} 105 106static void 107acpi_lid_notify_status_changed(void *arg) 108{ 109 struct acpi_lid_softc *sc; 110 struct acpi_softc *acpi_sc; | 30 */ 31 32#include "opt_acpi.h" 33#include <sys/param.h> 34#include <sys/kernel.h> 35#include <sys/bus.h> 36#include <sys/mutex.h> 37 --- 65 unchanged lines hidden (view full) --- 103 return_VALUE(0); 104} 105 106static void 107acpi_lid_notify_status_changed(void *arg) 108{ 109 struct acpi_lid_softc *sc; 110 struct acpi_softc *acpi_sc; |
111 ACPI_BUFFER Buffer; 112 ACPI_OBJECT Object; | |
113 114 FUNCTION_TRACE(__FUNCTION__); 115 116 sc = (struct acpi_lid_softc *)arg; 117 118 /* | 111 112 FUNCTION_TRACE(__FUNCTION__); 113 114 sc = (struct acpi_lid_softc *)arg; 115 116 /* |
119 * Evaluate _LID and check the return value | 117 * Evaluate _LID and check the return value, update lid status. |
120 * Zero: The lid is closed 121 * Non-zero: The lid is open 122 */ | 118 * Zero: The lid is closed 119 * Non-zero: The lid is open 120 */ |
123 Buffer.Length = sizeof(Object); 124 Buffer.Pointer = &Object; 125 if (AcpiEvaluateObject(sc->lid_handle, "_LID", NULL, &Buffer) != AE_OK) | 121 if (acpi_EvaluateInteger(sc->lid_handle, "_LID", &sc->lid_status) != AE_OK) |
126 return_VOID; | 122 return_VOID; |
127 if (Object.Type != ACPI_TYPE_NUMBER) 128 return_VOID; 129 130 /* 131 * Update lid status 132 */ 133 sc->lid_status = Object.Number.Value; | |
134 device_printf(sc->lid_dev, "Lid %s\n", sc->lid_status ? "opened" : "closed"); 135 136 acpi_sc = acpi_device_get_parent_softc(sc->lid_dev); 137 if (acpi_sc == NULL) { 138 return_VOID; 139 } 140 141 if (sc->lid_status == 0) { --- 28 unchanged lines hidden --- | 123 device_printf(sc->lid_dev, "Lid %s\n", sc->lid_status ? "opened" : "closed"); 124 125 acpi_sc = acpi_device_get_parent_softc(sc->lid_dev); 126 if (acpi_sc == NULL) { 127 return_VOID; 128 } 129 130 if (sc->lid_status == 0) { --- 28 unchanged lines hidden --- |