Loading drivers/acpi/glue.c +22 −12 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ #include <linux/rwsem.h> #include <linux/acpi.h> #include <linux/dma-mapping.h> #include <linux/pci.h> #include <linux/pci-acpi.h> #include <linux/platform_device.h> #include "internal.h" Loading Loading @@ -287,12 +289,13 @@ EXPORT_SYMBOL_GPL(acpi_unbind_one); void acpi_device_notify(struct device *dev) { struct acpi_bus_type *type = acpi_get_bus_type(dev); struct acpi_device *adev; int ret; ret = acpi_bind_one(dev, NULL); if (ret) { struct acpi_bus_type *type = acpi_get_bus_type(dev); if (!type) goto err; Loading @@ -304,17 +307,26 @@ void acpi_device_notify(struct device *dev) ret = acpi_bind_one(dev, adev); if (ret) goto err; if (type->setup) { type->setup(dev); goto done; } } else { adev = ACPI_COMPANION(dev); if (dev_is_platform(dev)) if (dev_is_pci(dev)) { pci_acpi_setup(dev, adev); goto done; } else if (dev_is_platform(dev)) { acpi_configure_pmsi_domain(dev); } } if (type && type->setup) type->setup(dev); else if (adev->handler && adev->handler->bind) if (adev->handler && adev->handler->bind) adev->handler->bind(dev); done: acpi_handle_debug(ACPI_HANDLE(dev), "Bound to device %s\n", dev_name(dev)); Loading @@ -327,14 +339,12 @@ void acpi_device_notify(struct device *dev) void acpi_device_notify_remove(struct device *dev) { struct acpi_device *adev = ACPI_COMPANION(dev); struct acpi_bus_type *type; if (!adev) return; type = acpi_get_bus_type(dev); if (type && type->cleanup) type->cleanup(dev); if (dev_is_pci(dev)) pci_acpi_cleanup(dev, adev); else if (adev->handler && adev->handler->unbind) adev->handler->unbind(dev); Loading drivers/pci/pci-acpi.c +3 −28 Original line number Diff line number Diff line Loading @@ -1356,13 +1356,9 @@ static void pci_acpi_set_external_facing(struct pci_dev *dev) dev->external_facing = 1; } static void pci_acpi_setup(struct device *dev) void pci_acpi_setup(struct device *dev, struct acpi_device *adev) { struct pci_dev *pci_dev = to_pci_dev(dev); struct acpi_device *adev = ACPI_COMPANION(dev); if (!adev) return; pci_acpi_optimize_delay(pci_dev, adev->handle); pci_acpi_set_external_facing(pci_dev); Loading @@ -1386,14 +1382,10 @@ static void pci_acpi_setup(struct device *dev) acpi_device_power_add_dependent(adev, dev); } static void pci_acpi_cleanup(struct device *dev) void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev) { struct acpi_device *adev = ACPI_COMPANION(dev); struct pci_dev *pci_dev = to_pci_dev(dev); if (!adev) return; pci_acpi_remove_edr_notifier(pci_dev); pci_acpi_remove_pm_notifier(adev); if (adev->wakeup.flags.valid) { Loading @@ -1405,20 +1397,6 @@ static void pci_acpi_cleanup(struct device *dev) } } static bool pci_acpi_bus_match(struct device *dev) { return dev_is_pci(dev); } static struct acpi_bus_type acpi_pci_bus = { .name = "PCI", .match = pci_acpi_bus_match, .find_companion = acpi_pci_find_companion, .setup = pci_acpi_setup, .cleanup = pci_acpi_cleanup, }; static struct fwnode_handle *(*pci_msi_get_fwnode_cb)(struct device *dev); /** Loading Loading @@ -1460,8 +1438,6 @@ struct irq_domain *pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) static int __init acpi_pci_init(void) { int ret; if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_MSI) { pr_info("ACPI FADT declares the system doesn't support MSI, so disable it\n"); pci_no_msi(); Loading @@ -1472,8 +1448,7 @@ static int __init acpi_pci_init(void) pcie_no_aspm(); } ret = register_acpi_bus_type(&acpi_pci_bus); if (ret) if (acpi_pci_disabled) return 0; pci_set_platform_pm(&acpi_pci_platform_pm); Loading include/acpi/acpi_bus.h +0 −1 Original line number Diff line number Diff line Loading @@ -570,7 +570,6 @@ struct acpi_bus_type { bool (*match)(struct device *dev); struct acpi_device * (*find_companion)(struct device *); void (*setup)(struct device *); void (*cleanup)(struct device *); }; int register_acpi_bus_type(struct acpi_bus_type *); int unregister_acpi_bus_type(struct acpi_bus_type *); Loading include/linux/pci-acpi.h +8 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,14 @@ extern struct pci_bus *acpi_pci_root_create(struct acpi_pci_root *root, void acpi_pci_add_bus(struct pci_bus *bus); void acpi_pci_remove_bus(struct pci_bus *bus); #ifdef CONFIG_PCI void pci_acpi_setup(struct device *dev, struct acpi_device *adev); void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev); #else static inline void pci_acpi_setup(struct device *dev, struct acpi_device *adev) {} static inline void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev) {} #endif #ifdef CONFIG_ACPI_PCI_SLOT void acpi_pci_slot_init(void); void acpi_pci_slot_enumerate(struct pci_bus *bus); Loading Loading
drivers/acpi/glue.c +22 −12 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ #include <linux/rwsem.h> #include <linux/acpi.h> #include <linux/dma-mapping.h> #include <linux/pci.h> #include <linux/pci-acpi.h> #include <linux/platform_device.h> #include "internal.h" Loading Loading @@ -287,12 +289,13 @@ EXPORT_SYMBOL_GPL(acpi_unbind_one); void acpi_device_notify(struct device *dev) { struct acpi_bus_type *type = acpi_get_bus_type(dev); struct acpi_device *adev; int ret; ret = acpi_bind_one(dev, NULL); if (ret) { struct acpi_bus_type *type = acpi_get_bus_type(dev); if (!type) goto err; Loading @@ -304,17 +307,26 @@ void acpi_device_notify(struct device *dev) ret = acpi_bind_one(dev, adev); if (ret) goto err; if (type->setup) { type->setup(dev); goto done; } } else { adev = ACPI_COMPANION(dev); if (dev_is_platform(dev)) if (dev_is_pci(dev)) { pci_acpi_setup(dev, adev); goto done; } else if (dev_is_platform(dev)) { acpi_configure_pmsi_domain(dev); } } if (type && type->setup) type->setup(dev); else if (adev->handler && adev->handler->bind) if (adev->handler && adev->handler->bind) adev->handler->bind(dev); done: acpi_handle_debug(ACPI_HANDLE(dev), "Bound to device %s\n", dev_name(dev)); Loading @@ -327,14 +339,12 @@ void acpi_device_notify(struct device *dev) void acpi_device_notify_remove(struct device *dev) { struct acpi_device *adev = ACPI_COMPANION(dev); struct acpi_bus_type *type; if (!adev) return; type = acpi_get_bus_type(dev); if (type && type->cleanup) type->cleanup(dev); if (dev_is_pci(dev)) pci_acpi_cleanup(dev, adev); else if (adev->handler && adev->handler->unbind) adev->handler->unbind(dev); Loading
drivers/pci/pci-acpi.c +3 −28 Original line number Diff line number Diff line Loading @@ -1356,13 +1356,9 @@ static void pci_acpi_set_external_facing(struct pci_dev *dev) dev->external_facing = 1; } static void pci_acpi_setup(struct device *dev) void pci_acpi_setup(struct device *dev, struct acpi_device *adev) { struct pci_dev *pci_dev = to_pci_dev(dev); struct acpi_device *adev = ACPI_COMPANION(dev); if (!adev) return; pci_acpi_optimize_delay(pci_dev, adev->handle); pci_acpi_set_external_facing(pci_dev); Loading @@ -1386,14 +1382,10 @@ static void pci_acpi_setup(struct device *dev) acpi_device_power_add_dependent(adev, dev); } static void pci_acpi_cleanup(struct device *dev) void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev) { struct acpi_device *adev = ACPI_COMPANION(dev); struct pci_dev *pci_dev = to_pci_dev(dev); if (!adev) return; pci_acpi_remove_edr_notifier(pci_dev); pci_acpi_remove_pm_notifier(adev); if (adev->wakeup.flags.valid) { Loading @@ -1405,20 +1397,6 @@ static void pci_acpi_cleanup(struct device *dev) } } static bool pci_acpi_bus_match(struct device *dev) { return dev_is_pci(dev); } static struct acpi_bus_type acpi_pci_bus = { .name = "PCI", .match = pci_acpi_bus_match, .find_companion = acpi_pci_find_companion, .setup = pci_acpi_setup, .cleanup = pci_acpi_cleanup, }; static struct fwnode_handle *(*pci_msi_get_fwnode_cb)(struct device *dev); /** Loading Loading @@ -1460,8 +1438,6 @@ struct irq_domain *pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) static int __init acpi_pci_init(void) { int ret; if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_MSI) { pr_info("ACPI FADT declares the system doesn't support MSI, so disable it\n"); pci_no_msi(); Loading @@ -1472,8 +1448,7 @@ static int __init acpi_pci_init(void) pcie_no_aspm(); } ret = register_acpi_bus_type(&acpi_pci_bus); if (ret) if (acpi_pci_disabled) return 0; pci_set_platform_pm(&acpi_pci_platform_pm); Loading
include/acpi/acpi_bus.h +0 −1 Original line number Diff line number Diff line Loading @@ -570,7 +570,6 @@ struct acpi_bus_type { bool (*match)(struct device *dev); struct acpi_device * (*find_companion)(struct device *); void (*setup)(struct device *); void (*cleanup)(struct device *); }; int register_acpi_bus_type(struct acpi_bus_type *); int unregister_acpi_bus_type(struct acpi_bus_type *); Loading
include/linux/pci-acpi.h +8 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,14 @@ extern struct pci_bus *acpi_pci_root_create(struct acpi_pci_root *root, void acpi_pci_add_bus(struct pci_bus *bus); void acpi_pci_remove_bus(struct pci_bus *bus); #ifdef CONFIG_PCI void pci_acpi_setup(struct device *dev, struct acpi_device *adev); void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev); #else static inline void pci_acpi_setup(struct device *dev, struct acpi_device *adev) {} static inline void pci_acpi_cleanup(struct device *dev, struct acpi_device *adev) {} #endif #ifdef CONFIG_ACPI_PCI_SLOT void acpi_pci_slot_init(void); void acpi_pci_slot_enumerate(struct pci_bus *bus); Loading