summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorPhilip Guenther <guenther@cvs.openbsd.org>2015-09-11 22:44:31 +0000
committerPhilip Guenther <guenther@cvs.openbsd.org>2015-09-11 22:44:31 +0000
commitddb7f8f108bb3cbf6be9e45a461bbeb2cee37c1b (patch)
tree775455bb8b35f145338c8b4841274bde3d3d7a8f /sys/dev
parent93845d4535bc00748a722fc8fdb079fa630bdbd9 (diff)
Workaround broken AML by treating FFH vendor 8 the same as vendor 1 (== intel)
ok millert@ kettenis@ and something like an ok mlarkin@
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/acpi/acpicpu.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/acpi/acpicpu.c b/sys/dev/acpi/acpicpu.c
index a4f340a1ef5..8206adf95a9 100644
--- a/sys/dev/acpi/acpicpu.c
+++ b/sys/dev/acpi/acpicpu.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpicpu.c,v 1.68 2015/08/04 22:25:54 guenther Exp $ */
+/* $OpenBSD: acpicpu.c,v 1.69 2015/09/11 22:44:30 guenther Exp $ */
/*
* Copyright (c) 2005 Marco Peereboom <marco@openbsd.org>
* Copyright (c) 2015 Philip Guenther <guenther@openbsd.org>
@@ -394,8 +394,12 @@ acpicpu_add_cstatepkg(struct aml_value *val, void *arg)
if (grd->grd_gas.register_bit_width == 0) {
method = CST_METH_HALT;
addr = 0;
- } else if (grd->grd_gas.register_bit_width == 1) {
- /* vendor == Intel */
+ } else if (grd->grd_gas.register_bit_width == 1 ||
+ grd->grd_gas.register_bit_width == 8) {
+ /*
+ * vendor 1 == Intel
+ * vendor 8 == "AML author used the bitwidth"
+ */
switch (grd->grd_gas.register_bit_offset) {
case 0x1:
method = CST_METH_IO_HALT;