History

Merge tag 'pci-v5.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

Pull PCI updates from Bjorn Helgaas: "Enumeration changes: - Evaluate PCI Boot Configuration _DSM to learn if firmware wants us to preserve its resource assignments (Benjamin Herrenschmidt) - Simplify resource distribution (Nicholas Johnson) - Decode 32 GT/s link speed (Gustavo Pimentel) Virtualization: - Fix incorrect caching of VF config space size (Alex Williamson) - Fix VF driver probing sysfs knobs (Alex Williamson) Peer-to-peer DMA: - Fix dma_virt_ops check (Logan Gunthorpe) Altera host bridge driver: - Allow building as module (Ley Foon Tan) Armada 8K host bridge driver: - add PHYs support (Miquel Raynal) DesignWare host bridge driver: - Export APIs to support removable loadable module (Vidya Sagar) - Enable Relaxed Ordering erratum workaround only on Tegra20 & Tegra30 (Vidya Sagar) Hyper-V host bridge driver: - Fix use-after-free in eject (Dexuan Cui) Mobiveil host bridge driver: - Clean up and fix many issues, including non-identify mapped windows, 64-bit windows, multi-MSI, class code, INTx clearing (Hou Zhiqiang) Qualcomm host bridge driver: - Use clk bulk API for 2.4.0 controllers (Bjorn Andersson) - Add QCS404 support (Bjorn Andersson) - Assert PERST for at least 100ms (Niklas Cassel) R-Car host bridge driver: - Add r8a774a1 DT support (Biju Das) Tegra host bridge driver: - Add support for Gen2, opportunistic UpdateFC and ACK (PCIe protocol details) AER, GPIO-based PERST# (Manikanta Maddireddy) - Fix many issues, including power-on failure cases, interrupt masking in suspend, UPHY settings, AFI dynamic clock gating, pending DLL transactions (Manikanta Maddireddy) Xilinx host bridge driver: - Fix NWL Multi-MSI programming (Bharat Kumar Gogada) Endpoint support: - Fix 64bit BAR support (Alan Mikhak) - Fix pcitest build issues (Alan Mikhak, Andy Shevchenko) Bug fixes: - Fix NVIDIA GPU multi-function power dependencies (Abhishek Sahu) - Fix NVIDIA GPU HDA enablement issue (Lukas Wunner) - Ignore lockdep for sysfs "remove" (Marek Vasut) Misc: - Convert docs to reST (Changbin Du, Mauro Carvalho Chehab)" * tag 'pci-v5.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (107 commits) PCI: Enable NVIDIA HDA controllers tools: PCI: Fix installation when `make tools/pci_install` PCI: dwc: pci-dra7xx: Fix compilation when !CONFIG_GPIOLIB PCI: Fix typos and whitespace errors PCI: mobiveil: Fix INTx interrupt clearing in mobiveil_pcie_isr() PCI: mobiveil: Fix infinite-loop in the INTx handling function PCI: mobiveil: Move PCIe PIO enablement out of inbound window routine PCI: mobiveil: Add upper 32-bit PCI base address setup in inbound window PCI: mobiveil: Add upper 32-bit CPU base address setup in outbound window PCI: mobiveil: Mask out hardcoded bits in inbound/outbound windows setup PCI: mobiveil: Clear the control fields before updating it PCI: mobiveil: Add configured inbound windows counter PCI: mobiveil: Fix the valid check for inbound and outbound windows PCI: mobiveil: Clean-up program_{ib/ob}_windows() PCI: mobiveil: Remove an unnecessary return value check PCI: mobiveil: Fix error return values PCI: mobiveil: Refactor the MEM/IO outbound window initialization PCI: mobiveil: Make some register updates more readable PCI: mobiveil: Reformat the code for readability dt-bindings: PCI: mobiveil: Change gpio_slave and apb_csr to optional ...

Linus Torvalds committed 7 years ago

Commit fb4da212 parents 2a3c389 7b4b0f6117 files · +4502 −2994Browse files

Showing the changes to include/linux (6 of 117 files). Show all

Unified · Split

6 files
  1. include/linux/interrupt.h +1 −1
  2. include/linux/mod_devicetable.h +24 −5
  3. include/linux/pci-acpi.h +4 −3
  4. include/linux/pci.h +51 −2
  5. include/linux/pci_ids.h +4 −3
  6. include/linux/pm.h +1 −1
include/linux/interrupt.h+1−1
@@ -52,7 +52,7 @@ · 51 unmodified lines
52 * irq line disabled until the threaded handler has been run.52 * irq line disabled until the threaded handler has been run.
53 * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend. Does not guarantee53 * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend. Does not guarantee
54 * that this interrupt will wake the system from a suspended54 * that this interrupt will wake the system from a suspended
55 * state. See Documentation/power/suspend-and-interrupts.txt55 * state. See Documentation/power/suspend-and-interrupts.rst
56 * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set56 * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set
57 * IRQF_NO_THREAD - Interrupt cannot be threaded57 * IRQF_NO_THREAD - Interrupt cannot be threaded
58 * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device58 * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device
include/linux/mod_devicetable.h+24−5
@@ -16,6 +16,25 @@ typedef unsigned long kernel_ulong_t; · 15 unmodified lines
16 16
17#define PCI_ANY_ID (~0)17#define PCI_ANY_ID (~0)
18 18
19/**
20 * struct pci_device_id - PCI device ID structure
21 * @vendor: Vendor ID to match (or PCI_ANY_ID)
22 * @device: Device ID to match (or PCI_ANY_ID)
23 * @subvendor: Subsystem vendor ID to match (or PCI_ANY_ID)
24 * @subdevice: Subsystem device ID to match (or PCI_ANY_ID)
25 * @class: Device class, subclass, and "interface" to match.
26 * See Appendix D of the PCI Local Bus Spec or
27 * include/linux/pci_ids.h for a full list of classes.
28 * Most drivers do not need to specify class/class_mask
29 * as vendor/device is normally sufficient.
30 * @class_mask: Limit which sub-fields of the class field are compared.
31 * See drivers/scsi/sym53c8xx_2/ for example of usage.
32 * @driver_data: Data private to the driver.
33 * Most drivers don't need to use driver_data field.
34 * Best practice is to use driver_data as an index
35 * into a static list of equivalent device types,
36 * instead of using it as a pointer.
37 */
19struct pci_device_id {38struct pci_device_id {
20 __u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID*/39 __u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID*/
21 __u32 subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */40 __u32 subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */
@@ -257,17 +276,17 @@ struct pcmcia_device_id { · 235 unmodified lines
257 __u16 match_flags;276 __u16 match_flags;
258 277
259 __u16 manf_id;278 __u16 manf_id;
260 __u16 card_id;279 __u16 card_id;
261 280
262 __u8 func_id;281 __u8 func_id;
263 282
264 /* for real multi-function devices */283 /* for real multi-function devices */
265 __u8 function;284 __u8 function;
266 285
267 /* for pseudo multi-function devices */286 /* for pseudo multi-function devices */
268 __u8 device_no;287 __u8 device_no;
269 288
270 __u32 prod_id_hash[4];289 __u32 prod_id_hash[4];
271 290
272 /* not matched against in kernelspace */291 /* not matched against in kernelspace */
273 const char * prod_id[4];292 const char * prod_id[4];
include/linux/pci-acpi.h+4−3
@@ -107,9 +107,10 @@ static inline void acpiphp_check_host_bridge(struct acpi_device *adev) { } · 106 unmodified lines
107#endif107#endif
108 108
109extern const guid_t pci_acpi_dsm_guid;109extern const guid_t pci_acpi_dsm_guid;
110#define DEVICE_LABEL_DSM 0x07110#define IGNORE_PCI_BOOT_CONFIG_DSM 0x05
111#define RESET_DELAY_DSM 0x08111#define DEVICE_LABEL_DSM 0x07
112#define FUNCTION_DELAY_DSM 0x09112#define RESET_DELAY_DSM 0x08
113#define FUNCTION_DELAY_DSM 0x09
113 114
114#else /* CONFIG_ACPI */115#else /* CONFIG_ACPI */
115static inline void acpi_pci_add_bus(struct pci_bus *bus) { }116static inline void acpi_pci_add_bus(struct pci_bus *bus) { }
include/linux/pci.h+51−2
@@ -151,6 +151,8 @@ static inline const char *pci_power_name(pci_power_t state) · 150 unmodified lines
151#define PCI_PM_BUS_WAIT 50151#define PCI_PM_BUS_WAIT 50
152 152
153/**153/**
154 * typedef pci_channel_state_t
155 *
154 * The pci_channel state describes connectivity between the CPU and156 * The pci_channel state describes connectivity between the CPU and
155 * the PCI device. If some PCI bus between here and the PCI device157 * the PCI device. If some PCI bus between here and the PCI device
156 * has crashed or locked up, this info is reflected here.158 * has crashed or locked up, this info is reflected here.
@@ -258,6 +260,7 @@ enum pci_bus_speed { · 101 unmodified lines
258 PCIE_SPEED_5_0GT = 0x15,260 PCIE_SPEED_5_0GT = 0x15,
259 PCIE_SPEED_8_0GT = 0x16,261 PCIE_SPEED_8_0GT = 0x16,
260 PCIE_SPEED_16_0GT = 0x17,262 PCIE_SPEED_16_0GT = 0x17,
263 PCIE_SPEED_32_0GT = 0x18,
261 PCI_SPEED_UNKNOWN = 0xff,264 PCI_SPEED_UNKNOWN = 0xff,
262};265};
263 266
@@ -383,7 +386,7 @@ struct pci_dev { · 119 unmodified lines
383 386
384 unsigned int is_busmaster:1; /* Is busmaster */387 unsigned int is_busmaster:1; /* Is busmaster */
385 unsigned int no_msi:1; /* May not use MSI */388 unsigned int no_msi:1; /* May not use MSI */
386 unsigned int no_64bit_msi:1; /* May only use 32-bit MSIs */389 unsigned int no_64bit_msi:1; /* May only use 32-bit MSIs */
387 unsigned int block_cfg_access:1; /* Config space access blocked */390 unsigned int block_cfg_access:1; /* Config space access blocked */
388 unsigned int broken_parity_status:1; /* Generates false positive parity */391 unsigned int broken_parity_status:1; /* Generates false positive parity */
389 unsigned int irq_reroute_variant:2; /* Needs IRQ rerouting variant */392 unsigned int irq_reroute_variant:2; /* Needs IRQ rerouting variant */
@@ -506,6 +509,8 @@ struct pci_host_bridge { · 116 unmodified lines
506 unsigned int native_shpc_hotplug:1; /* OS may use SHPC hotplug */509 unsigned int native_shpc_hotplug:1; /* OS may use SHPC hotplug */
507 unsigned int native_pme:1; /* OS may use PCIe PME */510 unsigned int native_pme:1; /* OS may use PCIe PME */
508 unsigned int native_ltr:1; /* OS may use PCIe LTR */511 unsigned int native_ltr:1; /* OS may use PCIe LTR */
512 unsigned int preserve_config:1; /* Preserve FW resource setup */
513
509 /* Resource alignment requirements */514 /* Resource alignment requirements */
510 resource_size_t (*align_resource)(struct pci_dev *dev,515 resource_size_t (*align_resource)(struct pci_dev *dev,
511 const struct resource *res,516 const struct resource *res,
@@ -776,6 +781,50 @@ struct pci_error_handlers { · 264 unmodified lines
776 781
777 782
778struct module;783struct module;
784
785/**
786 * struct pci_driver - PCI driver structure
787 * @node: List of driver structures.
788 * @name: Driver name.
789 * @id_table: Pointer to table of device IDs the driver is
790 * interested in. Most drivers should export this
791 * table using MODULE_DEVICE_TABLE(pci,...).
792 * @probe: This probing function gets called (during execution
793 * of pci_register_driver() for already existing
794 * devices or later if a new device gets inserted) for
795 * all PCI devices which match the ID table and are not
796 * "owned" by the other drivers yet. This function gets
797 * passed a "struct pci_dev \*" for each device whose
798 * entry in the ID table matches the device. The probe
799 * function returns zero when the driver chooses to
800 * take "ownership" of the device or an error code
801 * (negative number) otherwise.
802 * The probe function always gets called from process
803 * context, so it can sleep.
804 * @remove: The remove() function gets called whenever a device
805 * being handled by this driver is removed (either during
806 * deregistration of the driver or when it's manually
807 * pulled out of a hot-pluggable slot).
808 * The remove function always gets called from process
809 * context, so it can sleep.
810 * @suspend: Put device into low power state.
811 * @suspend_late: Put device into low power state.
812 * @resume_early: Wake device from low power state.
813 * @resume: Wake device from low power state.
814 * (Please see Documentation/power/pci.rst for descriptions
815 * of PCI Power Management and the related functions.)
816 * @shutdown: Hook into reboot_notifier_list (kernel/sys.c).
817 * Intended to stop any idling DMA operations.
818 * Useful for enabling wake-on-lan (NIC) or changing
819 * the power state of a device before reboot.
820 * e.g. drivers/net/e100.c.
821 * @sriov_configure: Optional driver callback to allow configuration of
822 * number of VFs to enable via sysfs "sriov_numvfs" file.
823 * @err_handler: See Documentation/PCI/pci-error-recovery.rst
824 * @groups: Sysfs attribute groups.
825 * @driver: Driver model structure.
826 * @dynids: List of dynamically added device IDs.
827 */
779struct pci_driver {828struct pci_driver {
780 struct list_head node;829 struct list_head node;
781 const char *name;830 const char *name;
@@ -2207,7 +2256,7 @@ static inline u8 pci_vpd_srdt_tag(const u8 *srdt) · 1425 unmodified lines
2207 2256
2208/**2257/**
2209 * pci_vpd_info_field_size - Extracts the information field length2258 * pci_vpd_info_field_size - Extracts the information field length
2210 * @lrdt: Pointer to the beginning of an information field header2259 * @info_field: Pointer to the beginning of an information field header
2211 *2260 *
2212 * Returns the extracted information field length.2261 * Returns the extracted information field length.
2213 */2262 */
include/linux/pci_ids.h+4−3
@@ -1112,7 +1112,7 @@ · 1111 unmodified lines
1112 1112
1113#define PCI_VENDOR_ID_AL 0x10b91113#define PCI_VENDOR_ID_AL 0x10b9
1114#define PCI_DEVICE_ID_AL_M1533 0x15331114#define PCI_DEVICE_ID_AL_M1533 0x1533
1115#define PCI_DEVICE_ID_AL_M1535 0x15351115#define PCI_DEVICE_ID_AL_M1535 0x1535
1116#define PCI_DEVICE_ID_AL_M1541 0x15411116#define PCI_DEVICE_ID_AL_M1541 0x1541
1117#define PCI_DEVICE_ID_AL_M1563 0x15631117#define PCI_DEVICE_ID_AL_M1563 0x1563
1118#define PCI_DEVICE_ID_AL_M1621 0x16211118#define PCI_DEVICE_ID_AL_M1621 0x1621
@@ -1336,6 +1336,7 @@ · 217 unmodified lines
1336#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP78S_SMBUS 0x07521336#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP78S_SMBUS 0x0752
1337#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x07591337#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759
1338#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D81338#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8
1339#define PCI_DEVICE_ID_NVIDIA_GEFORCE_320M 0x08A0
1339#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA21340#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2
1340#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA 0x0D851341#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA 0x0D85
1341 1342
@@ -1752,7 +1753,7 @@ · 410 unmodified lines
1752#define PCI_VENDOR_ID_STALLION 0x124d1753#define PCI_VENDOR_ID_STALLION 0x124d
1753 1754
1754/* Allied Telesyn */1755/* Allied Telesyn */
1755#define PCI_VENDOR_ID_AT 0x12591756#define PCI_VENDOR_ID_AT 0x1259
1756#define PCI_SUBDEVICE_ID_AT_2700FX 0x27011757#define PCI_SUBDEVICE_ID_AT_2700FX 0x2701
1757#define PCI_SUBDEVICE_ID_AT_2701FX 0x27031758#define PCI_SUBDEVICE_ID_AT_2701FX 0x2703
1758 1759
@@ -2550,7 +2551,7 @@ · 791 unmodified lines
2550#define PCI_DEVICE_ID_KORENIX_JETCARDF2 0x17002551#define PCI_DEVICE_ID_KORENIX_JETCARDF2 0x1700
2551#define PCI_DEVICE_ID_KORENIX_JETCARDF3 0x17ff2552#define PCI_DEVICE_ID_KORENIX_JETCARDF3 0x17ff
2552 2553
2553#define PCI_VENDOR_ID_HUAWEI 0x19e52554#define PCI_VENDOR_ID_HUAWEI 0x19e5
2554 2555
2555#define PCI_VENDOR_ID_NETRONOME 0x19ee2556#define PCI_VENDOR_ID_NETRONOME 0x19ee
2556#define PCI_DEVICE_ID_NETRONOME_NFP4000 0x40002557#define PCI_DEVICE_ID_NETRONOME_NFP4000 0x4000
include/linux/pm.h+1−1
@@ -271,7 +271,7 @@ typedef struct pm_message { · 270 unmodified lines
271 * actions to be performed by a device driver's callbacks generally depend on271 * actions to be performed by a device driver's callbacks generally depend on
272 * the platform and subsystem the device belongs to.272 * the platform and subsystem the device belongs to.
273 *273 *
274 * Refer to Documentation/power/runtime_pm.txt for more information about the274 * Refer to Documentation/power/runtime_pm.rst for more information about the
275 * role of the @runtime_suspend(), @runtime_resume() and @runtime_idle()275 * role of the @runtime_suspend(), @runtime_resume() and @runtime_idle()
276 * callbacks in device runtime power management.276 * callbacks in device runtime power management.
277 */277 */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t