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

Commit 0cbaa57d authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'topic/stratus' into next

parents 99662dd1 284f5f9d
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -2161,6 +2161,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
				on: Turn realloc on
				on: Turn realloc on
		realloc		same as realloc=on
		realloc		same as realloc=on
		noari		do not use PCIe ARI.
		noari		do not use PCIe ARI.
		pcie_scan_all	Scan all possible PCIe devices.  Otherwise we
				only look for one device below a PCIe downstream
				port.


	pcie_aspm=	[PCIE] Forcibly enable or disable PCIe Active State Power
	pcie_aspm=	[PCIE] Forcibly enable or disable PCIe Active State Power
			Management.
			Management.
+16 −0
Original line number Original line Diff line number Diff line
@@ -11,6 +11,7 @@
#include <linux/dmi.h>
#include <linux/dmi.h>
#include <linux/slab.h>
#include <linux/slab.h>


#include <asm-generic/pci-bridge.h>
#include <asm/acpi.h>
#include <asm/acpi.h>
#include <asm/segment.h>
#include <asm/segment.h>
#include <asm/io.h>
#include <asm/io.h>
@@ -229,6 +230,14 @@ static int __devinit assign_all_busses(const struct dmi_system_id *d)
}
}
#endif
#endif


static int __devinit set_scan_all(const struct dmi_system_id *d)
{
	printk(KERN_INFO "PCI: %s detected, enabling pci=pcie_scan_all\n",
	       d->ident);
	pci_add_flags(PCI_SCAN_ALL_PCIE_DEVS);
	return 0;
}

static const struct dmi_system_id __devinitconst pciprobe_dmi_table[] = {
static const struct dmi_system_id __devinitconst pciprobe_dmi_table[] = {
#ifdef __i386__
#ifdef __i386__
/*
/*
@@ -420,6 +429,13 @@ static const struct dmi_system_id __devinitconst pciprobe_dmi_table[] = {
			DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"),
			DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"),
		},
		},
	},
	},
	{
		.callback = set_scan_all,
		.ident = "Stratus/NEC ftServer",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "ftServer"),
		},
	},
	{}
	{}
};
};


+3 −0
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/device.h>
#include <linux/pm_runtime.h>
#include <linux/pm_runtime.h>
#include <asm-generic/pci-bridge.h>
#include <asm/setup.h>
#include <asm/setup.h>
#include "pci.h"
#include "pci.h"


@@ -3900,6 +3901,8 @@ static int __init pci_setup(char *str)
				pcie_bus_config = PCIE_BUS_PERFORMANCE;
				pcie_bus_config = PCIE_BUS_PERFORMANCE;
			} else if (!strncmp(str, "pcie_bus_peer2peer", 18)) {
			} else if (!strncmp(str, "pcie_bus_peer2peer", 18)) {
				pcie_bus_config = PCIE_BUS_PEER2PEER;
				pcie_bus_config = PCIE_BUS_PEER2PEER;
			} else if (!strncmp(str, "pcie_scan_all", 13)) {
				pci_add_flags(PCI_SCAN_ALL_PCIE_DEVS);
			} else {
			} else {
				printk(KERN_ERR "PCI: Unknown option `%s'\n",
				printk(KERN_ERR "PCI: Unknown option `%s'\n",
						str);
						str);
+6 −2
Original line number Original line Diff line number Diff line
@@ -10,6 +10,7 @@
#include <linux/module.h>
#include <linux/module.h>
#include <linux/cpumask.h>
#include <linux/cpumask.h>
#include <linux/pci-aspm.h>
#include <linux/pci-aspm.h>
#include <asm-generic/pci-bridge.h>
#include "pci.h"
#include "pci.h"


#define CARDBUS_LATENCY_TIMER	176	/* secondary latency timer */
#define CARDBUS_LATENCY_TIMER	176	/* secondary latency timer */
@@ -1336,10 +1337,13 @@ static unsigned no_next_fn(struct pci_dev *dev, unsigned fn)
static int only_one_child(struct pci_bus *bus)
static int only_one_child(struct pci_bus *bus)
{
{
	struct pci_dev *parent = bus->self;
	struct pci_dev *parent = bus->self;

	if (!parent || !pci_is_pcie(parent))
	if (!parent || !pci_is_pcie(parent))
		return 0;
		return 0;
	if (parent->pcie_type == PCI_EXP_TYPE_ROOT_PORT ||
	if (parent->pcie_type == PCI_EXP_TYPE_ROOT_PORT)
	    parent->pcie_type == PCI_EXP_TYPE_DOWNSTREAM)
		return 1;
	if (parent->pcie_type == PCI_EXP_TYPE_DOWNSTREAM &&
	    !pci_has_flag(PCI_SCAN_ALL_PCIE_DEVS))
		return 1;
		return 1;
	return 0;
	return 0;
}
}
+6 −0
Original line number Original line Diff line number Diff line
@@ -30,6 +30,12 @@ enum {
	PCI_ENABLE_PROC_DOMAINS	= 0x00000010,
	PCI_ENABLE_PROC_DOMAINS	= 0x00000010,
	/* ... except for domain 0 */
	/* ... except for domain 0 */
	PCI_COMPAT_DOMAIN_0	= 0x00000020,
	PCI_COMPAT_DOMAIN_0	= 0x00000020,

	/* PCIe downstream ports are bridges that normally lead to only a
	 * device 0, but if this is set, we scan all possible devices, not
	 * just device 0.
	 */
	PCI_SCAN_ALL_PCIE_DEVS	= 0x00000040,
};
};


#ifdef CONFIG_PCI
#ifdef CONFIG_PCI