Lines Matching +full:acpi +full:- +full:based
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
37 #include <contrib/dev/acpica/include/acpi.h>
106 sc->fdc_dev = dev;
127 * this fails, fall back to the ISA hints-based probe method.
137 error = fdc_acpi_probe_children(bus, dev, obj->Buffer.Pointer);
163 bcopy(fde, ctx->fd_present, sizeof(ctx->fd_present));
164 ctx->index = 0;
165 ctx->dev = dev;
166 ctx->acpi_dev = bus;
167 ACPI_SCAN_CHILDREN(ctx->acpi_dev, dev, 1, fdc_acpi_probe_child,
173 if (ctx->fd_present[i] == ACPI_FD_PRESENT &&
198 * The first four ints are booleans that indicate whether fd0-3 are
202 if (ctx->index > 3)
206 if (ctx->fd_present[ctx->index] != ACPI_FD_PRESENT)
210 child = fdc_add_child(ctx->dev, "fd", ctx->index);
225 * child of acpi. A better way to implement this would be to make fdc
226 * support the ACPI handle ivar for its children.
228 status = ACPI_EVALUATE_OBJECT(ctx->acpi_dev, old_child, "_FDI", NULL,
232 device_printf(ctx->dev, "_FDI failed - %#x\n", status);
237 device_printf(ctx->dev, "invalid _FDI package\n");
240 obj = &pkg->Package.Elements[1];
241 if (obj == NULL || obj->Type != ACPI_TYPE_INTEGER) {
242 device_printf(ctx->dev, "invalid type object in _FDI\n");
245 fdc_set_fdtype(child, obj->Integer.Value);
248 ctx->index++;
274 DRIVER_MODULE(fdc, acpi, fdc_acpi_driver, 0, 0);