Messages in this thread | | | From | "Rafael J. Wysocki" <> | Subject | Re: [PATCH 5/6] ACPI: Replace struct acpi_bus_ops with enum type | Date | Tue, 11 Dec 2012 19:30:57 +0100 |
| |
Hi Gerry,
On Tuesday, December 11, 2012 11:09:06 PM Jiang Liu wrote: > Hi Rafael, > I have worked out a patch set to clean up ACPI/PCI related notifications, > please refer to > http://www.spinics.net/lists/linux-pci/msg17822.html > The patchset doesn't apply cleanly to Bjorn's latest pci-next tree. I will > help to rebase it if needed.
I have reviewed the patches and I think they make sense overall. However, the statement that acpi_pci_bind()/acpi_pci_unbind() are used to maintain PCI-ACPI binding relationships is quite inaccurate, because all what these functions do is to (1) add/remove ACPI PM notifiers to/from PCI devices and (2) retrieve the _PRT information for bridges from ACPI tables. In fact, the *binding* itself is managed by the code in drivers/acpi/glue.c.
Also, please have a look at my suggestion in the last reply to Yinghai:
http://marc.info/?l=linux-pci&m=135522965707752&w=2
In fact, I think we can go even further than that. Namely, if we populate the ACPI handle of the device in pci_scan_device(), then we can just move the PM notifier and wakeup setup to platform_pci_wakeup_init(), where it should be (we'll also need to add a corresponding _exit() function, then, but that'll be much cleaner anyway).
Then, the remaining thing would be to ensure that _PRT entries are parsed as appropriate somewhere around pci_init_capabilities().
Also, I wonder if you can help test the $subject patchset on a system with hardware PCI hotplug (preferably on top of the linux-pm.git/master branch)?
Rafael
-- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
| |