On Thu, Aug 29, 2013 at 05:40:52PM -0600, Bjorn Helgaas wrote: > On Thu, Aug 29, 2013 at 04:17:05PM -0400, Neil Horman wrote: > > This is a fix for: > > https://bugzilla.kernel.org/show_bug.cgi?id=60736 > > > > During the 3.8 devel cycle: > > > > commit 8c33f51df406e1a1f7fa4e9b244845b7ebd61fa6 > > Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx> > > Date: Tue Oct 30 15:27:13 2012 +0900 > > > > PCI/ACPI: Request _OSC control before scanning PCI root bus > > > > went in to allow us to query the pcie hotplug flags during the acpi bus scan. > > It however caused problems with the disabling of pcie aspm, and so: > > commit b8178f130e25c1bdac1c33e0996f1ff6e20ec08e > > Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > Date: Mon Apr 1 15:47:39 2013 -0600 > > > > Revert "PCI/ACPI: Request _OSC control before scanning PCI root bus" > > > > Backed it out. This of course brought back the problem in which acpi took over > > hotplug ports that were meant to be controlled by pcie. > > > > This patch gives us both items. It lets us request _OSC control before scanning > > the pci root bus, but defers any disabling of aspm until after the scan is > > complete, allowing us to properly handle old pcie 1.1 devices aspm settings > > properly, as b8178f130e documents. > > > > Tested successfully by myself. > > > > Signed-off-by: Neil Horman <nhorman@xxxxxxxxxxxxx> > > CC: Len Brown <lenb@xxxxxxxxxx> > > CC: "Rafael J. Wysocki" <rjw@xxxxxxx> > > CC: linux-acpi@xxxxxxxxxxxxxxx > > CC: linux-pci@xxxxxxxxxxxxxxx > > I added Yinghai's ack and a stable tag and put this in pci/misc > for v3.12. Thanks! > > I reworked the changelog because I think the actual cause of the > regression was 3b63aaa70e, not the _OSC commits you mentioned: > > 8c33f51df4 ("PCI/ACPI: Request _OSC control before scanning PCI root bus") > appeared in v3.8 and broke ASPM but not acpiphp. > > b8178f130e ('Revert "PCI/ACPI: Request _OSC control before scanning PCI > root bus"') appeared in v3.9 and fixed ASPM, leaving acpiphp working. > > 3b63aaa70e ("PCI: acpiphp: Do not use ACPI PCI subdriver mechanism") > appeared in v3.10, and I believe this is what actually broke acpiphp > because it moved the acpiphp initialization earlier, into the bus scan. > > in v3.8: > acpi_pci_root_add > acpi_pci_osc_control_set # request OS control > pci_acpi_scan_root # scan bus > acpi_pci_root_start > add_bridge # acpi_pci_driver .add method > ... > device_is_managed_by_native_pciehp # OK > > in v3.9: > acpi_pci_root_add > pci_acpi_scan_root # scan bus > acpi_pci_osc_control_set # request OS control > add_bridge # acpi_pci_driver .add method > ... > device_is_managed_by_native_pciehp # OK > > in v3.10: > acpi_pci_root_add > pci_acpi_scan_root # scan bus > ... > acpiphp_enumerate_slots > ... > device_is_managed_by_native_pciehp # PROBLEM > acpi_pci_osc_control_set # request OS control > > So I added a stable tag for v3.10+ only. I'll ask Linus to merge it > directly during the merge window for v3.12, and hopefully it will be > backported to the v3.10 and v3.11 stable trees soon after that. > > Bjorn > Copy that, thanks! Neil -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html