diff options
Diffstat (limited to 'drivers/bus/acpi.c')
-rw-r--r-- | drivers/bus/acpi.c | 47 |
1 files changed, 13 insertions, 34 deletions
diff --git a/drivers/bus/acpi.c b/drivers/bus/acpi.c index 63d3f618b4..5936170733 100644 --- a/drivers/bus/acpi.c +++ b/drivers/bus/acpi.c @@ -84,7 +84,7 @@ static struct sig_desc { { /* sentinel */ } }; -static struct acpi_sdt *acpi_get_dev_sdt(struct device_d *dev) +static struct acpi_sdt *acpi_get_dev_sdt(struct device *dev) { int i; @@ -96,7 +96,7 @@ static struct acpi_sdt *acpi_get_dev_sdt(struct device_d *dev) return NULL; } -static void acpi_devinfo(struct device_d *dev) +static void acpi_devinfo(struct device *dev) { struct acpi_sdt *sdt = acpi_get_dev_sdt(dev); struct sig_desc *sig_desc; @@ -120,26 +120,20 @@ static void acpi_devinfo(struct device_d *dev) printf("CreatorRevision: %u\n", sdt->creator_revision); } -static int acpi_register_device(struct device_d *dev, struct acpi_sdt *sdt) +static int acpi_register_device(struct device *dev, struct acpi_sdt *sdt) { - int ret; - - ret = register_device(dev); - if (ret) - return ret; - device_add_resource(dev, "SDT", (resource_size_t)sdt, sdt->len, IORESOURCE_MEM | IORESOURCE_ROM_COPY | IORESOURCE_ROM_BIOS_COPY); - dev_dbg(dev, "registered as ACPI device\n"); + dev_dbg(dev, "registering as ACPI device\n"); - return 0; + return register_device(dev); } -static struct device_d *acpi_add_device(struct bus_type *bus, +static struct device *acpi_add_device(struct bus_type *bus, acpi_sig_t signature) { - struct device_d *dev; + struct device *dev; dev = xzalloc(sizeof(*dev)); @@ -155,7 +149,7 @@ static struct device_d *acpi_add_device(struct bus_type *bus, static int acpi_register_devices(struct bus_type *bus) { - efi_config_table_t *table = bus->dev->priv; + struct efi_config_table *table = bus->dev->priv; struct acpi_rsdp *rsdp; struct acpi_rsdt *root; size_t entry_count; @@ -192,7 +186,7 @@ static int acpi_register_devices(struct bus_type *bus) return -EIO; } - dev_info(bus->dev, "Found %s (OEM: %.8s) with %lu entries\n", + dev_info(bus->dev, "Found %s (OEM: %.8s) with %zu entries\n", sig, root->sdt.oem_id, entry_count); for (i = 0; i < entry_count; i++) { @@ -203,7 +197,7 @@ static int acpi_register_devices(struct bus_type *bus) return 0; } -static int acpi_bus_match(struct device_d *dev, struct driver_d *drv) +static int acpi_bus_match(struct device *dev, struct driver *drv) { struct acpi_driver *acpidrv = to_acpi_driver(drv); struct acpi_sdt *sdt = acpi_get_dev_sdt(dev); @@ -211,31 +205,16 @@ static int acpi_bus_match(struct device_d *dev, struct driver_d *drv) return acpi_sigcmp(acpidrv->signature, sdt->signature); } -static int acpi_bus_probe(struct device_d *dev) -{ - return dev->driver->probe(dev); -} - -static void acpi_bus_remove(struct device_d *dev) -{ - if (dev->driver->remove) - dev->driver->remove(dev); -} - struct bus_type acpi_bus = { .name = "acpi", .match = acpi_bus_match, - .probe = acpi_bus_probe, - .remove = acpi_bus_remove, }; static int efi_acpi_probe(void) { - efi_config_table_t *table = NULL; - int i; + struct efi_config_table *ect, *table = NULL; - for (i = 0; i < efi_sys_table->nr_tables; i++) { - efi_config_table_t *ect = &efi_sys_table->tables[i]; + for_each_efi_config_table(ect) { /* take ACPI < 2 table only if no ACPI 2.0 is available */ if (!efi_guidcmp(ect->guid, EFI_ACPI_20_TABLE_GUID)) { acpi_bus.name = "acpi2"; @@ -254,4 +233,4 @@ static int efi_acpi_probe(void) acpi_bus.dev->priv = table; return acpi_register_devices(&acpi_bus); } -postcore_initcall(efi_acpi_probe); +postcore_efi_initcall(efi_acpi_probe); |