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

Commit 3d620cd7 authored by Tony Luck's avatar Tony Luck
Browse files
parents a1ecf7f6 30121624
Loading
Loading
Loading
Loading
+2 −3
Original line number Original line Diff line number Diff line
@@ -882,13 +882,12 @@ S: Blacksburg, Virginia 24061
S: USA
S: USA


N: Randy Dunlap
N: Randy Dunlap
E: rddunlap@osdl.org
E: rdunlap@xenotime.net
W: http://www.xenotime.net/linux/linux.html
W: http://www.xenotime.net/linux/linux.html
W: http://www.linux-usb.org
W: http://www.linux-usb.org
D: Linux-USB subsystem, USB core/UHCI/printer/storage drivers
D: Linux-USB subsystem, USB core/UHCI/printer/storage drivers
D: x86 SMP, ACPI, bootflag hacking
D: x86 SMP, ACPI, bootflag hacking
S: 12725 SW Millikan Way, Suite 400
S: (ask for current address)
S: Beaverton, Oregon 97005
S: USA
S: USA


N: Bob Dunlop
N: Bob Dunlop
+1 −1
Original line number Original line Diff line number Diff line
@@ -253,7 +253,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2, pci
#define MAX_PCIEROOT	6
#define MAX_PCIEROOT	6
static int quirk_aspm_offset[MAX_PCIEROOT << 3];
static int quirk_aspm_offset[MAX_PCIEROOT << 3];


#define GET_INDEX(a, b) (((a - PCI_DEVICE_ID_INTEL_MCH_PA) << 3) + b)
#define GET_INDEX(a, b) ((((a) - PCI_DEVICE_ID_INTEL_MCH_PA) << 3) + ((b) & 7))


static int quirk_pcie_aspm_read(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *value)
static int quirk_pcie_aspm_read(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *value)
{
{
+2 −0
Original line number Original line Diff line number Diff line
@@ -753,6 +753,8 @@ void __init setup_arch(char **cmdline_p)
	strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
	strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
	*cmdline_p = cmd_line;
	*cmdline_p = cmd_line;


	parse_early_param();

	/* set up the bootmem stuff with available memory */
	/* set up the bootmem stuff with available memory */
	do_init_bootmem();
	do_init_bootmem();
	if ( ppc_md.progress ) ppc_md.progress("setup_arch: bootmem", 0x3eab);
	if ( ppc_md.progress ) ppc_md.progress("setup_arch: bootmem", 0x3eab);
+1 −1
Original line number Original line Diff line number Diff line
@@ -122,7 +122,7 @@ raw_ioctl(struct inode *inode, struct file *filp,
{
{
	struct block_device *bdev = filp->private_data;
	struct block_device *bdev = filp->private_data;


	return blkdev_ioctl(bdev->bd_inode, filp, command, arg);
	return blkdev_ioctl(bdev->bd_inode, NULL, command, arg);
}
}


static void bind_device(struct raw_config_request *rq)
static void bind_device(struct raw_config_request *rq)
+10 −109
Original line number Original line Diff line number Diff line
@@ -52,116 +52,17 @@ int pci_hotplug (struct device *dev, char **envp, int num_envp,
	if ((buffer_size - length <= 0) || (i >= num_envp))
	if ((buffer_size - length <= 0) || (i >= num_envp))
		return -ENOMEM;
		return -ENOMEM;


	envp[i] = NULL;
	envp[i++] = scratch;

	length += scnprintf (scratch, buffer_size - length,
	return 0;
			    "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x\n",
}
			    pdev->vendor, pdev->device,

			    pdev->subsystem_vendor, pdev->subsystem_device,
static int pci_visit_bus (struct pci_visit * fn, struct pci_bus_wrapped *wrapped_bus, struct pci_dev_wrapped *wrapped_parent)
			    (u8)(pdev->class >> 16), (u8)(pdev->class >> 8),
{
			    (u8)(pdev->class));
	struct list_head *ln;
	if ((buffer_size - length <= 0) || (i >= num_envp))
	struct pci_dev *dev;
		return -ENOMEM;
	struct pci_dev_wrapped wrapped_dev;
	int result = 0;

	pr_debug("PCI: Scanning bus %04x:%02x\n", pci_domain_nr(wrapped_bus->bus),
		wrapped_bus->bus->number);

	if (fn->pre_visit_pci_bus) {
		result = fn->pre_visit_pci_bus(wrapped_bus, wrapped_parent);
		if (result)
			return result;
	}

	ln = wrapped_bus->bus->devices.next; 
	while (ln != &wrapped_bus->bus->devices) {
		dev = pci_dev_b(ln);
		ln = ln->next;

		memset(&wrapped_dev, 0, sizeof(struct pci_dev_wrapped));
		wrapped_dev.dev = dev;

		result = pci_visit_dev(fn, &wrapped_dev, wrapped_bus);
		if (result)
			return result;
	}

	if (fn->post_visit_pci_bus)
		result = fn->post_visit_pci_bus(wrapped_bus, wrapped_parent);

	return result;
}

static int pci_visit_bridge (struct pci_visit * fn,
			     struct pci_dev_wrapped *wrapped_dev,
			     struct pci_bus_wrapped *wrapped_parent)
{
	struct pci_bus *bus;
	struct pci_bus_wrapped wrapped_bus;
	int result = 0;

	pr_debug("PCI: Scanning bridge %s\n", pci_name(wrapped_dev->dev));

	if (fn->visit_pci_dev) {
		result = fn->visit_pci_dev(wrapped_dev, wrapped_parent);
		if (result)
			return result;
	}

	bus = wrapped_dev->dev->subordinate;
	if (bus) {
		memset(&wrapped_bus, 0, sizeof(struct pci_bus_wrapped));
		wrapped_bus.bus = bus;

		result = pci_visit_bus(fn, &wrapped_bus, wrapped_dev);
	}
	return result;
}


/**
	envp[i] = NULL;
 * pci_visit_dev - scans the pci buses.
 * @fn: callback functions that are called while visiting
 * @wrapped_dev: the device to scan
 * @wrapped_parent: the bus where @wrapped_dev is connected to
 *
 * Every bus and every function is presented to a custom
 * function that can act upon it.
 */
int pci_visit_dev(struct pci_visit *fn, struct pci_dev_wrapped *wrapped_dev,
		  struct pci_bus_wrapped *wrapped_parent)
{
	struct pci_dev* dev = wrapped_dev ? wrapped_dev->dev : NULL;
	int result = 0;


	if (!dev)
	return 0;
	return 0;

	if (fn->pre_visit_pci_dev) {
		result = fn->pre_visit_pci_dev(wrapped_dev, wrapped_parent);
		if (result)
			return result;
	}

	switch (dev->class >> 8) {
		case PCI_CLASS_BRIDGE_PCI:
			result = pci_visit_bridge(fn, wrapped_dev,
						  wrapped_parent);
			if (result)
				return result;
			break;
		default:
			pr_debug("PCI: Scanning device %s\n", pci_name(dev));
			if (fn->visit_pci_dev) {
				result = fn->visit_pci_dev (wrapped_dev,
							    wrapped_parent);
				if (result)
					return result;
			}
	}

	if (fn->post_visit_pci_dev)
		result = fn->post_visit_pci_dev(wrapped_dev, wrapped_parent);

	return result;
}
}
EXPORT_SYMBOL(pci_visit_dev);
Loading