From 7847a1455fc4574d53e349d60feb1e1106cdc012 Mon Sep 17 00:00:00 2001 From: Heikki Krogerus Date: Fri, 9 Nov 2018 17:21:35 +0300 Subject: ACPI / glue: Add acpi_platform_notify() function Instead of relying on the "platform_notify" callback hook, introducing separate notification function acpi_platform_notify() and calling that directly from drivers core when device entries are added and removed. Signed-off-by: Heikki Krogerus Acked-by: Linus Walleij Reviewed-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki --- drivers/acpi/glue.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'drivers/acpi/glue.c') diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index 12ba2bee8789..edd10b3c7ec8 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c @@ -296,7 +296,7 @@ int acpi_unbind_one(struct device *dev) } EXPORT_SYMBOL_GPL(acpi_unbind_one); -static int acpi_platform_notify(struct device *dev) +static int acpi_device_notify(struct device *dev) { struct acpi_bus_type *type = acpi_get_bus_type(dev); struct acpi_device *adev; @@ -343,7 +343,7 @@ static int acpi_platform_notify(struct device *dev) return ret; } -static int acpi_platform_notify_remove(struct device *dev) +static int acpi_device_notify_remove(struct device *dev) { struct acpi_device *adev = ACPI_COMPANION(dev); struct acpi_bus_type *type; @@ -361,12 +361,17 @@ static int acpi_platform_notify_remove(struct device *dev) return 0; } -void __init init_acpi_device_notify(void) +int acpi_platform_notify(struct device *dev, enum kobject_action action) { - if (platform_notify || platform_notify_remove) { - printk(KERN_ERR PREFIX "Can't use platform_notify\n"); - return; + switch (action) { + case KOBJ_ADD: + acpi_device_notify(dev); + break; + case KOBJ_REMOVE: + acpi_device_notify_remove(dev); + break; + default: + break; } - platform_notify = acpi_platform_notify; - platform_notify_remove = acpi_platform_notify_remove; + return 0; } -- cgit v1.2.1