Thread (26 messages) 26 messages, 2 authors, 2012-09-17

Re: [PATCH v3] ACPI/pci-bind: remove bind/unbind callbacks from acpi_device_ops

From: Yinghai Lu <yinghai@kernel.org>
Date: 2012-09-16 16:49:47
Also in: lkml

On Sun, Sep 16, 2012 at 7:09 AM, Jiang Liu [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Now ACPI devices are created before/destroyed after corresponding PCI
devices, and acpi_platform_notify/acpi_platform_notify_remove will
update PCI<->ACPI binding relationship when creating/destroying PCI
devices, there's no need to invoke bind/unbind callbacks from ACPI
device probe/destroy routines anymore. So remove bind/unbind callbacks
from acpi_device_ops.

Signed-off-by: Jiang Liu <redacted>
Signed-off-by: Yijing Wang <redacted>
---
V2->V3:
        Simplify implementation according to Yinghai's suggestion.
---
 drivers/acpi/glue.c         |   15 ++++---
 drivers/acpi/internal.h     |    3 +-
 drivers/acpi/pci_bind.c     |  102 ++++++++++---------------------------------
 drivers/acpi/pci_root.c     |    9 ----
 drivers/acpi/scan.c         |   21 +--------
 include/acpi/acpi_bus.h     |    4 --
 include/acpi/acpi_drivers.h |    1 -
 7 files changed, 36 insertions(+), 119 deletions(-)
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
index 4904700..9779fb7 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -160,10 +160,13 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle)
        }
        dev->archdata.acpi_handle = handle;

-       acpi_pci_bind_notify(dev->archdata.acpi_handle, dev, true);
-
        status = acpi_bus_get_device(handle, &acpi_dev);
-       if (!ACPI_FAILURE(status)) {
+       if (!ACPI_FAILURE(status))
+               acpi_dev = NULL;
+
+       acpi_pci_bind_notify(dev->archdata.acpi_handle, acpi_dev, dev, true);
It seems you can do
    acpi_pci_bind_notify(acpi_dev, dev, true);
instead.

aka:
Do you have test case acpi_dev is not created before pci device?

Thanks

Yinghai
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help