1. 23 Sep, 2019 14 commits
    • Bjorn Helgaas's avatar
      Merge branch 'remotes/lorenzo/pci/mediatek' · 8b38b5f2
      Bjorn Helgaas authored
        - Add mediatek support for MT7629 (Jianjun Wang)
      
      * remotes/lorenzo/pci/mediatek:
        PCI: mediatek: Add controller support for MT7629
        dt-bindings: PCI: Add support for MT7629
      8b38b5f2
    • Bjorn Helgaas's avatar
      Merge branch 'remotes/lorenzo/pci/layerscape' · 5adc7d51
      Bjorn Helgaas authored
        - Mark Layerscape endpoint BARs 2 and 4 as 64-bit (Xiaowei Bao)
      
        - Add CONFIG_PCI_LAYERSCAPE_EP so EP/RC can be built separately (Xiaowei
          Bao)
      
      * remotes/lorenzo/pci/layerscape:
        PCI: layerscape: Add CONFIG_PCI_LAYERSCAPE_EP to build EP/RC separately
        PCI: layerscape: Add the bar_fixed_64bit property to the endpoint driver
      5adc7d51
    • Bjorn Helgaas's avatar
      Merge branch 'remotes/lorenzo/pci/imx' · 70882416
      Bjorn Helgaas authored
        - Reduce i.MX 6Quad DBI register length to avoid aborts from accessing
          invalid registers (Stefan Agner)
      
      * remotes/lorenzo/pci/imx:
        PCI: imx6: Limit DBI register length
      70882416
    • Bjorn Helgaas's avatar
      Merge branch 'remotes/lorenzo/pci/hv' · a40c4b37
      Bjorn Helgaas authored
        - Fix Hyper-V use-after-free in pci_dev removal (Dexuan Cui)
      
        - Fix Hyper-V build error in non-sysfs config (Randy Dunlap)
      
        - Reallocate to avoid Hyper-V domain number collisions (Haiyang Zhang)
      
        - Use Hyper-V instance ID bytes 4-5 to reduce domain collisions (Haiyang
          Zhang)
      
      * remotes/lorenzo/pci/hv:
        PCI: hv: Use bytes 4 and 5 from instance ID as the PCI domain numbers
        PCI: hv: Detect and fix Hyper-V PCI domain number collision
        PCI: pci-hyperv: Fix build errors on non-SYSFS config
        PCI: hv: Avoid use of hv_pci_dev->pci_slot after freeing it
      a40c4b37
    • Bjorn Helgaas's avatar
      Merge branch 'remotes/lorenzo/pci/dwc' · b83e445d
      Bjorn Helgaas authored
        - Make kirin_dw_pcie_ops constant (Nishka Dasgupta)
      
        - Make DesignWare "num-lanes" property optional and remove from relevant
          DTs (Hou Zhiqiang)
      
      * remotes/lorenzo/pci/dwc:
        arm64: dts: fsl: Remove num-lanes property from PCIe nodes
        ARM: dts: ls1021a: Remove num-lanes property from PCIe nodes
        PCI: dwc: Return directly when num-lanes is not found
        dt-bindings: PCI: designware: Remove the num-lanes from Required properties
        PCI: kirin: Make structure kirin_dw_pcie_ops constant
      b83e445d
    • Bjorn Helgaas's avatar
      Merge branch 'remotes/lorenzo/pci/al' · af47f25f
      Bjorn Helgaas authored
        - Add driver for Amazon Annapurna Labs PCIe controller (Jonathan Chocron)
      
        - Disable MSI-X since Annapurna Labs advertises it, but it's broken
          (Jonathan Chocron)
      
        - Disable VPD since Annapurna Labs advertises it, but it's broken
          (Jonathan Chocron)
      
        - Add ACS quirk since Annapurna Labs doesn't support ACS but does provide
          some equivalent protections (Ali Saidi)
      
      * remotes/lorenzo/pci/al:
        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
      
      # Conflicts:
      #	drivers/pci/quirks.c
      af47f25f
    • Bjorn Helgaas's avatar
      Merge branch 'pci/resource' · 0ca0ef10
      Bjorn Helgaas authored
        - Convert pci_resource_to_user() to a weak function to remove
          HAVE_ARCH_PCI_RESOURCE_TO_USER #defines (Denis Efremov)
      
        - Use PCI_SRIOV_NUM_BARS for idiomatic loop structure (Denis Efremov)
      
        - Fix Resizable BAR size suspend/restore for 1MB BARs (Sumit Saxena)
      
        - Correct "pci=resource_alignment" example in documentation (Alexey
          Kardashevskiy)
      
      * pci/resource:
        PCI: Correct pci=resource_alignment parameter example
        PCI: Restore Resizable BAR size bits correctly for 1MB BARs
        PCI: Use PCI_SRIOV_NUM_BARS in loops instead of PCI_IOV_RESOURCE_END
        PCI: Convert pci_resource_to_user() to a weak function
      
      # Conflicts:
      #	drivers/pci/pci.c
      0ca0ef10
    • Bjorn Helgaas's avatar
      Merge branch 'pci/pciehp' · 203104c8
      Bjorn Helgaas authored
        - Cleanup pciehp LED/indicator control with a new consolidated
          pciehp_set_indicators() interface that controls both Attention and
          Power Indicators (Denis Efremov)
      
      * pci/pciehp:
        PCI: pciehp: Refer to "Indicators" instead of "LEDs" in comments
        PCI: pciehp: Remove pciehp_green_led_{on,off,blink}()
        PCI: pciehp: Remove pciehp_set_attention_status()
        PCI: pciehp: Combine adjacent indicator updates
        PCI: pciehp: Add pciehp_set_indicators() to set both indicators
      203104c8
    • Bjorn Helgaas's avatar
      Merge branch 'pci/p2pdma' · 63fa8437
      Bjorn Helgaas authored
        - Move P2PCMA PCI bus offset from generic dev_pagemap to
          pci_p2pdma_pagemap (Logan Gunthorpe)
      
        - Add provider's pci_dev to pci_p2pdma_pagemap (Logan Gunthorpe)
      
        - Apply host bridge whitelist for ACS (Logan Gunthorpe)
      
        - Whitelist some Intel host bridges for P2PDMA (Logan Gunthorpe)
      
        - Add attrs to pci_p2pdma_map_sg() to match dma_map_sg() (Logan
          Gunthorpe)
      
        - Add pci_p2pdma_unmap_sg() (Logan Gunthorpe)
      
        - Store P2PDMA mapping method in xarray (Logan Gunthorpe)
      
        - Map requests that traverse a host bridge (Logan Gunthorpe)
      
        - Allow IOMMU for host bridge whitelist (Logan Gunthorpe)
      
      * pci/p2pdma:
        PCI/P2PDMA: Update pci_p2pdma_distance_many() documentation
        PCI/P2PDMA: Allow IOMMU for host bridge whitelist
        PCI/P2PDMA: dma_map() requests that traverse the host bridge
        PCI/P2PDMA: Store mapping method in an xarray
        PCI/P2PDMA: Factor out __pci_p2pdma_map_sg()
        PCI/P2PDMA: Introduce pci_p2pdma_unmap_sg()
        PCI/P2PDMA: Add attrs argument to pci_p2pdma_map_sg()
        PCI/P2PDMA: Whitelist some Intel host bridges
        PCI/P2PDMA: Factor out host_bridge_whitelist()
        PCI/P2PDMA: Apply host bridge whitelist for ACS
        PCI/P2PDMA: Factor out __upstream_bridge_distance()
        PCI/P2PDMA: Add constants for map type results to upstream_bridge_distance()
        PCI/P2PDMA: Add provider's pci_dev to pci_p2pdma_pagemap struct
        PCI/P2PDMA: Introduce private pagemap structure
      63fa8437
    • Bjorn Helgaas's avatar
      Merge branch 'pci/msi' · 3ddbff36
      Bjorn Helgaas authored
        - Enable PCI_MSI_IRQ_DOMAIN support for RISC-V (Wesley Terpstra)
      
      * pci/msi:
        PCI/MSI: Enable PCI_MSI_IRQ_DOMAIN support for RISC-V
      3ddbff36
    • Bjorn Helgaas's avatar
      Merge branch 'pci/misc' · 6ce54f02
      Bjorn Helgaas authored
        - Use devm_add_action_or_reset() helper (Fuqian Huang)
      
        - Mark expected switch fall-through (Gustavo A. R. Silva)
      
        - Convert sysfs device attributes from __ATTR() to DEVICE_ATTR() (Kelsey
          Skunberg)
      
        - Convert sysfs file permissions from S_IRUSR etc to octal (Kelsey
          Skunberg)
      
        - Move SR-IOV sysfs functions to iov.c (Kelsey Skunberg)
      
        - Add pci_info_ratelimited() to ratelimit PCI messages separately
          (Krzysztof Wilczynski)
      
        - Fix "'static' not at beginning of declaration" warnings (Krzysztof
          Wilczynski)
      
        - Clean up resource_alignment parameter to not require static buffer
          (Logan Gunthorpe)
      
        - Add ACS quirk for iProc PAXB (Abhinav Ratna)
      
        - Add pci_irq_vector() and other stubs for !CONFIG_PCI (Herbert Xu)
      
      * pci/misc:
        PCI: Add pci_irq_vector() and other stubs when !CONFIG_PCI
        PCI: Add ACS quirk for iProc PAXB
        PCI: Force trailing new line to resource_alignment_param in sysfs
        PCI: Move pci_[get|set]_resource_alignment_param() into their callers
        PCI: Clean up resource_alignment parameter to not require static buffer
        PCI: Use static const struct, not const static struct
        PCI: Add pci_info_ratelimited() to ratelimit PCI separately
        PCI/IOV: Remove group write permission from sriov_numvfs, sriov_drivers_autoprobe
        PCI/IOV: Move sysfs SR-IOV functions to iov.c
        PCI: sysfs: Change permissions from symbolic to octal
        PCI: sysfs: Change DEVICE_ATTR() to DEVICE_ATTR_WO()
        PCI: sysfs: Define device attributes with DEVICE_ATTR*()
        PCI: Mark expected switch fall-through
        PCI: Use devm_add_action_or_reset()
      6ce54f02
    • Bjorn Helgaas's avatar
      Merge branch 'pci/enumeration' · a10a1f60
      Bjorn Helgaas authored
        - Consolidate _HPP & _HPX code in pci-acpi.h and remove unnecessary
          struct hotplug_program_ops (Krzysztof Wilczynski)
      
        - Fixup PCIe device types to remove the need for dev->has_secondary_link
          (Mika Westerberg)
      
      * pci/enumeration:
        PCI: Get rid of dev->has_secondary_link flag
        PCI: Make pcie_downstream_port() available outside of access.c
        PCI/ACPI: Remove unnecessary struct hotplug_program_ops
        PCI/ACPI: Move _HPP & _HPX functions to pci-acpi.c
        PCI/ACPI: Rename _HPX structs from hpp_* to hpx_*
      a10a1f60
    • Bjorn Helgaas's avatar
      Merge branch 'pci/encapsulate' · 77dc51fd
      Bjorn Helgaas authored
        - Move many symbols from public linux/pci.h to subsystem-private
          drivers/pci/pci.h (Kelsey Skunberg)
      
        - Unexport pci_bus_get() and pci_bus_sem since they're not needed by
          modules (Kelsey Skunberg)
      
        - Remove unused pci_block_cfg_access() et al (Kelsey Skunberg)
      
      * pci/encapsulate:
        PCI: Make pci_set_of_node(), etc private
        PCI: Make pci_enable_ptm() private
        PCI: Make pcie_set_ecrc_checking(), pcie_ecrc_get_policy() private
        PCI: Make pci_ats_init() private
        PCI: Make pcie_update_link_speed() private
        PCI: Make pci_bus_get(), pci_bus_put() private
        PCI: Make pci_hotplug_io_size, mem_size, and bus_size private
        PCI: Make pci_save_vc_state(), pci_restore_vc_state(), etc private
        PCI: Make pci_get_host_bridge_device(), pci_put_host_bridge_device() private
        PCI: Make pci_check_pme_status(), pci_pme_wakeup_bus() private
        PCI: Make PCI_PM_* delay times private
        PCI: Unexport pci_bus_sem
        PCI: Unexport pci_bus_get() and pci_bus_put()
        PCI: Remove pci_block_cfg_access() et al (unused)
      77dc51fd
    • Bjorn Helgaas's avatar
      Merge branch 'pci/aspm' · 20d3618b
      Bjorn Helgaas authored
        - Consolidate ASPM interfaces in linux/pci.h (Krzysztof Wilczynski)
      
      * pci/aspm:
        PCI: Move ASPM declarations to linux/pci.h
      20d3618b
  2. 21 Sep, 2019 1 commit
  3. 16 Sep, 2019 7 commits
  4. 10 Sep, 2019 1 commit
  5. 07 Sep, 2019 2 commits
  6. 05 Sep, 2019 12 commits
  7. 28 Aug, 2019 3 commits
    • Krzysztof Wilczynski's avatar
      PCI/ACPI: Remove unnecessary struct hotplug_program_ops · 4a2dbedd
      Krzysztof Wilczynski authored
      Move the ACPI-specific structs hpx_type0, hpx_type1, hpx_type2 and
      hpx_type3 to drivers/pci/pci-acpi.c as they are not used anywhere else.
      Then remove the struct hotplug_program_ops that has been shared between
      drivers/pci/probe.c and drivers/pci/pci-acpi.c from drivers/pci/pci.h as it
      is no longer needed.
      
      The struct hotplug_program_ops was added by 87fcf12e ("PCI/ACPI: Remove
      the need for 'struct hotplug_params'") and replaced previously used struct
      hotplug_params enabling the support for the _HPX Type 3 Setting Record that
      was added by f873c51a ("PCI/ACPI: Implement _HPX Type 3 Setting
      Record").
      
      The new struct allowed for the static functions such program_hpx_type0(),
      program_hpx_type1(), etc., from the drivers/pci/probe.c to be called from
      the function pci_acpi_program_hp_params() in the drivers/pci/pci-acpi.c.
      
      Previously a programming of _HPX Type 0 was as follows:
      
        drivers/pci/probe.c:
      
          program_hpx_type0()
          ...
          pci_configure_device()
            hp_ops = {
              .program_type0 = program_hpx_type0,
              ...
            }
            pci_acpi_program_hp_params(&hp_ops)
      
        drivers/pci/pci-acpi.c:
      
          pci_acpi_program_hp_params(&hp_ops)
            acpi_run_hpx(hp_ops)
              decode_type0_hpx_record()
                hp_ops->program_type0     # program_hpx_type0() called via hp_ops
      
      After the ACPI-specific functions, structs, enums, etc., have been moved to
      drivers/pci/pci-acpi.c there is no need for the hotplug_program_ops as all
      of the _HPX Type 0, 1, 2 and 3 are directly accessible.
      
      Link: https://lore.kernel.org/r/20190827094951.10613-4-kw@linux.comSigned-off-by: default avatarKrzysztof Wilczynski <kw@linux.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      4a2dbedd
    • Krzysztof Wilczynski's avatar
      PCI/ACPI: Move _HPP & _HPX functions to pci-acpi.c · 8c3aac6e
      Krzysztof Wilczynski authored
      Move program_hpx_type0(), program_hpx_type1(), etc., and enums
      hpx_type3_dev_type, hpx_type3_fn_type and hpx_type3_cfg_loc to
      drivers/pci/pci-acpi.c as these functions and enums are ACPI-specific.
      
      Move structs hpx_type0, hpx_type1, hpx_type2 and hpx_type3 to
      drivers/pci/pci.h as these are shared between drivers/pci/pci-acpi.c and
      drivers/pci/probe.c.
      
      Link: https://lore.kernel.org/r/20190827094951.10613-3-kw@linux.comSigned-off-by: default avatarKrzysztof Wilczynski <kw@linux.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      8c3aac6e
    • Krzysztof Wilczynski's avatar
      PCI/ACPI: Rename _HPX structs from hpp_* to hpx_* · e2797ad3
      Krzysztof Wilczynski authored
      The names of the hpp_type0, hpp_type1 and hpp_type2 structs suggest that
      they're related to _HPP, when in fact they're related to _HPX.
      
      The struct hpp_type0 denotes an _HPX Type 0 setting record that supersedes
      the _HPP setting record, and it has been used interchangeably for _HPP as
      per the ACPI specification (see version 6.3, section 6.2.9.1) which states
      that it should be applied to PCI, PCI-X and PCI Express devices, with
      settings being ignored if they are not applicable.
      
      Rename them to hpx_type0, hpx_type1 and hpx_type2 to reflect their relation
      to _HPX rather than _HPP.
      
      Link: https://lore.kernel.org/r/20190827094951.10613-2-kw@linux.comSigned-off-by: default avatarKrzysztof Wilczynski <kw@linux.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      e2797ad3