1. 04 Aug, 2022 16 commits
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/loongson' · b4773c53
      Bjorn Helgaas authored
      - Wrap ARM64-specific MCFG quirks in #ifdef so Loongson can use the file
        (Huacai Chen)
      
      - Use generic (not 32-bit only) config accesses for LS2K/LS7A (Huacai Chen)
      
      - Add ACPI and MCFG support for Loongson LS7A (Huacai Chen)
      
      - Avoid config reads to non-existent LS2K/LS7A devices because a hardware
        defect causes machine hangs (Huacai Chen)
      
      - Work around LS7A integrated devices that report incorrect Interrupt Pin
        values (Jianmin Lv)
      
      * pci/ctrl/loongson:
        PCI: loongson: Work around LS7A incorrect Interrupt Pin registers
        PCI: loongson: Don't access non-existent devices
        PCI: loongson: Add ACPI init support
        PCI: loongson: Use generic 8/16/32-bit config ops on LS2K/LS7A
        PCI/ACPI: Guard ARM64-specific mcfg_quirks
      b4773c53
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/iproc' · 13506868
      Bjorn Helgaas authored
      - Use bitmap API to allocate bitmaps instead of doing it by hand
        (Christophe JAILLET)
      
      * pci/ctrl/iproc:
        PCI: iproc: Use bitmap API to allocate bitmaps
      13506868
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/imx6' · 468276d4
      Bjorn Helgaas authored
      - Factor out ref clock disables to match enables (Bjorn Helgaas)
      
      - Collect clock enables in imx6_pcie_clk_enable() (Richard Zhu)
      
      - Propagate regulator and clock errors back to .host_init() caller (Richard
        Zhu)
      
      - Disable i.MX6QDL clock when disabling ref clocks (Richard Zhu)
      
      - Call host init function directly in resume instead of duplicating the
        code (Richard Zhu)
      
      - Turn off regulators when suspending (Richard Zhu)
      
      - Make link being down a non-fatal error so probe doesn't fail (Richard
        Zhu)
      
      - Start link in resume only if it was up before suspend to reduce resume
        time (Richard Zhu)
      
      - Move PHY init and power-on out of clock- and reset-related functions
        (Richard Zhu)
      
      - Rework suspend callback to be more symmetric with resume (Richard Zhu)
      
      - Set PCIE_DBI_RO_WR_EN before writing DBI registers (Richard Zhu)
      
      - Allow speeds faster than Gen2 (Richard Zhu)
      
      * pci/ctrl/imx6:
        PCI: imx6: Support more than Gen2 speed link mode
        PCI: imx6: Set PCIE_DBI_RO_WR_EN before writing DBI registers
        PCI: imx6: Reformat suspend callback to keep symmetric with resume
        PCI: imx6: Move the imx6_pcie_ltssm_disable() earlier
        PCI: imx6: Disable clocks in reverse order of enable
        PCI: imx6: Do not hide PHY driver callbacks and refine the error handling
        PCI: imx6: Reduce resume time by only starting link if it was up before suspend
        PCI: imx6: Mark the link down as non-fatal error
        PCI: imx6: Move regulator enable out of imx6_pcie_deassert_core_reset()
        PCI: imx6: Turn off regulator when system is in suspend mode
        PCI: imx6: Call host init function directly in resume
        PCI: imx6: Disable i.MX6QDL clock when disabling ref clocks
        PCI: imx6: Propagate .host_init() errors to caller
        PCI: imx6: Collect clock enables in imx6_pcie_clk_enable()
        PCI: imx6: Factor out ref clock disable to match enable
        PCI: imx6: Move imx6_pcie_clk_disable() earlier
        PCI: imx6: Move imx6_pcie_enable_ref_clk() earlier
        PCI: imx6: Move PHY management functions together
        PCI: imx6: Move imx6_pcie_grp_offset(), imx6_pcie_configure_type() earlier
        PCI: imx6: Convert to NOIRQ_SYSTEM_SLEEP_PM_OPS()
      468276d4
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/fu740' · 0c8b7d12
      Bjorn Helgaas authored
      - Remove unnecessary include files (Bjorn Helgaas)
      
      * pci/ctrl/fu740:
        PCI: fu740: Remove unnecessary include files
      0c8b7d12
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/exynos' · fea77e9f
      Bjorn Helgaas authored
      - Move samsung phy-exynos-pcie init all to exynos5433_pcie_phy_init()
        instead of splitting across phy_init() and phy_power_on() (Marek
        Szyprowski)
      
      - Call phy_init() before phy_power_on() for samsung phy-exynos-pcie, as
        required by the PHY programming model (Marek Szyprowski)
      
      * pci/ctrl/exynos:
        PCI: exynos: Correct generic PHY usage
        phy: samsung: phy-exynos-pcie: sanitize init/power_on callbacks
      fea77e9f
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/dwc-edma' · 94d13317
      Bjorn Helgaas authored
      - Remove unused struct dw_edma_chip.irq (Frank Li)
      
      - Move eDMA private data from struct dw_edma to struct dw_edma_chip (Frank
        Li)
      
      - Convert "struct dw_edma_region rg_region" to "void __iomem *reg_base"
        since only the virtual address (not physical address or size) is used
        (Frank Li)
      
      - Rename "*_ch_cnt" to "ll_*_cnt" to reflect actual usage (Frank Li)
      
      - Drop dma_slave_config.direction field usage (Serge Semin)
      
      - Fix eDMA Rd/Wr-channels and DMA-direction semantics (Serge Semin)
      
      - Add chip-specific DW_EDMA_CHIP_LOCAL flag to indicate that local eDMA
        doesn't require generating MSIs to remote (Frank Li)
      
      - Enable DMA tests for endpoints that support it (Frank Li)
      
      * pci/ctrl/dwc-edma:
        PCI: endpoint: Enable DMA tests for endpoints with DMA capabilities
        dmaengine: dw-edma: Add support for chip-specific flags
        dmaengine: dw-edma: Fix eDMA Rd/Wr-channels and DMA-direction semantics
        dmaengine: dw-edma: Drop dma_slave_config.direction field usage
        dmaengine: dw-edma: Rename wr(rd)_ch_cnt to ll_wr(rd)_cnt in struct dw_edma_chip
        dmaengine: dw-edma: Change rg_region to reg_base in struct dw_edma_chip
        dmaengine: dw-edma: Detach the private data and chip info structures
        dmaengine: dw-edma: Remove unused irq field in struct dw_edma_chip
      94d13317
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/dwc' · 964db794
      Bjorn Helgaas authored
      - Stop link on host_init errors and de-initialization (Serge Semin)
      
      - Add support for unrolled iATU register space in dw_pcie_disable_atu()
        (Serge Semin)
      
      - Disable outbound windows only for controllers that use iATU (Serge Semin)
      
      - Set INCREASE_REGION_SIZE flag based on limit address, not on the size,
        since even a small size may cross a 4GB boundary (Serge Semin)
      
      - Deallocate EPC memory on dw_pcie_ep_init() errors to avoid a leak (Serge
        Semin)
      
      - Always enable CDM check if "snps,enable-cdm-check" exists instead of
        exiting early if the optional "num-lanes" was absent (Serge Semin)
      
      - Simplify detection of whether we're using unrolled iATU registers (Serge
        Semin)
      
      - Make dw_pcie_link_up() more generic by using dw_pcie_readl_dbi() instead
        of readl() (Serge Semin)
      
      - Add dw_pcie_start_link() and dw_pcie_stop_link() wrappers to factor out
        checks for ops being implemented (Serge Semin)
      
      - Move io_cfg_atu_shared to struct pcie_port and rename to cfg0_io_shared,
        since it's not used by dwc common code or dwc endpoint code (Serge Semin)
      
      - Rename struct pcie_port to dw_pcie_rp to indicate that it's
        DesignWare-specific (Serge Semin)
      
      - Drop unused struct dw_plat_pcie regmap pointer (Serge Semin)
      
      - Fix some coding style issues (Serge Semin)
      
      - Log link speed and width if it comes up (Serge Semin)
      
      - Save DWC IP core version in native format as read from
        PORT_LOGIC.PCIE_VERSION_OFF register (Serge Semin)
      
      - Read DWC IP core version from PORT_LOGIC.PCIE_VERSION_OFF (Serge Semin)
      
      - Add macros to compare Synopsys IP core versions (Serge Semin)
      
      - Drop manual DWC IP core version setup from intel-gw and tegra194 (Serge
        Semin)
      
      - Add dw_pcie_ops.host_deinit() callback (Serge Semin)
      
      - Drop enum dw_pcie_as_type in favor of PCIE_ATU_TYPE_MEM/IO (Serge Semin)
      
      - Drop enum dw_pcie_region_type in favor of PCIE_ATU_REGION_DIR_IB/OB
        (Serge Semin)
      
      - Simplify in/outbound iATU setup methods and reduce duplicated code (Serge
        Semin)
      
      - Detect iATU region size from hardware (Serge Semin)
      
      - Validate iATU outbound mappings against hardware constraints (Serge
        Semin)
      
      - Check for errors in iATU setup (Serge Semin)
      
      - Allocate a 32-bit DMA-able page to be MSI target instead of using a
        driver data structure that may not be addressable with 32-bit address
        (Will McVicker)
      
      - Use the bitmap API to allocate bitmaps instead of open-coding it
        (Christophe JAILLET)
      
      - Correct dw_pcie_free_msi() checking for when to remove IRQ handler and
        data (Dmitry Baryshkov)
      
      - Split MSI init to new dw_pcie_msi_host_init() function (Dmitry Baryshkov)
      
      - Convert struct pcie_port.msi_irq to an array so we can support more than
        32 MSI interrupts (Dmitry Baryshkov)
      
      - Handle MSIs routed to multiple GIC interrupts for Qualcomm platforms with
        groups of 32 MSI vectors (Dmitry Baryshkov)
      
      - Add additional MSI interrupts to qcom DT (Dmitry Baryshkov)
      
      * pci/ctrl/dwc:
        dt-bindings: PCI: qcom: Support additional MSI vectors
        PCI: dwc: Handle MSIs routed to multiple GIC interrupts
        PCI: dwc: Convert struct pcie_port.msi_irq to an array
        PCI: dwc: Split MSI IRQ parsing/allocation to a separate function
        PCI: dwc: Correct msi_irq condition in dw_pcie_free_msi()
        PCI: dwc: Use the bitmap API to allocate bitmaps
        PCI: dwc: Fix MSI msi_msg DMA mapping
        PCI: dwc: Check iATU in/outbound range setup status
        PCI: dwc: Validate iATU outbound mappings against hardware constraints
        PCI: dwc: Add iATU regions size detection procedure
        PCI: dwc: Simplify in/outbound iATU setup methods
        PCI: dwc: Drop enum dw_pcie_region_type in favor of PCIE_ATU_REGION_DIR_IB/OB
        PCI: dwc: Drop enum dw_pcie_as_type in favor of PCIE_ATU_TYPE_MEM/IO
        PCI: dwc: Add dw_pcie_ops.host_deinit() callback
        PCI: tegra194: Drop manual DW PCIe controller version setup
        PCI: intel-gw: Drop manual DW PCIe controller version setup
        PCI: dwc: Add macros to compare Synopsys IP core versions
        PCI: dwc: Read DWC IP core version from register
        PCI: dwc: Use native DWC IP core version representation
        PCI: dwc: Detect iATU settings after getting "addr_space" resource
        PCI: dwc: Log link speed and width if it comes up
        PCI: dwc-plat: Drop dw_plat_pcie_of_match[] forward declaration
        PCI: dwc-plat: Drop unused regmap pointer
        PCI: dwc-plat: Simplify dw_plat_pcie_probe() return values
        PCI: dwc: Rename struct pcie_port to dw_pcie_rp
        PCI: dwc: Move io_cfg_atu_shared to struct pcie_port
        PCI: dwc: Add start_link/stop_link inlines
        PCI: dwc: Reuse local pointer to the resource data
        PCI: dwc: Organize local variable usage
        PCI: dwc: Convert dw_pcie_link_up() to use dw_pcie_readl_dbi()
        PCI: dwc: Simplify unrolled iATU detection
        PCI: dwc: Add newlines to log messages
        PCI: dwc: Add braces to multi-line if-else statements
        PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists
        PCI: dwc: Deallocate EPC memory on dw_pcie_ep_init() errors
        PCI: dwc: Set INCREASE_REGION_SIZE flag based on limit address
        PCI: dwc: Disable outbound windows only for controllers using iATU
        PCI: dwc: Add unroll iATU space support to dw_pcie_disable_atu()
        PCI: dwc: Stop link on host_init errors and de-initialization
      964db794
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/brcmstb' · 9154b00f
      Bjorn Helgaas authored
      - Remove unnecessary forward declarations (Jim Quinlan)
      
      - Prevent config space access when link is down (Jim Quinlan)
      
      - Split post-link up initialization to brcm_pcie_start_link() (Jim Quinlan)
      
      - Enable child bus device regulators described under Root Ports in DT (Jim
        Quinlan)
      
      - Disable/enable regulators in suspend/resume (Jim Quinlan)
      
      - Rename .map_bus() functions to end with 'map_bus' as they do in other
        drivers (Jim Quinlan)
      
      * pci/ctrl/brcmstb:
        PCI: brcmstb: Rename .map_bus() functions to end with 'map_bus'
        PCI: brcmstb: Disable/enable regulators in suspend/resume
        PCI: brcmstb: Enable child bus device regulators from DT
        PCI: brcmstb: Split post-link up initialization to brcm_pcie_start_link()
        PCI: brcmstb: Prevent config space access when link is down
        PCI: brcmstb: Remove unnecessary forward declarations
      9154b00f
    • Bjorn Helgaas's avatar
      Merge branch 'pci/ctrl/aardvark' · 95aa832b
      Bjorn Helgaas authored
      - Add support for AER capability on emulated bridge (Pali Rohár)
      
      - Add support for Slot capability on emulated bridge (Pali Rohár)
      
      * pci/ctrl/aardvark:
        PCI: aardvark: Fix reporting Slot capabilities on emulated bridge
        PCI: aardvark: Add support for AER registers on emulated bridge
      95aa832b
    • Bjorn Helgaas's avatar
      Merge branch 'pci/virtualization' · d22b9e60
      Bjorn Helgaas authored
      - Add ACS quirk for Broadcom BCM5750x multifunction NICs that isolate the
        functions but don't advertise an ACS capability (Pavan Chebbi)
      
      * pci/virtualization:
        PCI: Add ACS quirk for Broadcom BCM5750x NICs
      d22b9e60
    • Bjorn Helgaas's avatar
      Merge branch 'pci/resource' · bac0f447
      Bjorn Helgaas authored
      - Replace sparc pci_mmap_page_range() wrapper.  This still leaves a
        sparc-specific pci_mmap_resource_range(), but it's only one interface
        instead of two (Arnd Bergmann)
      
      - Remove sparc-specific pci_mmap_resource_range() by implementing
        pci_iobar_pfn().  This removes the ability to map the entire PCI I/O
        space using /proc/bus/pci, but we believe that's already been broken
        since v2.6.28 (Arnd Bergmann)
      
      * pci/resource:
        sparc: Use generic pci_mmap_resource_range()
        PCI: Remove pci_mmap_page_range() wrapper
      bac0f447
    • Bjorn Helgaas's avatar
      Merge branch 'pci/pm' · 3dc4d333
      Bjorn Helgaas authored
      - Convert documentation examples to generic power management (Bjorn
        Helgaas)
      
      * pci/pm:
        PCI/doc: Convert examples to generic power management
      3dc4d333
    • Bjorn Helgaas's avatar
      Merge branch 'pci/err' · 5a20930f
      Bjorn Helgaas authored
      - Recognize disconnected devices so we don't bother trying to set them to
        "frozen" or "normal" state (Christoph Hellwig)
      
      - Clear PCI Status register during enumeration in case firmware left errors
        logged (Kai-Heng Feng)
      
      - Configure ECRC for every device, including hot-added ones (Stefan Roese)
      
      - Keep AER error reporting enabled for switches (Stefan Roese)
      
      - Enable error reporting for all devices that support AER (Stefan Roese)
      
      - Iterate over error counters instead of error strings to avoid printing
        junk in AER sysfs counters (Mohamed Khalfella)
      
      * pci/err:
        PCI/AER: Iterate over error counters instead of error strings
        PCI/AER: Enable error reporting when AER is native
        PCI/portdrv: Don't disable AER reporting in get_port_device_capability()
        PCI/AER: Configure ECRC for every device
        PCI: Clear PCI_STATUS when setting up device
        PCI/ERR: Recognize disconnected devices in report_error_detected()
      5a20930f
    • Bjorn Helgaas's avatar
      Merge branch 'pci/enumeration' · dc525311
      Bjorn Helgaas authored
      - Split out ARI "next function" handling from the traditional one (Niklas
        Schnelle)
      
      - Move jailhouse "isolated function" (non-zero functions where function 0
        doesn't exist) handling to pci_scan_slot() to avoid duplicating
        multi-function scanning in pci_scan_child_bus_extend() (Niklas Schnelle)
      
      - Extend "isolated function" probing to s390 (Niklas Schnelle).
      
      - Allow s390 zPCI zbus without a function 0 (Niklas Schnelle)
      
      * pci/enumeration:
        s390/pci: allow zPCI zbus without a function zero
        PCI: Extend isolated function probing to s390
        PCI: Move jailhouse's isolated function handling to pci_scan_slot()
        PCI: Split out next_ari_fn() from next_fn()
        PCI: Clean up pci_scan_slot()
      dc525311
    • Bjorn Helgaas's avatar
      Merge branch 'pci/endpoint' · 49210431
      Bjorn Helgaas authored
      - Don't stop an EPC when unbinding an EPF from it (Shunsuke Mie)
      
      * pci/endpoint:
        PCI: endpoint: Don't stop controller when unbinding endpoint function
      49210431
    • Bjorn Helgaas's avatar
      Merge branch 'pci/aspm' · 50f7a544
      Bjorn Helgaas authored
      - Remove pcie_aspm_pm_state_change(), which overwrites ASPM config on power
        state changes (Kai-Heng Feng)
      
      * pci/aspm:
        PCI/ASPM: Unexport pcie_aspm_support_enabled()
        PCI/ASPM: Remove pcie_aspm_pm_state_change()
      50f7a544
  2. 01 Aug, 2022 24 commits