1. 06 Jun, 2018 20 commits
    • Bjorn Helgaas's avatar
      Merge branch 'lorenzo/pci/rcar' · 1c2bef0a
      Bjorn Helgaas authored
        - clean up clocks, MSI, IRQ mappings in R-Car probe failure paths (Marek
          Vasut)
      
        - poll more frequently (5us vs 5ms) while waiting for R-Car data link
          active (Marek Vasut)
      
        - use generic OF parsing interface in R-Car (Vladimir Zapolskiy)
      
        - add R-Car V3H (R8A77980) "compatible" string (Sergei Shtylyov)
      
        - add R-Car gen3 PHY support (Sergei Shtylyov)
      
        - improve R-Car PHYRDY polling (Sergei Shtylyov)
      
        - clean up R-Car macros (Marek Vasut)
      
        - use runtime PM for R-Car controller clock (Dien Pham)
      
      * lorenzo/pci/rcar:
        PCI: rcar: Remove IRQ mappings in rcar_pcie_enable_msi() failpath
        PCI: rcar: Teardown MSI setup if rcar_pcie_enable() fails
        PCI: rcar: Add missing irq_dispose_mapping() into failpath
        PCI: rcar: Pull bus clock enable/disable from rcar_pcie_get_resources()
        PCI: rcar: Poll more often in rcar_pcie_wait_for_dl()
        PCI: rcar: Reuse generic pci_parse_request_of_pci_ranges() function
        DT: pci: rcar-pci: document R8A77980 bindings
        PCI: rcar: Factor out rcar_pcie_hw_init() call
        PCI: rcar: Add R-Car gen3 PHY support
        PCI: rcar: Remove PHYRDY polling from rcar_pcie_hw_init_h1()
        PCI: rcar: Poll PHYRDY in rcar_pcie_hw_init()
        PCI: rcar: Clean up the macros
        PCI: rcar: Use runtime PM to control controller clock
      
      # Conflicts:
      #	drivers/pci/host/pcie-rcar.c
      1c2bef0a
    • Bjorn Helgaas's avatar
      Merge branch 'pci/host/qcom' · 4c31ff0b
      Bjorn Helgaas authored
      * pci/host/qcom:
        PCI: qcom: Include gpio/consumer.h
      4c31ff0b
    • Bjorn Helgaas's avatar
      Merge branch 'pci/host/mobiveil' · 93763ee6
      Bjorn Helgaas authored
        - add Mobiveil PCIe host controller driver (Subrahmanya Lingappa)
      
        - add Mobiveil MSI support (Subrahmanya Lingappa)
      
      * pci/host/mobiveil:
        PCI: mobiveil: Add MSI support
        PCI: mobiveil: Add Mobiveil PCIe Host Bridge IP driver
        PCI: mobiveil: Add Mobiveil PCIe Host Bridge IP driver DT bindings
      93763ee6
    • Bjorn Helgaas's avatar
      Merge branch 'lorenzo/pci/mediatek' · cc64520f
      Bjorn Helgaas authored
        - implement Mediatek chained IRQ handling (Honghui Zhang)
      
        - fix vendor ID & class type for Mediatek MT7622 (Honghui Zhang)
      
      * lorenzo/pci/mediatek:
        PCI: mediatek: Implement chained IRQ handling setup
        PCI: mediatek: Set up vendor ID and class type for MT7622
      
      # Conflicts:
      #	drivers/pci/host/Kconfig
      cc64520f
    • Bjorn Helgaas's avatar
      Merge branch 'lorenzo/pci/hv' · 741f8e7e
      Bjorn Helgaas authored
        - fix Hyper-V bus registration failure caused by domain/serial number
          confusion (Sridhar Pitchai)
      
        - improve Hyper-V refcounting and coding style (Stephen Hemminger)
      
        - avoid potential Hyper-V hang waiting for a response that will never
          come (Dexuan Cui)
      
      * lorenzo/pci/hv:
        PCI: hv: Do not wait forever on a device that has disappeared
        PCI: hv: Use list_for_each_entry()
        PCI: hv: Convert remove_lock to refcount
        PCI: hv: Remove unused reason for refcount handler
        PCI: hv: Make sure the bus domain is really unique
      741f8e7e
    • Bjorn Helgaas's avatar
      Merge branch 'lorenzo/pci/host/misc' · 5db844ee
      Bjorn Helgaas authored
        - update Layerscape maintainer email addresses (Minghuan Lian)
      
        - add COMPILE_TEST to improve build test coverage (Rob Herring)
      
      * lorenzo/pci/host/misc:
        MAINTAINERS: Update Layerscape PCIe driver maintainers list
        PCI: Improve host drivers compile test coverage
      
      # Conflicts:
      #	drivers/pci/dwc/Kconfig
      5db844ee
    • Bjorn Helgaas's avatar
      Merge branch 'lorenzo/pci/endpoint' · bf79d7d0
      Bjorn Helgaas authored
        - use usleep() instead of mdelay() in endpoint test (Jia-Ju Bai)
      
        - add configfs entries for pci_epf_driver device IDs (Kishon Vijay
          Abraham I)
      
        - clean up pci_endpoint_test driver (Gustavo Pimentel)
      
      * lorenzo/pci/endpoint:
        PCI: endpoint: Create configfs entry for each pci_epf_device_id table entry
        misc: pci_endpoint_test: Use pci_irq_vector function
        PCI: endpoint: functions/pci-epf-test: Replace lower into upper case characters
        misc: pci_endpoint_test: Replace lower into upper case characters
        PCI: endpoint: Replace mdelay with usleep_range() in pci_epf_test_write()
      bf79d7d0
    • Bjorn Helgaas's avatar
      Merge branch 'lorenzo/pci/dwc-fixes' · d792b326
      Bjorn Helgaas authored
        - fix DesignWare enumeration below bridges (Koen Vandeputte)
      
      * lorenzo/pci/dwc-fixes:
        PCI: dwc: Fix enumeration end when reaching root subordinate
      d792b326
    • Bjorn Helgaas's avatar
      Merge branch 'lorenzo/pci/dwc' · f03c7aa4
      Bjorn Helgaas authored
        - reduce Keystone "link already up" log level (Fabio Estevam)
      
        - move private DT functions to drivers/pci/ (Rob Herring)
      
        - factor out dwc CONFIG_PCI Kconfig dependencies (Rob Herring)
      
        - add DesignWare support to the endpoint test driver (Gustavo Pimentel)
      
        - add DesignWare support for endpoint mode (Gustavo Pimentel)
      
        - use devm_ioremap_resource() instead of devm_ioremap() in dra7xx and
          artpec6 (Gustavo Pimentel)
      
        - fix Qualcomm bitwise NOT issue (Dan Carpenter)
      
        - add Qualcomm runtime PM support (Srinivas Kandagatla)
      
      * lorenzo/pci/dwc:
        PCI: qcom: add runtime pm support to pcie_port
        PCI: qcom: Fix a bitwise vs logical NOT typo
        PCI: dwc: dra7xx: Use devm_ioremap_resource() instead of devm_ioremap()
        PCI: dwc: artpec6: Use devm_ioremap_resource() instead of devm_ioremap()
        misc: pci_endpoint_test: Add DesignWare EP entry
        dt-bindings: PCI: designware: Add support for EP in DesignWare driver
        PCI: dwc: Add support for EP mode
        dt-bindings: PCI: designware: Example update
        PCI: Move private DT related functions into private header
        PCI: dwc: Move CONFIG_PCI depends to menu
        PCI: dwc: Replace magic number by defines
        PCI: dwc: Small computation improvement
        PCI: dwc: Replace lower into upper case characters
        PCI: dwc: Define maximum number of vectors
        PCI: imx6: Remove space before tabs
        PCI: keystone: Do not treat link up message as error
      
      # Conflicts:
      #	include/linux/of_pci.h
      f03c7aa4
    • Bjorn Helgaas's avatar
      Merge branch 'lorenzo/pci/armada8k' · bdc4bb13
      Bjorn Helgaas authored
        - enable register clock for Armada 7K/8K (Gregory CLEMENT)
      
      * lorenzo/pci/armada8k:
        PCI: armada8k: Fix clock resource by adding a register clock
        PCI: armada8k: Remove useless test before clk_disable_unprepare()
      bdc4bb13
    • Bjorn Helgaas's avatar
      Merge branch 'pci/virtualization' · fd83941d
      Bjorn Helgaas authored
        - add generic enable function for simple SR-IOV hardware (Alexander
          Duyck)
      
        - use generic SR-IOV enable for ena, nvme (Alexander Duyck)
      
        - add ACS quirk for Intel 7th & 8th Gen mobile (Alex Williamson)
      
        - add ACS quirk for Intel 300 series (Mika Westerberg)
      
      * pci/virtualization:
        PCI/IOV: Allow PF drivers to limit total_VFs to 0
        PCI: Add "pci=noats" boot parameter
        PCI: Add ACS quirk for Intel 300 series
        PCI: Add ACS quirk for Intel 7th & 8th Gen mobile
        nvme-pci: Use pci_sriov_configure_simple() to enable VFs
        net: ena: Use pci_sriov_configure_simple() to enable VFs
        PCI/IOV: Add pci-pf-stub driver for PFs that only enable VFs
        PCI/IOV: Add pci_sriov_configure_simple()
      fd83941d
    • Bjorn Helgaas's avatar
      Merge branch 'pci/sparc' · 13fbadcd
      Bjorn Helgaas authored
        - request legacy VGA framebuffer only for VGA devices to avoid false
          device conflicts (Bjorn Helgaas)
      
        - turn on PCI_COMMAND_IO & PCI_COMMAND_MEMORY in pci_enable_device() like
          everybody else, not in pcibios_fixup_bus() (Bjorn Helgaas)
      
      * pci/sparc:
        sparc/PCI: Use dev_printk() when possible
        sparc32/PCI/PCIC: Converge device enable path
        sparc32/PCI/LEON: Converge device enable path
        sparc/PCI: Request legacy VGA framebuffer only for VGA devices
      13fbadcd
    • Bjorn Helgaas's avatar
      Merge branch 'pci/resource' · a7c9d4cf
      Bjorn Helgaas authored
        - add managed interface to get PCI host bridge resources from OF (Jan
          Kiszka)
      
        - add support for unbinding generic PCI host controller (Jan Kiszka)
      
        - fix memory leaks when unbinding generic PCI host controller (Jan Kiszka)
      
      * pci/resource:
        PCI: Enable PCI_DOMAINS along with generic PCI host controller
        PCI: Add support for unbinding the generic PCI host controller
        PCI: Rework of_pci_get_host_bridge_resources() to devm_of_pci_get_host_bridge_resources()
        PCI: Use dev_printk() in of_pci_get_host_bridge_resources()
        PCI: Pass struct device to of_pci_get_host_bridge_resources()
        PCI: Rename of_pci_get_host_bridge_resources() device node parameter
        PCI: Fix devm_pci_alloc_host_bridge() memory leak
        PCI: Make pci_get_new_domain_nr() static
      a7c9d4cf
    • Bjorn Helgaas's avatar
      Merge branch 'pci/portdrv' · ae08aa13
      Bjorn Helgaas authored
        - remove unused pcie_port_acpi_setup() and portdrv_acpi.c (Bjorn Helgaas)
      
      * pci/portdrv:
        PCI/portdrv: Remove unused pcie_port_acpi_setup()
      ae08aa13
    • Bjorn Helgaas's avatar
      Merge branch 'pci/misc' · aee9684a
      Bjorn Helgaas authored
        - add macros for PCIe Link Control 2 register (Frederick Lawler)
      
        - replace IB/hfi1 custom macros with PCI core versions (Frederick Lawler)
      
        - remove dead microblaze and xtensa code (Bjorn Helgaas)
      
        - use dev_printk() when possible in xtensa and mips (Bjorn Helgaas)
      
      * pci/misc:
        MIPS: PCI: Use dev_printk() when possible
        xtensa/PCI: Use dev_printk() when possible
        xtensa/PCI: Make variables static
        xtensa/PCI: Remove dead code
        microblaze/PCI: Remove pcibios_claim_one_bus() dead code
        microblaze/PCI: Remove pcibios_finish_adding_to_bus() dead code
        IB/hfi1: Replace custom hfi1 macros with PCIe macros
        PCI: Add PCI_EXP_LNKCTL2_TLS* macros
      aee9684a
    • Bjorn Helgaas's avatar
      Merge branch 'pci/hotplug' · f64c1464
      Bjorn Helgaas authored
        - fix use-before-set error in ibmphp (Dan Carpenter)
      
        - fix pciehp timeouts caused by Command Completed errata (Bjorn Helgaas)
      
        - fix refcounting in pnv_php hotplug (Julia Lawall)
      
        - clear pciehp Presence Detect and Data Link Layer Status Changed on
          resume so we don't miss hotplug events (Mika Westerberg)
      
        - only request pciehp control if we support it, so platform can use ACPI
          hotplug otherwise (Mika Westerberg)
      
        - convert SHPC to be builtin only (Mika Westerberg)
      
        - request SHPC control via _OSC if we support it (Mika Westerberg)
      
        - simplify SHPC handoff from firmware (Mika Westerberg)
      
      * pci/hotplug:
        PCI: Improve "partially hidden behind bridge" log message
        PCI: Improve pci_scan_bridge() and pci_scan_bridge_extend() doc
        PCI: Move resource distribution for single bridge outside loop
        PCI: Account for all bridges on bus when distributing bus numbers
        ACPI / hotplug / PCI: Drop unnecessary parentheses
        ACPI / hotplug / PCI: Mark stale PCI devices disconnected
        ACPI / hotplug / PCI: Don't scan bridges managed by native hotplug
        PCI: hotplug: Add hotplug_is_native()
        PCI: shpchp: Add shpchp_is_native()
        PCI: shpchp: Fix AMD POGO identification
        PCI: shpchp: Use dev_printk() for OSHP-related messages
        PCI: shpchp: Remove get_hp_hw_control_from_firmware() wrapper
        PCI: shpchp: Remove acpi_get_hp_hw_control_from_firmware() flags
        PCI: shpchp: Rely on previous _OSC results
        PCI: shpchp: Request SHPC control via _OSC when adding host bridge
        PCI: shpchp: Convert SHPC to be builtin only
        PCI: pciehp: Make pciehp_is_native() stricter
        PCI: pciehp: Rename host->native_hotplug to host->native_pcie_hotplug
        PCI: pciehp: Request control of native hotplug only if supported
        PCI: pciehp: Clear Presence Detect and Data Link Layer Status Changed on resume
        PCI: pnv_php: Add missing of_node_put()
        PCI: pciehp: Add quirk for Command Completed errata
        PCI: Add Qualcomm vendor ID
        PCI: ibmphp: Fix use-before-set in get_max_bus_speed()
      
      # Conflicts:
      #	drivers/acpi/pci_root.c
      f64c1464
    • Bjorn Helgaas's avatar
      Merge branch 'pci/enumeration' · 5e3165d1
      Bjorn Helgaas authored
        - neaten pci=earlydump output (Andy Shevchenko)
      
        - avoid errors when extended config space inaccessible (Gilles Buloz)
      
        - prevent sysfs disable of device while driver attached (Christoph
          Hellwig)
      
        - use core interface to report PCIe link properties in bnx2x, bnxt_en,
          cxgb4, ixgbe (Bjorn Helgaas)
      
        - remove unused pcie_get_minimum_link() (Bjorn Helgaas)
      
      * pci/enumeration:
        PCI: Remove unused pcie_get_minimum_link()
        ixgbe: Report PCIe link properties with pcie_print_link_status()
        cxgb4: Report PCIe link properties with pcie_print_link_status()
        bnxt_en: Report PCIe link properties with pcie_print_link_status()
        bnx2x: Report PCIe link properties with pcie_print_link_status()
        PCI: Prevent sysfs disable of device while driver is attached
        PCI: Check whether bridges allow access to extended config space
        x86/PCI: Make pci=earlydump output neat
      5e3165d1
    • Bjorn Helgaas's avatar
      Merge branch 'pci/dpc' · 8e069da2
      Bjorn Helgaas authored
        - clear interrupt status in top half to avoid interrupt storm (Oza
          Pawandeep)
      
      * pci/dpc:
        PCI/DPC: Clear interrupt status in interrupt handler top half
      8e069da2
    • Bjorn Helgaas's avatar
      Merge branch 'pci/aspm' · 08b5b2f7
      Bjorn Helgaas authored
        - disable ASPM L1.2 substate if we don't have LTR (Bjorn Helgaas)
      
        - respect platform ownership of LTR (Bjorn Helgaas)
      
      * pci/aspm:
        PCI/ACPI: Request LTR control from platform before using it
        PCI/ASPM: Disable ASPM L1.2 Substate if we don't have LTR
      08b5b2f7
    • Bjorn Helgaas's avatar
      Merge branch 'pci/aer' · d7e02c08
      Bjorn Helgaas authored
        - unify AER decoding for native and ACPI CPER sources (Alexandru Gagniuc)
      
        - add TLP header info to AER tracepoint (Thomas Tai)
      
        - add generic pcie_wait_for_link() interface (Oza Pawandeep)
      
        - handle AER ERR_FATAL by removing and re-enumerating devices, as
          Downstream Port Containment does (Oza Pawandeep)
      
        - factor out common code between AER and DPC recovery (Oza Pawandeep)
      
        - stop triggering DPC for ERR_NONFATAL errors (Oza Pawandeep)
      
        - share ERR_FATAL recovery path between AER and DPC (Oza Pawandeep)
      
      * pci/aer:
        PCI/AER: Replace struct pcie_device with pci_dev
        PCI/AER: Remove unused parameters
        PCI/AER: Decode Error Source Requester ID
        PCI/AER: Remove aer_recover_work_func() forward declaration
        PCI/DPC: Use the generic pcie_do_fatal_recovery() path
        PCI/AER: Pass service type to pcie_do_fatal_recovery()
        PCI/DPC: Disable ERR_NONFATAL handling by DPC
        PCI/portdrv: Add generic pcie_port_find_device()
        PCI/portdrv: Add generic pcie_port_find_service()
        PCI/AER: Factor out error reporting to drivers/pci/pcie/err.c
        PCI/AER: Rename error recovery interfaces to generic PCI naming
        PCI/AER: Handle ERR_FATAL with removal and re-enumeration of devices
        PCI: Add generic pcie_wait_for_link() interface
        PCI/AER: Add TLP header information to tracepoint
        PCI/AER: Unify error bit printing for native and CPER reporting
      d7e02c08
  2. 05 Jun, 2018 2 commits
  3. 04 Jun, 2018 13 commits
  4. 03 Jun, 2018 5 commits
    • Bjorn Helgaas's avatar
      PCI/AER: Decode Error Source Requester ID · 010caed4
      Bjorn Helgaas authored
      Decode the Requester ID from the AER Error Source Register into domain/
      bus/device/function format to match other logging.  In cases where the ID
      matches the device used for pci_err(), drop the extra ID completely so we
      don't print it twice.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      010caed4
    • Borislav Petkov's avatar
      PCI/AER: Remove aer_recover_work_func() forward declaration · ad4050dc
      Borislav Petkov authored
      Just move the actual function up so that it is visible to its user
      aer_recover_queue().
      
      No functional changes.
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      ad4050dc
    • Oza Pawandeep's avatar
      PCI/DPC: Use the generic pcie_do_fatal_recovery() path · b09803b5
      Oza Pawandeep authored
      Our goal is to handle ERR_FATAL errors similarly, whether they are reported
      via AER or via DPC.  A previous commit changed AER so it handles ERR_FATAL
      by calling driver .remove() methods and resetting the Link.  DPC already
      does that (although the Link reset is done automatically by hardware and
      happens before we call the driver .remove() methods).
      
      Restructure the DPC code so it calls the same pcie_do_fatal_recovery()
      interface used by AER.  This makes it clearer that we want to use the same
      path.
      
      Implement the .reset_link() method used by pcie_do_fatal_recovery().  For
      DPC, the actual reset is done automatically by hardware, so we really only
      have to wait for the Link to be inactive, then release the Port from DPC.
      Signed-off-by: default avatarOza Pawandeep <poza@codeaurora.org>
      [bhelgaas: changelog, DPC_FATAL is not a bitfield, can be sequential]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      b09803b5
    • Oza Pawandeep's avatar
      PCI/AER: Pass service type to pcie_do_fatal_recovery() · 0b91439d
      Oza Pawandeep authored
      Pass the service type to pcie_do_fatal_recovery() instead of assuming AER.
      We will make DPC also use pcie_do_fatal_recovery(), and it needs to do
      things a little differently for AER and DPC.
      Signed-off-by: default avatarOza Pawandeep <poza@codeaurora.org>
      [bhelgaas: split to separate patch]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      0b91439d
    • Oza Pawandeep's avatar
      PCI/DPC: Disable ERR_NONFATAL handling by DPC · 6927868e
      Oza Pawandeep authored
      PCIe ERR_NONFATAL errors mean a particular transaction is unreliable but
      the Link is otherwise fully functional (PCIe r4.0, sec 6.2.2).
      
      The AER driver handles these by logging the error details and calling
      driver-supplied pci_error_handlers callbacks.  It does not reset downstream
      devices, does not remove them from the PCI subsystem, does not re-enumerate
      them, and does not call their driver .remove() or .probe() methods.
      
      But DPC driver previously enabled DPC on ERR_NONFATAL, so if the hardware
      supports DPC, these errors caused a Link reset (performed automatically by
      the hardware), followed by the DPC driver removing affected devices (which
      calls their .remove() methods), bringing the Link back up, and
      re-enumerating (which calls driver .probe() methods).
      
      Disable ERR_NONFATAL DPC triggering so these errors will only be handled by
      AER.  This means drivers won't have to deal with different usage of their
      pci_error_handlers callbacks and .probe() and .remove() methods based on
      whether the platform has DPC support.
      Signed-off-by: default avatarOza Pawandeep <poza@codeaurora.org>
      [bhelgaas: changelog]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      6927868e