Message ID | 1382808205-843-1-git-send-email-amurray@embedded-bits.co.uk (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Sat, Oct 26, 2013 at 11:23 AM, Andrew Murray <amurray@embedded-bits.co.uk> wrote: > The pcie_ports parameter, which defaults to 'auto', allows a user > to specify if PCIe port services are disabled ('compat'), always > enabled ('native'), or only used when allowed by the BIOS > ('auto'). > > Where CONFIG_ACPI isn't enabled, as is often the case for non > x86/ia64 platforms, the 'auto' behavior results in that of > 'compat'. Thus in order to use port services on these platforms > 'pcie_ports=native' must be added to the kernel command line. > > This patch results in the 'native' behavior being followed where > 'auto' is selected and ACPI is not enabled. > > Signed-off-by: Andrew Murray <amurray@embedded-bits.co.uk> Applied to pci/misc. I'll probably include this in the v3.13 pull request. Thanks! Bjorn > --- > drivers/pci/pcie/portdrv_core.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c > index 31063ac..08d131f 100644 > --- a/drivers/pci/pcie/portdrv_core.c > +++ b/drivers/pci/pcie/portdrv_core.c > @@ -260,13 +260,14 @@ static int get_port_device_capability(struct pci_dev *dev) > if (pcie_ports_disabled) > return 0; > > - err = pcie_port_platform_notify(dev, &cap_mask); > - if (!pcie_ports_auto) { > - cap_mask = PCIE_PORT_SERVICE_PME | PCIE_PORT_SERVICE_HP > - | PCIE_PORT_SERVICE_VC; > - if (pci_aer_available()) > - cap_mask |= PCIE_PORT_SERVICE_AER; > - } else if (err) { > + cap_mask = PCIE_PORT_SERVICE_PME | PCIE_PORT_SERVICE_HP > + | PCIE_PORT_SERVICE_VC; > + if (pci_aer_available()) > + cap_mask |= PCIE_PORT_SERVICE_AER; > + > + if (pcie_ports_auto) { > + err = pcie_port_platform_notify(dev, &cap_mask); > + if (err) > return 0; > } > > -- > 1.8.1.2 > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c index 31063ac..08d131f 100644 --- a/drivers/pci/pcie/portdrv_core.c +++ b/drivers/pci/pcie/portdrv_core.c @@ -260,13 +260,14 @@ static int get_port_device_capability(struct pci_dev *dev) if (pcie_ports_disabled) return 0; - err = pcie_port_platform_notify(dev, &cap_mask); - if (!pcie_ports_auto) { - cap_mask = PCIE_PORT_SERVICE_PME | PCIE_PORT_SERVICE_HP - | PCIE_PORT_SERVICE_VC; - if (pci_aer_available()) - cap_mask |= PCIE_PORT_SERVICE_AER; - } else if (err) { + cap_mask = PCIE_PORT_SERVICE_PME | PCIE_PORT_SERVICE_HP + | PCIE_PORT_SERVICE_VC; + if (pci_aer_available()) + cap_mask |= PCIE_PORT_SERVICE_AER; + + if (pcie_ports_auto) { + err = pcie_port_platform_notify(dev, &cap_mask); + if (err) return 0; }
The pcie_ports parameter, which defaults to 'auto', allows a user to specify if PCIe port services are disabled ('compat'), always enabled ('native'), or only used when allowed by the BIOS ('auto'). Where CONFIG_ACPI isn't enabled, as is often the case for non x86/ia64 platforms, the 'auto' behavior results in that of 'compat'. Thus in order to use port services on these platforms 'pcie_ports=native' must be added to the kernel command line. This patch results in the 'native' behavior being followed where 'auto' is selected and ACPI is not enabled. Signed-off-by: Andrew Murray <amurray@embedded-bits.co.uk> --- drivers/pci/pcie/portdrv_core.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)