1. 07 Jul, 2017 2 commits
  2. 04 Jul, 2017 10 commits
  3. 03 Jul, 2017 11 commits
    • Shawn Lin's avatar
      PCI: rockchip: Use normal register bank for config accessors · dc8cca5e
      Shawn Lin authored
      Rockchip's RC has two banks of registers for the root port: a normal bank
      that is strictly compatible with the PCIe spec, and a privileged bank that
      can be used to change RO bits of root port registers.
      
      When probing the RC driver, we use the privileged bank to do some basic
      setup work as some RO bits are hw-inited to wrong value.  But we didn't
      change to the normal bank after probing the driver.
      
      This leads to a serious problem when the PME code tries to clear the PME
      status by writing PCI_EXP_RTSTA_PME to the register of PCI_EXP_RTSTA.  Per
      PCIe 3.0 spec, section 7.8.14, the PME status bit is RW1C.  So the PME code
      is doing the right thing to clear the PME status but we find the RC doesn't
      clear it but actually setting it to one.  So finally the system trap in
      pcie_pme_work_fn() as PCI_EXP_RTSTA_PME is true now forever.  This issue
      can be reproduced by booting kernel with pci=nomsi.
      
      Use the normal register bank for the PCI config accessors.  The privileged
      bank is used only internally by this driver.
      
      Fixes: e77f847d ("PCI: rockchip: Add Rockchip PCIe controller support")
      Signed-off-by: default avatarShawn Lin <shawn.lin@rock-chips.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Cc: stable@vger.kernel.org
      Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
      Cc: Brian Norris <briannorris@chromium.org>
      dc8cca5e
    • Ryder Lee's avatar
      dt-bindings: PCI: Add documentation for MediaTek PCIe · ea7f4491
      Ryder Lee authored
      Add documentation for PCIe host driver available in MT7623 series SoCs.
      Signed-off-by: default avatarRyder Lee <ryder.lee@mediatek.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      ea7f4491
    • Bjorn Helgaas's avatar
      Merge branch 'pci/host-imx6' into next · beaba77c
      Bjorn Helgaas authored
      * pci/host-imx6:
        PCI: imx6: Add regulator support
      beaba77c
    • Bjorn Helgaas's avatar
      Merge branch 'pci/host-hv' into next · 85e4b30a
      Bjorn Helgaas authored
      * pci/host-hv:
        PCI: hv: Use vPCI protocol version 1.2
        PCI: hv: Add vPCI version protocol negotiation
        PCI: hv: Temporary own CPU-number-to-vCPU-number infra
        PCI: hv: Use page allocation for hbus structure
        PCI: hv: Fix comment formatting and use proper integer fields
      85e4b30a
    • Bjorn Helgaas's avatar
      Merge branch 'pci/host-faraday' into next · 6f65daed
      Bjorn Helgaas authored
      * pci/host-faraday:
        PCI: faraday: Add clock handling
        PCI: faraday: Add clock bindings
      6f65daed
    • Bjorn Helgaas's avatar
      Merge branch 'pci/host-dra7xx' into next · ecf75c46
      Bjorn Helgaas authored
      * pci/host-dra7xx:
        PCI: dwc: dra7xx: Use RW1C for IRQSTATUS_MSI and IRQSTATUS_MAIN
        PCI: dwc: dra7xx: Depend on appropriate SoC or compile test
      ecf75c46
    • Bjorn Helgaas's avatar
      Merge branch 'pci/host-designware' into next · f011a5f8
      Bjorn Helgaas authored
      * pci/host-designware:
        PCI: dwc: Constify dw_pcie_host_ops structures
        PCI: host: Mark PCIe/PCI (MSI) cascade ISR as IRQF_NO_THREAD
      f011a5f8
    • Bjorn Helgaas's avatar
      Merge branch 'pci/irq-fixups' into next · 44d745fb
      Bjorn Helgaas authored
      * pci/irq-fixups:
        arm64: PCI: Drop DT IRQ allocation from pcibios_alloc_irq()
        PCI: xilinx-nwl: Move to struct pci_host_bridge IRQ mapping functions
        PCI: rockchip: Move to struct pci_host_bridge IRQ mapping functions
        PCI: xgene: Move to struct pci_host_bridge IRQ mapping functions
        PCI: altera: Drop pci_fixup_irqs()
        PCI: versatile: Drop pci_fixup_irqs()
        PCI: generic: Drop pci_fixup_irqs()
        PCI: faraday: Drop pci_fixup_irqs()
        PCI: designware: Drop pci_fixup_irqs()
        PCI: iproc: Drop pci_fixup_irqs()
        PCI: rcar: Drop pci_fixup_irqs()
        PCI: xilinx: Drop pci_fixup_irqs()
        PCI: tegra: Drop pci_fixup_irqs()
        ARM/PCI: Remove pci_fixup_irqs() call for bios32 host controllers
        PCI: Add a call to pci_assign_irq() in pci_device_probe()
        OF/PCI: Update of_irq_parse_and_map_pci() comment
        PCI: Add pci_assign_irq() function and have pci_fixup_irqs() use it
        PCI: Add IRQ mapping function pointers to pci_host_bridge struct
        PCI: Build setup-irq.o on all arches
        PCI: Remove pci_scan_root_bus_msi()
        PCI: xilinx-nwl: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: rockchip: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: generic: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: xgene: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: xilinx: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: altera: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: versatile: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: iproc: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: rcar: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: aardvark: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: designware: Convert PCI scan API to pci_scan_root_bus_bridge()
        ARM/PCI: Convert PCI scan API to pci_scan_root_bus_bridge()
        PCI: Make pci_register_host_bridge() PCI core internal
        PCI: Add pci_scan_root_bus_bridge() interface
        PCI: tegra: Fix host bridge memory leakage
        PCI: faraday: Fix host bridge memory leakage
        PCI: Add devm_pci_alloc_host_bridge() interface
        PCI: Add pci_free_host_bridge() interface
        PCI: Initialize bridge release function at bridge allocation
        PCI: faraday: Convert IRQ masking to raw PCI config accessors
        PCI: iproc: Convert link check to raw PCI config accessors
        PCI: xilinx-nwl: Remove nwl_pcie_enable_msi() unused bus parameter
      44d745fb
    • Bjorn Helgaas's avatar
      Merge branch 'pci/virtualization' into next · bb02ce95
      Bjorn Helgaas authored
      * pci/virtualization:
        PCI: Remove __pci_dev_reset() and pci_dev_reset()
        PCI: Split ->reset_notify() method into ->reset_prepare() and ->reset_done()
        PCI: Protect pci_error_handlers->reset_notify() usage with device_lock()
        PCI: Protect pci_driver->sriov_configure() usage with device_lock()
        PCI: Mark Intel XXV710 NIC INTx masking as broken
        PCI: Restore PRI and PASID state after Function-Level Reset
        PCI: Cache PRI and PASID bits in pci_dev
      bb02ce95
    • Christoph Hellwig's avatar
      PCI: Remove __pci_dev_reset() and pci_dev_reset() · 52354b9d
      Christoph Hellwig authored
      Implement the reset probing / reset chain directly in
      __pci_probe_reset_function() and __pci_reset_function_locked()
      respectively.
      
      Link: http://lkml.kernel.org/r/20170601111039.8913-4-hch@lst.deSigned-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      52354b9d
    • Christoph Hellwig's avatar
      PCI: Split ->reset_notify() method into ->reset_prepare() and ->reset_done() · 775755ed
      Christoph Hellwig authored
      The pci_error_handlers->reset_notify() method had a flag to indicate
      whether to prepare for or clean up after a reset.  The prepare and done
      cases have no shared functionality whatsoever, so split them into separate
      methods.
      
      [bhelgaas: changelog, update locking comments]
      Link: http://lkml.kernel.org/r/20170601111039.8913-3-hch@lst.deSigned-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      775755ed
  4. 02 Jul, 2017 17 commits