Merge branch 'pci/misc'
- use PCI_EXP_DEVCTL2_COMP_TIMEOUT in rapidio/tsi721 (Bjorn Helgaas) - remove possible NULL pointer dereference in of_pci_bus_find_domain_nr() (Shawn Lin) - report quirk timings with dev_info (Bjorn Helgaas) - report quirks that take longer than 10ms (Bjorn Helgaas) - add and use Altera Vendor ID (Johannes Thumshirn) - tidy Makefiles and comments (Bjorn Helgaas) * pci/misc: PCI: Always define the of_node helpers PCI: Tidy comments PCI: Tidy Makefiles mcb: Add Altera PCI ID to mcb-pci PCI: Add Altera vendor ID PCI: Report quirks that take more than 10ms PCI: Report quirk timings with pci_info() instead of pr_debug() PCI: Fix NULL pointer dereference in of_pci_bus_find_domain_nr() rapidio/tsi721: use PCI_EXP_DEVCTL2_COMP_TIMEOUT macro
This commit is contained in:
commit
43b90eaed5
43 changed files with 126 additions and 202 deletions
|
@ -24,7 +24,6 @@ MODULE_LICENSE("GPL v2");
|
|||
|
||||
#define PCI_DEVICE_ID_XILLYBUS 0xebeb
|
||||
|
||||
#define PCI_VENDOR_ID_ALTERA 0x1172
|
||||
#define PCI_VENDOR_ID_ACTEL 0x11aa
|
||||
#define PCI_VENDOR_ID_LATTICE 0x1204
|
||||
|
||||
|
|
|
@ -384,8 +384,6 @@ static int altera_cvp_probe(struct pci_dev *pdev,
|
|||
const struct pci_device_id *dev_id);
|
||||
static void altera_cvp_remove(struct pci_dev *pdev);
|
||||
|
||||
#define PCI_VENDOR_ID_ALTERA 0x1172
|
||||
|
||||
static struct pci_device_id altera_cvp_id_tbl[] = {
|
||||
{ PCI_VDEVICE(ALTERA, PCI_ANY_ID) },
|
||||
{ }
|
||||
|
|
|
@ -117,6 +117,7 @@ static void mcb_pci_remove(struct pci_dev *pdev)
|
|||
|
||||
static const struct pci_device_id mcb_pci_tbl[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_MEN, PCI_DEVICE_ID_MEN_CHAMELEON) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_ALTERA, PCI_DEVICE_ID_MEN_CHAMELEON) },
|
||||
{ 0 },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, mcb_pci_tbl);
|
||||
|
|
|
@ -1,61 +1,40 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Makefile for the PCI bus specific drivers.
|
||||
#
|
||||
|
||||
obj-$(CONFIG_PCI) += access.o bus.o probe.o host-bridge.o remove.o pci.o \
|
||||
pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \
|
||||
irq.o vpd.o setup-bus.o vc.o mmap.o setup-irq.o
|
||||
obj-$(CONFIG_PCI) += access.o bus.o probe.o host-bridge.o \
|
||||
remove.o pci.o pci-driver.o search.o \
|
||||
pci-sysfs.o rom.o setup-res.o irq.o vpd.o \
|
||||
setup-bus.o vc.o mmap.o setup-irq.o
|
||||
|
||||
ifdef CONFIG_PCI
|
||||
obj-$(CONFIG_PROC_FS) += proc.o
|
||||
obj-$(CONFIG_SYSFS) += slot.o
|
||||
obj-$(CONFIG_OF) += of.o
|
||||
obj-$(CONFIG_PROC_FS) += proc.o
|
||||
obj-$(CONFIG_SYSFS) += slot.o
|
||||
obj-$(CONFIG_OF) += of.o
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_PCI_QUIRKS) += quirks.o
|
||||
|
||||
# Build PCI Express stuff if needed
|
||||
obj-$(CONFIG_PCIEPORTBUS) += pcie/
|
||||
|
||||
# Build the PCI Hotplug drivers if we were asked to
|
||||
obj-$(CONFIG_HOTPLUG_PCI) += hotplug/
|
||||
|
||||
# Build the PCI MSI interrupt support
|
||||
obj-$(CONFIG_PCI_MSI) += msi.o
|
||||
|
||||
obj-$(CONFIG_PCI_ATS) += ats.o
|
||||
obj-$(CONFIG_PCI_IOV) += iov.o
|
||||
|
||||
#
|
||||
# ACPI Related PCI FW Functions
|
||||
# ACPI _DSM provided firmware instance and string name
|
||||
#
|
||||
obj-$(CONFIG_ACPI) += pci-acpi.o
|
||||
|
||||
# SMBIOS provided firmware instance and labels
|
||||
obj-$(CONFIG_PCI_LABEL) += pci-label.o
|
||||
|
||||
# Intel MID platform PM support
|
||||
obj-$(CONFIG_X86_INTEL_MID) += pci-mid.o
|
||||
|
||||
obj-$(CONFIG_PCI_SYSCALL) += syscall.o
|
||||
|
||||
obj-$(CONFIG_PCI_STUB) += pci-stub.o
|
||||
|
||||
obj-$(CONFIG_PCI_ECAM) += ecam.o
|
||||
|
||||
obj-$(CONFIG_PCI_QUIRKS) += quirks.o
|
||||
obj-$(CONFIG_PCIEPORTBUS) += pcie/
|
||||
obj-$(CONFIG_HOTPLUG_PCI) += hotplug/
|
||||
obj-$(CONFIG_PCI_MSI) += msi.o
|
||||
obj-$(CONFIG_PCI_ATS) += ats.o
|
||||
obj-$(CONFIG_PCI_IOV) += iov.o
|
||||
obj-$(CONFIG_ACPI) += pci-acpi.o
|
||||
obj-$(CONFIG_PCI_LABEL) += pci-label.o
|
||||
obj-$(CONFIG_X86_INTEL_MID) += pci-mid.o
|
||||
obj-$(CONFIG_PCI_SYSCALL) += syscall.o
|
||||
obj-$(CONFIG_PCI_STUB) += pci-stub.o
|
||||
obj-$(CONFIG_PCI_ECAM) += ecam.o
|
||||
obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o
|
||||
|
||||
ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG
|
||||
|
||||
# PCI host controller drivers
|
||||
obj-y += host/
|
||||
obj-y += switch/
|
||||
|
||||
obj-$(CONFIG_PCI_ENDPOINT) += endpoint/
|
||||
obj-y += host/
|
||||
obj-y += switch/
|
||||
|
||||
# Endpoint library must be initialized before its users
|
||||
obj-$(CONFIG_PCI_ENDPOINT) += endpoint/
|
||||
|
||||
obj-$(CONFIG_PCIE_CADENCE) += cadence/
|
||||
# pcie-hisi.o quirks are needed even without CONFIG_PCIE_DW
|
||||
obj-y += dwc/
|
||||
|
||||
ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
DEFINE_RAW_SPINLOCK(pci_lock);
|
||||
|
||||
/*
|
||||
* Wrappers for all PCI configuration access functions. They just check
|
||||
* alignment, do locking and call the low-level functions pointed to
|
||||
* by pci_dev->ops.
|
||||
* Wrappers for all PCI configuration access functions. They just check
|
||||
* alignment, do locking and call the low-level functions pointed to
|
||||
* by pci_dev->ops.
|
||||
*/
|
||||
|
||||
#define PCI_byte_BAD 0
|
||||
|
@ -686,8 +686,10 @@ void pci_cfg_access_unlock(struct pci_dev *dev)
|
|||
|
||||
raw_spin_lock_irqsave(&pci_lock, flags);
|
||||
|
||||
/* This indicates a problem in the caller, but we don't need
|
||||
* to kill them, unlike a double-block above. */
|
||||
/*
|
||||
* This indicates a problem in the caller, but we don't need
|
||||
* to kill them, unlike a double-block above.
|
||||
*/
|
||||
WARN_ON(!dev->block_cfg_access);
|
||||
|
||||
dev->block_cfg_access = 0;
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/ats.c
|
||||
*
|
||||
* Copyright (C) 2009 Intel Corporation, Yu Zhao <yu.zhao@intel.com>
|
||||
* Copyright (C) 2011 Advanced Micro Devices,
|
||||
*
|
||||
* PCI Express I/O Virtualization (IOV) support.
|
||||
* PCI Express I/O Virtualization (IOV) support
|
||||
* Address Translation Service 1.0
|
||||
* Page Request Interface added by Joerg Roedel <joerg.roedel@amd.com>
|
||||
* PASID support added by Joerg Roedel <joerg.roedel@amd.com>
|
||||
*
|
||||
* Copyright (C) 2009 Intel Corporation, Yu Zhao <yu.zhao@intel.com>
|
||||
* Copyright (C) 2011 Advanced Micro Devices,
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/bus.c
|
||||
*
|
||||
* From setup-res.c, by:
|
||||
* Dave Rusling (david.rusling@reo.mts.dec.com)
|
||||
* David Mosberger (davidm@cs.arizona.edu)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* host bridge related code
|
||||
* Host bridge related code
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/iov.c
|
||||
*
|
||||
* Copyright (C) 2009 Intel Corporation, Yu Zhao <yu.zhao@intel.com>
|
||||
*
|
||||
* PCI Express I/O Virtualization (IOV) support.
|
||||
* PCI Express I/O Virtualization (IOV) support
|
||||
* Single Root IOV 1.0
|
||||
* Address Translation Service 1.0
|
||||
*
|
||||
* Copyright (C) 2009 Intel Corporation, Yu Zhao <yu.zhao@intel.com>
|
||||
*/
|
||||
|
||||
#include <linux/pci.h>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* mmap.c — generic PCI resource mmap helper
|
||||
* Generic PCI resource mmap helper
|
||||
*
|
||||
* Copyright © 2017 Amazon.com, Inc. or its affiliates.
|
||||
*
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* File: msi.c
|
||||
* Purpose: PCI Message Signaled Interrupt (MSI)
|
||||
* PCI Message Signaled Interrupt (MSI)
|
||||
*
|
||||
* Copyright (C) 2003-2004 Intel
|
||||
* Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* File: pci-acpi.c
|
||||
* Purpose: Provide PCI support in ACPI
|
||||
* PCI support in ACPI
|
||||
*
|
||||
* Copyright (C) 2005 David Shaohua Li <shaohua.li@intel.com>
|
||||
* Copyright (C) 2004 Tom Long Nguyen <tom.l.nguyen@intel.com>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/pci-driver.c
|
||||
*
|
||||
* (C) Copyright 2002-2004, 2007 Greg Kroah-Hartman <greg@kroah.com>
|
||||
* (C) Copyright 2007 Novell Inc.
|
||||
*/
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Purpose: Export the firmware instance and label associated with
|
||||
* a pci device to sysfs
|
||||
* Export the firmware instance and label associated with a PCI device to
|
||||
* sysfs
|
||||
*
|
||||
* Copyright (C) 2010 Dell Inc.
|
||||
* by Narendra K <Narendra_K@dell.com>,
|
||||
* Jordan Hargrave <Jordan_Hargrave@dell.com>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/* pci-stub - simple stub driver to reserve a pci device
|
||||
/*
|
||||
* Simple stub driver to reserve a PCI device
|
||||
*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
* Author:
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/pci-sysfs.c
|
||||
*
|
||||
* (C) Copyright 2002-2004 Greg Kroah-Hartman <greg@kroah.com>
|
||||
* (C) Copyright 2002-2004 IBM Corp.
|
||||
* (C) Copyright 2003 Matthew Wilcox
|
||||
|
@ -12,7 +10,6 @@
|
|||
* File attributes for PCI devices
|
||||
*
|
||||
* Modeled after usb's driverfs.c
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* PCI Bus Services, see include/linux/pci.h for further explanation.
|
||||
* PCI Bus Services, see include/linux/pci.h for further explanation.
|
||||
*
|
||||
* Copyright 1993 -- 1997 Drew Eckhardt, Frederic Potter,
|
||||
* David Mosberger-Tang
|
||||
* Copyright 1993 -- 1997 Drew Eckhardt, Frederic Potter,
|
||||
* David Mosberger-Tang
|
||||
*
|
||||
* Copyright 1997 -- 2000 Martin Mares <mj@ucw.cz>
|
||||
* Copyright 1997 -- 2000 Martin Mares <mj@ucw.cz>
|
||||
*/
|
||||
|
||||
#include <linux/acpi.h>
|
||||
|
@ -4126,6 +4126,7 @@ void pci_reset_secondary_bus(struct pci_dev *dev)
|
|||
pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &ctrl);
|
||||
ctrl |= PCI_BRIDGE_CTL_BUS_RESET;
|
||||
pci_write_config_word(dev, PCI_BRIDGE_CONTROL, ctrl);
|
||||
|
||||
/*
|
||||
* PCI spec v3.0 7.6.4.2 requires minimum Trst of 1ms. Double
|
||||
* this to 2ms to ensure that we meet the minimum requirement.
|
||||
|
@ -5728,8 +5729,9 @@ static int of_pci_bus_find_domain_nr(struct device *parent)
|
|||
use_dt_domains = 0;
|
||||
domain = pci_get_new_domain_nr();
|
||||
} else {
|
||||
dev_err(parent, "Node %pOF has inconsistent \"linux,pci-domain\" property in DT\n",
|
||||
parent->of_node);
|
||||
if (parent)
|
||||
pr_err("Node %pOF has ", parent->of_node);
|
||||
pr_err("Inconsistent \"linux,pci-domain\" property in DT\n");
|
||||
domain = -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Makefile for PCI-Express PORT Driver
|
||||
#
|
||||
|
||||
# Build PCI Express ASPM if needed
|
||||
obj-$(CONFIG_PCIEASPM) += aspm.o
|
||||
# Makefile for PCI Express features and port driver
|
||||
|
||||
pcieportdrv-y := portdrv_core.o portdrv_pci.o portdrv_bus.o
|
||||
pcieportdrv-$(CONFIG_ACPI) += portdrv_acpi.o
|
||||
|
||||
obj-$(CONFIG_PCIEPORTBUS) += pcieportdrv.o
|
||||
|
||||
# Build PCI Express AER if needed
|
||||
obj-$(CONFIG_PCIEASPM) += aspm.o
|
||||
obj-$(CONFIG_PCIEAER) += aer/
|
||||
|
||||
obj-$(CONFIG_PCIE_PME) += pme.o
|
||||
|
||||
obj-$(CONFIG_PCIE_DPC) += pcie-dpc.o
|
||||
obj-$(CONFIG_PCIE_PTM) += ptm.o
|
||||
obj-$(CONFIG_PCIE_PME) += pme.o
|
||||
obj-$(CONFIG_PCIE_DPC) += pcie-dpc.o
|
||||
obj-$(CONFIG_PCIE_PTM) += ptm.o
|
||||
|
|
|
@ -1,15 +1,12 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/pcie/aer/aerdrv.c
|
||||
*
|
||||
* This file implements the AER root port service driver. The driver will
|
||||
* register an irq handler. When root port triggers an AER interrupt, the irq
|
||||
* handler will collect root port status and schedule a work.
|
||||
* Implement the AER root port service driver. The driver registers an IRQ
|
||||
* handler. When a root port triggers an AER interrupt, the IRQ handler
|
||||
* collects root port status and schedules work.
|
||||
*
|
||||
* Copyright (C) 2006 Intel Corp.
|
||||
* Tom Long Nguyen (tom.l.nguyen@intel.com)
|
||||
* Zhang Yanmin (yanmin.zhang@intel.com)
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/pci.h>
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
* Copyright (C) 2006 Intel Corp.
|
||||
* Tom Long Nguyen (tom.l.nguyen@intel.com)
|
||||
* Zhang Yanmin (yanmin.zhang@intel.com)
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _AERDRV_H_
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
* Copyright (C) 2006 Intel Corp.
|
||||
* Tom Long Nguyen (tom.l.nguyen@intel.com)
|
||||
* Zhang Yanmin (yanmin.zhang@intel.com)
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/pcie/aer/aerdrv_core.c
|
||||
*
|
||||
* This file implements the core part of PCIe AER. When a PCIe
|
||||
* error is delivered, an error message will be collected and printed to
|
||||
* console, then, an error recovery procedure will be executed by following
|
||||
* the PCI error recovery rules.
|
||||
* Implement the core part of PCIe AER. When a PCIe error is delivered, an
|
||||
* error message will be collected and printed to console, then an error
|
||||
* recovery procedure will be executed by following the PCI error recovery
|
||||
* rules.
|
||||
*
|
||||
* Copyright (C) 2006 Intel Corp.
|
||||
* Tom Long Nguyen (tom.l.nguyen@intel.com)
|
||||
* Zhang Yanmin (yanmin.zhang@intel.com)
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/pcie/aer/aerdrv_errprint.c
|
||||
*
|
||||
* Format error messages and print them to console.
|
||||
*
|
||||
* Copyright (C) 2006 Intel Corp.
|
||||
* Tom Long Nguyen (tom.l.nguyen@intel.com)
|
||||
* Zhang Yanmin (yanmin.zhang@intel.com)
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Enables/disables PCIe ECRC checking.
|
||||
* Enable/disable PCIe ECRC checking
|
||||
*
|
||||
* (C) Copyright 2009 Hewlett-Packard Development Company, L.P.
|
||||
* (C) Copyright 2009 Hewlett-Packard Development Company, L.P.
|
||||
* Andrew Patterson <andrew.patterson@hp.com>
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* File: drivers/pci/pcie/aspm.c
|
||||
* Enabling PCIe link L0s/L1 state and Clock Power Management
|
||||
* Enable PCIe link L0s/L1 state and Clock Power Management
|
||||
*
|
||||
* Copyright (C) 2007 Intel
|
||||
* Copyright (C) Zhang Yanmin (yanmin.zhang@intel.com)
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* File: portdrv.h
|
||||
* Purpose: PCI Express Port Bus Driver's Internal Data Structures
|
||||
*
|
||||
* Copyright (C) 2004 Intel
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* File: portdrv_core.c
|
||||
* Purpose: PCI Express Port Bus Driver's Core Functions
|
||||
*
|
||||
* Copyright (C) 2004 Intel
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* File: portdrv_pci.c
|
||||
* Purpose: PCI Express Port Bus Driver
|
||||
* Author: Tom Nguyen <tom.l.nguyen@intel.com>
|
||||
* Version: v1.0
|
||||
*
|
||||
* Copyright (C) 2004 Intel
|
||||
* Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* probe.c - PCI detection and setup code
|
||||
* PCI detection and setup code
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Procfs interface for the PCI bus.
|
||||
* Procfs interface for the PCI bus
|
||||
*
|
||||
* Copyright (c) 1997--1999 Martin Mares <mj@ucw.cz>
|
||||
* Copyright (c) 1997--1999 Martin Mares <mj@ucw.cz>
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* This file contains work-arounds for many known PCI hardware
|
||||
* bugs. Devices present only on certain architectures (host
|
||||
* bridges et cetera) should be handled in arch-specific code.
|
||||
* This file contains work-arounds for many known PCI hardware bugs.
|
||||
* Devices present only on certain architectures (host bridges et cetera)
|
||||
* should be handled in arch-specific code.
|
||||
*
|
||||
* Note: any quirks for hotpluggable devices must _NOT_ be declared __init.
|
||||
* Note: any quirks for hotpluggable devices must _NOT_ be declared __init.
|
||||
*
|
||||
* Copyright (c) 1999 Martin Mares <mj@ucw.cz>
|
||||
* Copyright (c) 1999 Martin Mares <mj@ucw.cz>
|
||||
*
|
||||
* Init/reset quirks for USB host controllers should be in the
|
||||
* USB quirks file, where their drivers can access reuse it.
|
||||
* Init/reset quirks for USB host controllers should be in the USB quirks
|
||||
* file, where their drivers can use them.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
@ -3104,16 +3104,10 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
|
|||
static ktime_t fixup_debug_start(struct pci_dev *dev,
|
||||
void (*fn)(struct pci_dev *dev))
|
||||
{
|
||||
ktime_t calltime = 0;
|
||||
if (initcall_debug)
|
||||
pci_info(dev, "calling %pF @ %i\n", fn, task_pid_nr(current));
|
||||
|
||||
pci_dbg(dev, "calling %pF\n", fn);
|
||||
if (initcall_debug) {
|
||||
pr_debug("calling %pF @ %i for %s\n",
|
||||
fn, task_pid_nr(current), dev_name(&dev->dev));
|
||||
calltime = ktime_get();
|
||||
}
|
||||
|
||||
return calltime;
|
||||
return ktime_get();
|
||||
}
|
||||
|
||||
static void fixup_debug_report(struct pci_dev *dev, ktime_t calltime,
|
||||
|
@ -3122,13 +3116,11 @@ static void fixup_debug_report(struct pci_dev *dev, ktime_t calltime,
|
|||
ktime_t delta, rettime;
|
||||
unsigned long long duration;
|
||||
|
||||
if (initcall_debug) {
|
||||
rettime = ktime_get();
|
||||
delta = ktime_sub(rettime, calltime);
|
||||
duration = (unsigned long long) ktime_to_ns(delta) >> 10;
|
||||
pr_debug("pci fixup %pF returned after %lld usecs for %s\n",
|
||||
fn, duration, dev_name(&dev->dev));
|
||||
}
|
||||
rettime = ktime_get();
|
||||
delta = ktime_sub(rettime, calltime);
|
||||
duration = (unsigned long long) ktime_to_ns(delta) >> 10;
|
||||
if (initcall_debug || duration > 10000)
|
||||
pci_info(dev, "%pF took %lld usecs\n", fn, duration);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/rom.c
|
||||
* PCI ROM access routines
|
||||
*
|
||||
* (C) Copyright 2004 Jon Smirl <jonsmirl@yahoo.com>
|
||||
* (C) Copyright 2004 Silicon Graphics, Inc. Jesse Barnes <jbarnes@sgi.com>
|
||||
*
|
||||
* PCI ROM access routines
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/export.h>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* PCI searching functions.
|
||||
* PCI searching functions
|
||||
*
|
||||
* Copyright (C) 1993 -- 1997 Drew Eckhardt, Frederic Potter,
|
||||
* Copyright (C) 1993 -- 1997 Drew Eckhardt, Frederic Potter,
|
||||
* David Mosberger-Tang
|
||||
* Copyright (C) 1997 -- 2000 Martin Mares <mj@ucw.cz>
|
||||
* Copyright (C) 2003 -- 2004 Greg Kroah-Hartman <greg@kroah.com>
|
||||
* Copyright (C) 1997 -- 2000 Martin Mares <mj@ucw.cz>
|
||||
* Copyright (C) 2003 -- 2004 Greg Kroah-Hartman <greg@kroah.com>
|
||||
*/
|
||||
|
||||
#include <linux/pci.h>
|
||||
|
|
|
@ -1,16 +1,12 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/setup-bus.c
|
||||
* Support routines for initializing a PCI subsystem
|
||||
*
|
||||
* Extruded from code written by
|
||||
* Dave Rusling (david.rusling@reo.mts.dec.com)
|
||||
* David Mosberger (davidm@cs.arizona.edu)
|
||||
* David Miller (davem@redhat.com)
|
||||
*
|
||||
* Support routines for initializing a PCI subsystem.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Nov 2000, Ivan Kokshaysky <ink@jurassic.park.msu.ru>
|
||||
* PCI-PCI bridges cleanup, sorted resource allocation.
|
||||
* Feb 2002, Ivan Kokshaysky <ink@jurassic.park.msu.ru>
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/setup-irq.c
|
||||
* Support routines for initializing a PCI subsystem
|
||||
*
|
||||
* Extruded from code written by
|
||||
* Dave Rusling (david.rusling@reo.mts.dec.com)
|
||||
* David Mosberger (davidm@cs.arizona.edu)
|
||||
* David Miller (davem@redhat.com)
|
||||
*
|
||||
* Support routines for initializing a PCI subsystem.
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -1,18 +1,14 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/setup-res.c
|
||||
* Support routines for initializing a PCI subsystem
|
||||
*
|
||||
* Extruded from code written by
|
||||
* Dave Rusling (david.rusling@reo.mts.dec.com)
|
||||
* David Mosberger (davidm@cs.arizona.edu)
|
||||
* David Miller (davem@redhat.com)
|
||||
*
|
||||
* Support routines for initializing a PCI subsystem.
|
||||
*/
|
||||
|
||||
/* fixed for multiple pci buses, 1999 Andrea Arcangeli <andrea@suse.de> */
|
||||
|
||||
/*
|
||||
* Fixed for multiple PCI buses, 1999 Andrea Arcangeli <andrea@suse.de>
|
||||
*
|
||||
* Nov 2000, Ivan Kokshaysky <ink@jurassic.park.msu.ru>
|
||||
* Resource sorting
|
||||
*/
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/pci/slot.c
|
||||
* Copyright (C) 2006 Matthew Wilcox <matthew@wil.cx>
|
||||
* Copyright (C) 2006-2009 Hewlett-Packard Development Company, L.P.
|
||||
* Alex Chiang <achiang@hp.com>
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* pci_syscall.c
|
||||
*
|
||||
* For architectures where we want to allow direct access
|
||||
* to the PCI config stuff - it would probably be preferable
|
||||
* on PCs too, but there people just do it by hand with the
|
||||
* magic northbridge registers..
|
||||
* For architectures where we want to allow direct access to the PCI config
|
||||
* stuff - it would probably be preferable on PCs too, but there people
|
||||
* just do it by hand with the magic northbridge registers.
|
||||
*/
|
||||
|
||||
#include <linux/errno.h>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* File: vpd.c
|
||||
* Purpose: Provide PCI VPD support
|
||||
* PCI VPD support
|
||||
*
|
||||
* Copyright (C) 2010 Broadcom Corporation.
|
||||
*/
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Xen PCI Frontend.
|
||||
* Xen PCI Frontend
|
||||
*
|
||||
* Author: Ryan Wilson <hap9@epoch.ncsc.mil>
|
||||
* Author: Ryan Wilson <hap9@epoch.ncsc.mil>
|
||||
*/
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
|
|
|
@ -2880,8 +2880,9 @@ static int tsi721_probe(struct pci_dev *pdev,
|
|||
"Invalid MRRS override value %d", pcie_mrrs);
|
||||
}
|
||||
|
||||
/* Adjust PCIe completion timeout. */
|
||||
pcie_capability_clear_and_set_word(pdev, PCI_EXP_DEVCTL2, 0xf, 0x2);
|
||||
/* Set PCIe completion timeout to 1-10ms */
|
||||
pcie_capability_clear_and_set_word(pdev, PCI_EXP_DEVCTL2,
|
||||
PCI_EXP_DEVCTL2_COMP_TIMEOUT, 0x2);
|
||||
|
||||
/*
|
||||
* FIXUP: correct offsets of MSI-X tables in the MSI-X Capability Block
|
||||
|
|
|
@ -2180,6 +2180,21 @@ int pci_parse_request_of_pci_ranges(struct device *dev,
|
|||
/* Arch may override this (weak) */
|
||||
struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus);
|
||||
|
||||
#else /* CONFIG_OF */
|
||||
static inline void pci_set_of_node(struct pci_dev *dev) { }
|
||||
static inline void pci_release_of_node(struct pci_dev *dev) { }
|
||||
static inline void pci_set_bus_of_node(struct pci_bus *bus) { }
|
||||
static inline void pci_release_bus_of_node(struct pci_bus *bus) { }
|
||||
static inline struct irq_domain *
|
||||
pci_host_bridge_of_msi_domain(struct pci_bus *bus) { return NULL; }
|
||||
static inline int pci_parse_request_of_pci_ranges(struct device *dev,
|
||||
struct list_head *resources,
|
||||
struct resource **bus_range)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif /* CONFIG_OF */
|
||||
|
||||
static inline struct device_node *
|
||||
pci_device_to_OF_node(const struct pci_dev *pdev)
|
||||
{
|
||||
|
@ -2191,23 +2206,6 @@ static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus)
|
|||
return bus ? bus->dev.of_node : NULL;
|
||||
}
|
||||
|
||||
#else /* CONFIG_OF */
|
||||
static inline void pci_set_of_node(struct pci_dev *dev) { }
|
||||
static inline void pci_release_of_node(struct pci_dev *dev) { }
|
||||
static inline void pci_set_bus_of_node(struct pci_bus *bus) { }
|
||||
static inline void pci_release_bus_of_node(struct pci_bus *bus) { }
|
||||
static inline struct device_node *
|
||||
pci_device_to_OF_node(const struct pci_dev *pdev) { return NULL; }
|
||||
static inline struct irq_domain *
|
||||
pci_host_bridge_of_msi_domain(struct pci_bus *bus) { return NULL; }
|
||||
static inline int pci_parse_request_of_pci_ranges(struct device *dev,
|
||||
struct list_head *resources,
|
||||
struct resource **bus_range)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif /* CONFIG_OF */
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
struct irq_domain *pci_host_bridge_acpi_msi_domain(struct pci_bus *bus);
|
||||
|
||||
|
|
|
@ -1561,6 +1561,8 @@
|
|||
#define PCI_DEVICE_ID_SERVERWORKS_CSB6LPC 0x0227
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_HT1100LD 0x0408
|
||||
|
||||
#define PCI_VENDOR_ID_ALTERA 0x1172
|
||||
|
||||
#define PCI_VENDOR_ID_SBE 0x1176
|
||||
#define PCI_DEVICE_ID_SBE_WANXL100 0x0301
|
||||
#define PCI_DEVICE_ID_SBE_WANXL200 0x0302
|
||||
|
|
Loading…
Reference in a new issue