Re: [PATCH v4] ACPI: Fix osc flag setup ordering to allow pciehotplug use when available

From: Neil Horman
Date: Fri Aug 30 2013 - 07:20:30 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/