Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b87e700 authored by Andrew Murray's avatar Andrew Murray Committed by Bjorn Helgaas
Browse files

PCI: Update pcie_ports 'auto' behavior for non-ACPI platforms



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: default avatarAndrew Murray <amurray@embedded-bits.co.uk>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 0394cb19
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -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) {

	if (pcie_ports_auto) {
		err = pcie_port_platform_notify(dev, &cap_mask);
		if (err)
			return 0;
	}