diff options
author | Stefan Sperling <stsp@cvs.openbsd.org> | 2017-08-17 05:16:28 +0000 |
---|---|---|
committer | Stefan Sperling <stsp@cvs.openbsd.org> | 2017-08-17 05:16:28 +0000 |
commit | 2388dc693dc99a013c1cdd0a7e665756b52609ee (patch) | |
tree | 91776321895ba57726a4bf40f2baa0dcdc2e71e8 /sys/dev/acpi | |
parent | 1070bfd9a627bd2bcc2140e5435b35ca77f3a4bc (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.c | 4 | ||||
-rw-r--r-- | sys/dev/acpi/acpivar.h | 3 | ||||
-rw-r--r-- | sys/dev/acpi/dwiic.c | 4 |
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)) |