Merge tag 'pci-v5.4-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 24 Sep 2019 02:16:01 +0000 (19:16 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 24 Sep 2019 02:16:01 +0000 (19:16 -0700)
Pull PCI updates from Bjorn Helgaas:
 "Enumeration:

   - Consolidate _HPP/_HPX stuff in pci-acpi.c and simplify it
     (Krzysztof Wilczynski)

   - Fix incorrect PCIe device types and remove dev->has_secondary_link
     to simplify code that deals with upstream/downstream ports (Mika
     Westerberg)

   - After suspend, restore Resizable BAR size bits correctly for 1MB
     BARs (Sumit Saxena)

   - Enable PCI_MSI_IRQ_DOMAIN support for RISC-V (Wesley Terpstra)

  Virtualization:

   - Add ACS quirks for iProc PAXB (Abhinav Ratna), Amazon Annapurna
     Labs (Ali Saidi)

   - Move sysfs SR-IOV functions to iov.c (Kelsey Skunberg)

   - Remove group write permissions from sysfs sriov_numvfs,
     sriov_drivers_autoprobe (Kelsey Skunberg)

  Hotplug:

   - Simplify pciehp indicator control (Denis Efremov)

  Peer-to-peer DMA:

   - Allow P2P DMA between root ports for whitelisted bridges (Logan
     Gunthorpe)

   - Whitelist some Intel host bridges for P2P DMA (Logan Gunthorpe)

   - DMA map P2P DMA requests that traverse host bridge (Logan
     Gunthorpe)

  Amazon Annapurna Labs host bridge driver:

   - Add DT binding and controller driver (Jonathan Chocron)

  Hyper-V host bridge driver:

   - Fix hv_pci_dev->pci_slot use-after-free (Dexuan Cui)

   - Fix PCI domain number collisions (Haiyang Zhang)

   - Use instance ID bytes 4 & 5 as PCI domain numbers (Haiyang Zhang)

   - Fix build errors on non-SYSFS config (Randy Dunlap)

  i.MX6 host bridge driver:

   - Limit DBI register length (Stefan Agner)

  Intel VMD host bridge driver:

   - Fix config addressing issues (Jon Derrick)

  Layerscape host bridge driver:

   - Add bar_fixed_64bit property to endpoint driver (Xiaowei Bao)

   - Add CONFIG_PCI_LAYERSCAPE_EP to build EP/RC drivers separately
     (Xiaowei Bao)

  Mediatek host bridge driver:

   - Add MT7629 controller support (Jianjun Wang)

  Mobiveil host bridge driver:

   - Fix CPU base address setup (Hou Zhiqiang)

   - Make "num-lanes" property optional (Hou Zhiqiang)

  Tegra host bridge driver:

   - Fix OF node reference leak (Nishka Dasgupta)

   - Disable MSI for root ports to work around design problem (Vidya
     Sagar)

   - Add Tegra194 DT binding and controller support (Vidya Sagar)

   - Add support for sideband pins and slot regulators (Vidya Sagar)

   - Add PIPE2UPHY support (Vidya Sagar)

  Misc:

   - Remove unused pci_block_cfg_access() et al (Kelsey Skunberg)

   - Unexport pci_bus_get(), etc (Kelsey Skunberg)

   - Hide PM, VC, link speed, ATS, ECRC, PTM constants and interfaces in
     the PCI core (Kelsey Skunberg)

   - Clean up sysfs DEVICE_ATTR() usage (Kelsey Skunberg)

   - Mark expected switch fall-through (Gustavo A. R. Silva)

   - Propagate errors for optional regulators and PHYs (Thierry Reding)

   - Fix kernel command line resource_alignment parameter issues (Logan
     Gunthorpe)"

* tag 'pci-v5.4-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (112 commits)
  PCI: Add pci_irq_vector() and other stubs when !CONFIG_PCI
  arm64: tegra: Add PCIe slot supply information in p2972-0000 platform
  arm64: tegra: Add configuration for PCIe C5 sideband signals
  PCI: tegra: Add support to enable slot regulators
  PCI: tegra: Add support to configure sideband pins
  PCI: vmd: Fix shadow offsets to reflect spec changes
  PCI: vmd: Fix config addressing when using bus offsets
  PCI: dwc: Add validation that PCIe core is set to correct mode
  PCI: dwc: al: Add Amazon Annapurna Labs PCIe controller driver
  dt-bindings: PCI: Add Amazon's Annapurna Labs PCIe host bridge binding
  PCI: Add quirk to disable MSI-X support for Amazon's Annapurna Labs Root Port
  PCI/VPD: Prevent VPD access for Amazon's Annapurna Labs Root Port
  PCI: Add ACS quirk for Amazon Annapurna Labs root ports
  PCI: Add Amazon's Annapurna Labs vendor ID
  MAINTAINERS: Add PCI native host/endpoint controllers designated reviewer
  PCI: hv: Use bytes 4 and 5 from instance ID as the PCI domain numbers
  dt-bindings: PCI: tegra: Add PCIe slot supplies regulator entries
  dt-bindings: PCI: tegra: Add sideband pins configuration entries
  PCI: tegra: Add Tegra194 PCIe support
  PCI: Get rid of dev->has_secondary_link flag
  ...

23 files changed:
1  2 
Documentation/admin-guide/kernel-parameters.txt
Documentation/devicetree/bindings/pci/pci-armada8k.txt
MAINTAINERS
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
drivers/net/ethernet/jme.c
drivers/net/ethernet/realtek/r8169_main.c
drivers/net/wireless/intel/iwlwifi/pcie/trans.c
drivers/nvme/host/pci.c
drivers/pci/Kconfig
drivers/pci/controller/pci-hyperv.c
drivers/pci/hotplug/rpaphp_core.c
drivers/pci/pci.c
drivers/pci/pci.h
drivers/pci/pcie/aspm.c
drivers/pci/probe.c
drivers/pci/quirks.c
drivers/scsi/hpsa.c
drivers/scsi/mpt3sas/mpt3sas_scsih.c
include/linux/memremap.h
include/linux/pci.h
include/linux/pci_ids.h

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
index c313de96a3573071c199b9b86640e1f838105e7c,a5017b66bd9d51c8e62317595efbe348ae1740d3..a304f5ea11b90b2cffe1b2eec9cc605dc14b1d34
@@@ -181,8 -181,7 +181,8 @@@ config PCI_LABE
  
  config PCI_HYPERV
          tristate "Hyper-V PCI Frontend"
-         depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
+         depends on X86_64 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && SYSFS
 +      select PCI_HYPERV_INTERFACE
          help
            The PCI device frontend driver allows the kernel to import arbitrary
            PCI devices from a PCI backend to support PCI driver domains.
index 0ca73c851e0fb767eb1e3984a0d82c4fc8421453,3a56de6b2ec2ca20e348cd083fad8574c6a5a4b9..f1f300218fab8659629ba466b044ceeb06c96bce
@@@ -2820,7 -2563,7 +2862,8 @@@ static int hv_pci_probe(struct hv_devic
                        const struct hv_vmbus_device_id *dev_id)
  {
        struct hv_pcibus_device *hbus;
+       u16 dom_req, dom;
 +      char *name;
        int ret;
  
        /*
@@@ -3058,11 -2810,9 +3121,14 @@@ static void __exit exit_hv_pci_drv(void
  
  static int __init init_hv_pci_drv(void)
  {
+       /* Set the invalid domain number's bit, so it will not be used */
+       set_bit(HVPCI_DOM_INVALID, hvpci_dom_map);
 +      /* Initialize PCI block r/w interface */
 +      hvpci_block_ops.read_block = hv_read_config_block;
 +      hvpci_block_ops.write_block = hv_write_config_block;
 +      hvpci_block_ops.reg_blk_invalidate = hv_register_block_invalidate;
 +
        return vmbus_driver_register(&hv_pci_drv);
  }
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index fb2a0bd826b9091f5b04934d7f6f4561e87ec43b,b459518ce4755db0b640d7076784cf49782e55b8..bef51e35d8d24b1ece4a0626359b1d36df97a342
@@@ -109,9 -109,9 +109,8 @@@ struct dev_pagemap 
        struct percpu_ref *ref;
        struct percpu_ref internal_ref;
        struct completion done;
 -      struct device *dev;
        enum memory_type type;
        unsigned int flags;
-       u64 pci_p2pdma_bus_offset;
        const struct dev_pagemap_ops *ops;
  };
  
index 82e4cd1b7ac3cb50346492a27163da53bb206e2c,deecf3cc17b13aca085b67f1e214a9045e9010fd..f9088c89a534737049463cc024e40db803422cb5
@@@ -1565,12 -1544,22 +1544,24 @@@ extern bool pcie_ports_native
  #define pcie_ports_native     false
  #endif
  
+ #define PCIE_LINK_STATE_L0S   1
+ #define PCIE_LINK_STATE_L1    2
+ #define PCIE_LINK_STATE_CLKPM 4
  #ifdef CONFIG_PCIEASPM
+ int pci_disable_link_state(struct pci_dev *pdev, int state);
+ int pci_disable_link_state_locked(struct pci_dev *pdev, int state);
+ void pcie_no_aspm(void);
  bool pcie_aspm_support_enabled(void);
 +bool pcie_aspm_enabled(struct pci_dev *pdev);
  #else
+ static inline int pci_disable_link_state(struct pci_dev *pdev, int state)
+ { return 0; }
+ static inline int pci_disable_link_state_locked(struct pci_dev *pdev, int state)
+ { return 0; }
+ static inline void pcie_no_aspm(void) { }
  static inline bool pcie_aspm_support_enabled(void) { return false; }
 +static inline bool pcie_aspm_enabled(struct pci_dev *pdev) { return false; }
  #endif
  
  #ifdef CONFIG_PCIEAER
Simple merge