On Wed, 28 Jul 2010 23:23:56 +0200 "Rafael J. Wysocki" <rjw@xxxxxxx> wrote: > From: Rafael J. Wysocki <rjw@xxxxxxx> > > PCIe port service drivers ask the BIOS, through _OSC, for control of > the services they handle. Unfortunately, each of them individually > asks for control of the PCIe capability structure and if that is > granted, some BIOSes expect that the other PCIe port services will be > configured and handled by the kernel as well. If that is not the > case (eg. one of the PCIe port service drivers is not loaded), the > BIOS may be confused and may cause the system as a whole to misbehave > (eg. on one of such systems enabling the native PCIe PME service > without loading the native PCIe hot-plug service driver causes a > storm of ACPI notify requests to appear). > > For this reason rework the PCIe port driver so that (1) it checks > which native PCIe port services can be enabled, according to the > BIOS, and (2) it requests control of all these services > simultaneously. In particular, this causes pcie_portdrv_probe() to > fail if the BIOS refuses to grant control of the PCIe capability > structure, which means that no native PCIe port services can be > enabled for the PCIe root complex the given port belongs to. > > Make it possible to override this behavior using a new command line > switch pcie_ports= that can be set to 'auto' (ask the BIOS, the > default), 'native' (use the PCIe native services regardless of the > BIOS response to the control request), or 'compat' (do not use the > PCIe native services at all). > > Accordingly, rework the existing PCIe port service drivers so that > they don't request control of the services directly. > > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> > --- Kenji-san, are you ok with this version? I would like to get your ack (and ideally your tested-by) for this one since it affects functionality you need. Thanks, -- Jesse Barnes, Intel Open Source Technology Center -- 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