1. 04 Aug, 2022 9 commits
    • 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. 29 Jul, 2022 2 commits
  3. 27 Jul, 2022 6 commits
  4. 22 Jul, 2022 5 commits
  5. 13 Jul, 2022 3 commits
    • Mohamed Khalfella's avatar
      PCI/AER: Iterate over error counters instead of error strings · 5e6ae050
      Mohamed Khalfella authored
      Previously we iterated over AER stat *names*, e.g.,
      aer_correctable_error_string[32], but the actual stat *counters* may not be
      that large, e.g., pdev->aer_stats->dev_cor_errs[16], which means that we
      printed junk in the sysfs stats files.
      
      Iterate over the stat counter arrays instead of the names to avoid this
      junk.
      
      Also, added a build time check to make sure all
      counters have entries in strings array.
      
      Fixes: 0678e310 ("PCI/AER: Simplify __aer_print_error()")
      Link: https://lore.kernel.org/r/20220509181441.31884-1-mkhalfella@purestorage.comReported-by: default avatarMeeta Saggi <msaggi@purestorage.com>
      Signed-off-by: default avatarMohamed Khalfella <mkhalfella@purestorage.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarMeeta Saggi <msaggi@purestorage.com>
      Reviewed-by: default avatarEric Badger <ebadger@purestorage.com>
      Cc: stable@vger.kernel.org
      5e6ae050
    • Stefan Roese's avatar
      PCI/AER: Enable error reporting when AER is native · f26e58bf
      Stefan Roese authored
      If we have native control of AER, set the following error reporting enable
      bits:
      
        - Correctable Error Reporting Enable
        - Non-Fatal Error Reporting Enable
        - Fatal Error Reporting Enable
        - Unsupported Request Reporting Enable
      
      Note that these bits are all in the Device Control register and are not
      AER-specific.
      
      This affects all devices with an AER capability, including hot-added
      devices.
      
      Please note that this change is quite invasive, as error reporting now will
      be enabled for all available PCIe Endpoints, which was previously not the
      case.
      
      When "pci=noaer" is selected, error reporting stays disabled of course.
      
      [bhelgaas: commit log, note error reporting is not AER-specific]
      Link: https://lore.kernel.org/r/20220125071820.2247260-4-sr@denx.deSigned-off-by: default avatarStefan Roese <sr@denx.de>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarPali Rohár <pali@kernel.org>
      Cc: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
      Cc: Michal Simek <michal.simek@xilinx.com>
      Cc: Yao Hongbo <yaohongbo@linux.alibaba.com>
      Cc: Naveen Naidu <naveennaidu479@gmail.com>
      f26e58bf
    • Stefan Roese's avatar
      PCI/portdrv: Don't disable AER reporting in get_port_device_capability() · 8795e182
      Stefan Roese authored
      AER reporting is currently disabled in the DevCtl registers of all non Root
      Port PCIe devices on systems using pcie_ports_native || host->native_aer,
      disabling AER completely in such systems. This is because 2bd50dd8
      ("PCI: PCIe: Disable PCIe port services during port initialization"), added
      a call to pci_disable_pcie_error_reporting() *after* the AER setup was
      completed for the PCIe device tree.
      
      Here a longer analysis about the current status of AER enabling /
      disabling upon bootup provided by Bjorn:
      
        pcie_portdrv_probe
          pcie_port_device_register
            get_port_device_capability
              pci_disable_pcie_error_reporting
                clear CERE NFERE FERE URRE               # <-- disable for RP USP DSP
            pcie_device_init
              device_register                            # new AER service device
                aer_probe
                  aer_enable_rootport                    # RP only
                    set_downstream_devices_error_reporting
                      set_device_error_reporting         # self (RP)
                        if (RP || USP || DSP)
                          pci_enable_pcie_error_reporting
                            set CERE NFERE FERE URRE     # <-- enable for RP
                      pci_walk_bus
                        set_device_error_reporting
                          if (RP || USP || DSP)
                            pci_enable_pcie_error_reporting
                              set CERE NFERE FERE URRE   # <-- enable for USP DSP
      
      In a typical Root Port -> Endpoint hierarchy, the above:
        - Disables Error Reporting for the Root Port,
        - Enables Error Reporting for the Root Port,
        - Does NOT enable Error Reporting for the Endpoint because it is not a
          Root Port or Switch Port.
      
      In a deeper Root Port -> Upstream Switch Port -> Downstream Switch
      Port -> Endpoint hierarchy:
        - Disables Error Reporting for the Root Port,
        - Enables Error Reporting for the Root Port,
        - Enables Error Reporting for both Switch Ports,
        - Does NOT enable Error Reporting for the Endpoint because it is not a
          Root Port or Switch Port,
        - Disables Error Reporting for the Switch Ports when pcie_portdrv_probe()
          claims them.  AER does not re-enable it because these are not Root
          Ports.
      
      Remove this call to pci_disable_pcie_error_reporting() from
      get_port_device_capability(), leaving the already enabled AER configuration
      intact. With this change, AER is enabled in the Root Port and the PCIe
      switch upstream and downstream ports. Only the PCIe Endpoints don't have
      AER enabled yet. A follow-up patch will take care of this Endpoint
      enabling.
      
      Fixes: 2bd50dd8 ("PCI: PCIe: Disable PCIe port services during port initialization")
      Link: https://lore.kernel.org/r/20220125071820.2247260-3-sr@denx.deSigned-off-by: default avatarStefan Roese <sr@denx.de>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarPali Rohár <pali@kernel.org>
      Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
      Cc: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
      Cc: Michal Simek <michal.simek@xilinx.com>
      Cc: Yao Hongbo <yaohongbo@linux.alibaba.com>
      Cc: Naveen Naidu <naveennaidu479@gmail.com>
      8795e182
  6. 12 Jul, 2022 2 commits
  7. 11 Jul, 2022 2 commits
  8. 06 Jul, 2022 1 commit
  9. 05 Jul, 2022 1 commit
  10. 13 Jun, 2022 2 commits
  11. 09 Jun, 2022 1 commit
  12. 08 Jun, 2022 1 commit
  13. 06 Jun, 2022 3 commits
  14. 05 Jun, 2022 2 commits