Module Name: src
Committed By: jmcneill
Date: Wed Dec 18 21:23:27 UTC 2024
Modified Files:
src/sys/dev/acpi: qcomiic.c
Log Message:
qcomiic: Don't defer attachment of child devices.
Now that _DEP is supported in the acpi later, remove config_defer hack.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/acpi/qcomiic.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/acpi/qcomiic.c
diff -u src/sys/dev/acpi/qcomiic.c:1.2 src/sys/dev/acpi/qcomiic.c:1.3
--- src/sys/dev/acpi/qcomiic.c:1.2 Mon Dec 9 22:13:14 2024
+++ src/sys/dev/acpi/qcomiic.c Wed Dec 18 21:23:27 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: qcomiic.c,v 1.2 2024/12/09 22:13:14 jmcneill Exp $ */
+/* $NetBSD: qcomiic.c,v 1.3 2024/12/18 21:23:27 jmcneill Exp $ */
/* $OpenBSD: qciic.c,v 1.7 2024/10/02 21:21:32 kettenis Exp $ */
/*
@@ -64,7 +64,6 @@ struct qciic_softc {
static int qciic_acpi_match(device_t, cfdata_t, void *);
static void qciic_acpi_attach(device_t, device_t, void *);
-static void qciic_acpi_attach_late(device_t);
static int qciic_exec(void *, i2c_op_t, i2c_addr_t, const void *, size_t,
void *, size_t, int);
@@ -91,6 +90,7 @@ qciic_acpi_attach(device_t parent, devic
{
struct qciic_softc * const sc = device_private(self);
struct acpi_attach_args *aa = aux;
+ struct i2cbus_attach_args iba;
struct acpi_resources res;
struct acpi_mem *mem;
struct acpi_irq *irq;
@@ -132,28 +132,14 @@ qciic_acpi_attach(device_t parent, devic
acpi_i2c_register(aa->aa_node, self, &sc->sc_ic);
- /*
- * Defer the attachment of I2C bus until all ACPI devices have been
- * enumerated, as other devices may provide resources for devices
- * attached to the I2C bus.
- */
- config_defer(self, qciic_acpi_attach_late);
-
-done:
- acpi_resource_cleanup(&res);
-}
-
-static void
-qciic_acpi_attach_late(device_t self)
-{
- struct i2cbus_attach_args iba;
- struct qciic_softc * const sc = device_private(self);
-
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_ic;
iba.iba_child_devices = acpi_enter_i2c_devs(self, sc->sc_acpi);
config_found(self, &iba, iicbus_print, CFARGS_NONE);
+
+done:
+ acpi_resource_cleanup(&res);
}
static int