summaryrefslogtreecommitdiff
path: root/sys/dev/acpi
diff options
context:
space:
mode:
authorStefan Sperling <stsp@cvs.openbsd.org>2017-08-17 05:16:28 +0000
committerStefan Sperling <stsp@cvs.openbsd.org>2017-08-17 05:16:28 +0000
commit2388dc693dc99a013c1cdd0a7e665756b52609ee (patch)
tree91776321895ba57726a4bf40f2baa0dcdc2e71e8 /sys/dev/acpi
parent1070bfd9a627bd2bcc2140e5435b35ca77f3a4bc (diff)
Make dwiic(4) attach its ACPI parent dependencies.
This change makes the Asus E200HA keyboard work. Original analysis and patch by Cesare Gargano ok kettenis@
Diffstat (limited to 'sys/dev/acpi')
-rw-r--r--sys/dev/acpi/acpi.c4
-rw-r--r--sys/dev/acpi/acpivar.h3
-rw-r--r--sys/dev/acpi/dwiic.c4
3 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/acpi/acpi.c b/sys/dev/acpi/acpi.c
index ed7c9d44b79..1e0383e3135 100644
--- a/sys/dev/acpi/acpi.c
+++ b/sys/dev/acpi/acpi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpi.c,v 1.331 2017/08/09 10:15:31 dcoppa Exp $ */
+/* $OpenBSD: acpi.c,v 1.332 2017/08/17 05:16:27 stsp Exp $ */
/*
* Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
* Copyright (c) 2005 Jordan Hargrave <jordan@openbsd.org>
@@ -2879,8 +2879,8 @@ acpi_foundhid(struct aml_node *node, void *arg)
#endif
if (!node->parent->attached) {
- config_found(self, &aaa, acpi_print);
node->parent->attached = 1;
+ config_found(self, &aaa, acpi_print);
}
return (0);
diff --git a/sys/dev/acpi/acpivar.h b/sys/dev/acpi/acpivar.h
index 4f97352be58..558ec12cd40 100644
--- a/sys/dev/acpi/acpivar.h
+++ b/sys/dev/acpi/acpivar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpivar.h,v 1.87 2017/04/08 01:20:10 deraadt Exp $ */
+/* $OpenBSD: acpivar.h,v 1.88 2017/08/17 05:16:27 stsp Exp $ */
/*
* Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
*
@@ -370,6 +370,7 @@ int acpi_acquire_glk(uint32_t *);
int acpi_release_glk(uint32_t *);
void acpi_pciroots_attach(struct device *, void *, cfprint_t);
+void acpi_attach_deps(struct acpi_softc *, struct aml_node *);
void *acpi_intr_establish(int, int, int, int (*)(void *), void *,
const char *);
diff --git a/sys/dev/acpi/dwiic.c b/sys/dev/acpi/dwiic.c
index 60bf8d17a22..189408e2217 100644
--- a/sys/dev/acpi/dwiic.c
+++ b/sys/dev/acpi/dwiic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dwiic.c,v 1.22 2016/10/25 06:48:58 pirofti Exp $ */
+/* $OpenBSD: dwiic.c,v 1.23 2017/08/17 05:16:27 stsp Exp $ */
/*
* Synopsys DesignWare I2C controller
*
@@ -572,6 +572,8 @@ dwiic_acpi_found_hid(struct aml_node *node, void *arg)
aml_parse_resource(&res, dwiic_acpi_parse_crs, &crs);
aml_freevalue(&res);
+ acpi_attach_deps(acpi_softc, node->parent);
+
if (dwiic_matchhids(cdev, ihidev_hids))
return dwiic_acpi_found_ihidev(sc, node, dev, crs);
else if (dwiic_matchhids(dev, iatp_hids))