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
5252 * irq line disabled until the threaded handler has been run.
5353 * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend. Does not guarantee
5454 * that this interrupt will wake the system from a suspended
55− * state. See Documentation/power/suspend-and-interrupts.txt
55+ * state. See Documentation/power/suspend-and-interrupts.rst
5656 * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set
5757 * IRQF_NO_THREAD - Interrupt cannot be threaded
5858 * 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
1616
1717 #define PCI_ANY_ID (~0)
1818
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+ */
1938 struct pci_device_id {
2039 __u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID*/
2140 __u32 subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */
@@ -257,17 +276,17 @@ struct pcmcia_device_id { · 235 unmodified lines
257276 __u16 match_flags;
258277
259278 __u16 manf_id;
260− __u16 card_id;
279+ __u16 card_id;
261280
262− __u8 func_id;
281+ __u8 func_id;
263282
264283 /* for real multi-function devices */
265− __u8 function;
284+ __u8 function;
266285
267286 /* for pseudo multi-function devices */
268− __u8 device_no;
287+ __u8 device_no;
269288
270− __u32 prod_id_hash[4];
289+ __u32 prod_id_hash[4];
271290
272291 /* not matched against in kernelspace */
273292 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
107107 #endif
108108
109109 extern const guid_t pci_acpi_dsm_guid;
110−#define DEVICE_LABEL_DSM 0x07
111−#define RESET_DELAY_DSM 0x08
112−#define FUNCTION_DELAY_DSM 0x09
110+#define IGNORE_PCI_BOOT_CONFIG_DSM 0x05
111+#define DEVICE_LABEL_DSM 0x07
112+#define RESET_DELAY_DSM 0x08
113+#define FUNCTION_DELAY_DSM 0x09
113114
114115 #else /* CONFIG_ACPI */
115116 static 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
151151 #define PCI_PM_BUS_WAIT 50
152152
153153 /**
154+ * typedef pci_channel_state_t
155+ *
154156 * The pci_channel state describes connectivity between the CPU and
155157 * the PCI device. If some PCI bus between here and the PCI device
156158 * has crashed or locked up, this info is reflected here.
@@ -258,6 +260,7 @@ enum pci_bus_speed { · 101 unmodified lines
258260 PCIE_SPEED_5_0GT = 0x15,
259261 PCIE_SPEED_8_0GT = 0x16,
260262 PCIE_SPEED_16_0GT = 0x17,
263+ PCIE_SPEED_32_0GT = 0x18,
261264 PCI_SPEED_UNKNOWN = 0xff,
262265 };
263266
@@ -383,7 +386,7 @@ struct pci_dev { · 119 unmodified lines
383386
384387 unsigned int is_busmaster:1; /* Is busmaster */
385388 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 */
387390 unsigned int block_cfg_access:1; /* Config space access blocked */
388391 unsigned int broken_parity_status:1; /* Generates false positive parity */
389392 unsigned int irq_reroute_variant:2; /* Needs IRQ rerouting variant */
@@ -506,6 +509,8 @@ struct pci_host_bridge { · 116 unmodified lines
506509 unsigned int native_shpc_hotplug:1; /* OS may use SHPC hotplug */
507510 unsigned int native_pme:1; /* OS may use PCIe PME */
508511 unsigned int native_ltr:1; /* OS may use PCIe LTR */
512+ unsigned int preserve_config:1; /* Preserve FW resource setup */
513+
509514 /* Resource alignment requirements */
510515 resource_size_t (*align_resource)(struct pci_dev *dev,
511516 const struct resource *res,
@@ -776,6 +781,50 @@ struct pci_error_handlers { · 264 unmodified lines
776781
777782
778783 struct 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+ */
779828 struct pci_driver {
780829 struct list_head node;
781830 const char *name;
@@ -2207,7 +2256,7 @@ static inline u8 pci_vpd_srdt_tag(const u8 *srdt) · 1425 unmodified lines
22072256
22082257 /**
22092258 * pci_vpd_info_field_size - Extracts the information field length
2210− * @lrdt: Pointer to the beginning of an information field header
2259+ * @info_field: Pointer to the beginning of an information field header
22112260 *
22122261 * Returns the extracted information field length.
22132262 */
include/linux/pci_ids.h+4−3
@@ -1112,7 +1112,7 @@ · 1111 unmodified lines
11121112
11131113 #define PCI_VENDOR_ID_AL 0x10b9
11141114 #define PCI_DEVICE_ID_AL_M1533 0x1533
1115−#define PCI_DEVICE_ID_AL_M1535 0x1535
1115+#define PCI_DEVICE_ID_AL_M1535 0x1535
11161116 #define PCI_DEVICE_ID_AL_M1541 0x1541
11171117 #define PCI_DEVICE_ID_AL_M1563 0x1563
11181118 #define PCI_DEVICE_ID_AL_M1621 0x1621
@@ -1336,6 +1336,7 @@ · 217 unmodified lines
13361336 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP78S_SMBUS 0x0752
13371337 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759
13381338 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8
1339+#define PCI_DEVICE_ID_NVIDIA_GEFORCE_320M 0x08A0
13391340 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2
13401341 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA 0x0D85
13411342
@@ -1752,7 +1753,7 @@ · 410 unmodified lines
17521753 #define PCI_VENDOR_ID_STALLION 0x124d
17531754
17541755 /* Allied Telesyn */
1755−#define PCI_VENDOR_ID_AT 0x1259
1756+#define PCI_VENDOR_ID_AT 0x1259
17561757 #define PCI_SUBDEVICE_ID_AT_2700FX 0x2701
17571758 #define PCI_SUBDEVICE_ID_AT_2701FX 0x2703
17581759
@@ -2550,7 +2551,7 @@ · 791 unmodified lines
25502551 #define PCI_DEVICE_ID_KORENIX_JETCARDF2 0x1700
25512552 #define PCI_DEVICE_ID_KORENIX_JETCARDF3 0x17ff
25522553
2553−#define PCI_VENDOR_ID_HUAWEI 0x19e5
2554+#define PCI_VENDOR_ID_HUAWEI 0x19e5
25542555
25552556 #define PCI_VENDOR_ID_NETRONOME 0x19ee
25562557 #define PCI_DEVICE_ID_NETRONOME_NFP4000 0x4000
include/linux/pm.h+1−1
@@ -271,7 +271,7 @@ typedef struct pm_message { · 270 unmodified lines
271271 * actions to be performed by a device driver's callbacks generally depend on
272272 * the platform and subsystem the device belongs to.
273273 *
274− * Refer to Documentation/power/runtime_pm.txt for more information about the
274+ * Refer to Documentation/power/runtime_pm.rst for more information about the
275275 * role of the @runtime_suspend(), @runtime_resume() and @runtime_idle()
276276 * callbacks in device runtime power management.
277277 */

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