06 Aug, 2020

3 commits

  • - Fix several kerneldoc warnings (Krzysztof Kozlowski)

    * pci/doc:
    PCI: Fix kerneldoc warnings

    Bjorn Helgaas
     
  • - Use pci_host_bridge.windows list directly instead of splicing in a
    temporary list for cadence, mvebu, host-common (Rob Herring)

    - Use pci_host_probe() instead of open-coding all the pieces for altera,
    brcmstb, iproc, mobiveil, rcar, rockchip, tegra, v3, versatile, xgene,
    xilinx, xilinx-nwl (Rob Herring)

    - Convert to devm_platform_ioremap_resource_byname() instead of open-coding
    platform_get_resource_byname() and devm_ioremap_resource() for altera,
    cadence, mediatek, rockchip, tegra, xgene (Dejin Zheng)

    - Convert to devm_platform_ioremap_resource() instead of open-coding
    platform_get_resource() and devm_ioremap_resource() for aardvark,
    brcmstb, exynos, ftpci100, versatile (Dejin Zheng)

    - Remove redundant error messages from devm_pci_remap_cfg_resource()
    callers (Dejin Zheng)

    - Drop useless PCI_ENABLE_PROC_DOMAINS from versatile driver (Rob Herring)

    - Default host bridge parent device to the platform device (Rob Herring)

    - Drop unnecessary zeroing of host bridge fields (Rob Herring)

    - Use pci_is_root_bus() instead of tracking root bus number separately in
    aardvark, designware (imx6, keystone, designware-host), mobiveil,
    xilinx-nwl, xilinx, rockchip, rcar (Rob Herring)

    - Set host bridge bus number in pci_scan_root_bus_bridge() instead of each
    driver for aardvark, designware-host, host-common, mediatek, rcar, tegra,
    v3-semi (Rob Herring)

    - Use bridge resources instead of parsing DT 'ranges' again for cadence
    (Rob Herring)

    - Remove private bus number and range from cadence (Rob Herring)

    - Use devm_pci_alloc_host_bridge() to simplify rcar (Rob Herring)

    - Use struct pci_host_bridge.windows list directly rather than a temporary
    (Rob Herring)

    - Reduce OF "missing non-prefetchable window" from error to warning message
    (Rob Herring)

    - Convert rcar-gen2 from old Arm-specific pci_common_init_dev() to new
    arch-independent interfaces (Rob Herring)

    - Move DT resource setup into devm_pci_alloc_host_bridge() (Rob Herring)

    - Set bridge map_irq and swizzle_irq to default functions; drivers that
    don't support legacy IRQs (iproc) need to undo this (Rob Herring)

    * pci/host-probe-refactor:
    PCI: Set bridge map_irq and swizzle_irq to default functions
    PCI: Move DT resource setup into devm_pci_alloc_host_bridge()
    PCI: rcar-gen2: Convert to use modern host bridge probe functions
    PCI: of: Reduce missing non-prefetchable memory region to a warning
    PCI: rcar: Use struct pci_host_bridge.windows list directly
    PCI: rcar: Use devm_pci_alloc_host_bridge()
    PCI: cadence: Remove private bus number and range storage
    PCI: cadence: Use bridge resources for outbound window setup
    PCI: Move setting pci_host_bridge.busnr out of host drivers
    PCI: rcar: Use pci_is_root_bus() to check if bus is root bus
    PCI: rockchip: Use pci_is_root_bus() to check if bus is root bus
    PCI: xilinx: Use pci_is_root_bus() to check if bus is root bus
    PCI: xilinx-nwl: Use pci_is_root_bus() to check if bus is root bus
    PCI: mobiveil: Use pci_is_root_bus() to check if bus is root bus
    PCI: designware: Use pci_is_root_bus() to check if bus is root bus
    PCI: aardvark: Use pci_is_root_bus() to check if bus is root bus
    PCI: Drop unnecessary zeroing of bridge fields
    PCI: Set default bridge parent device
    PCI: versatile: Drop flag PCI_ENABLE_PROC_DOMAINS
    PCI: controller: Remove duplicate error message
    PCI: controller: Convert to devm_platform_ioremap_resource()
    PCI: controller: Convert to devm_platform_ioremap_resource_byname()
    PCI: xilinx: Use pci_host_probe() to register host
    PCI: xilinx-nwl: Use pci_host_probe() to register host
    PCI: rockchip: Use pci_host_probe() to register host
    PCI: rcar: Use pci_host_probe() to register host
    PCI: iproc: Use pci_host_probe() to register host
    PCI: altera: Use pci_host_probe() to register host
    PCI: xgene: Use pci_host_probe() to register host
    PCI: versatile: Use pci_host_probe() to register host
    PCI: v3: Use pci_host_probe() to register host
    PCI: tegra: Use pci_host_probe() to register host
    PCI: mobiveil: Use pci_host_probe() to register host
    PCI: brcmstb: Use pci_host_probe() to register host
    PCI: host-common: Use struct pci_host_bridge.windows list directly
    PCI: mvebu: Use struct pci_host_bridge.windows list directly
    PCI: cadence: Use struct pci_host_bridge.windows list directly

    # Conflicts:
    # drivers/pci/controller/cadence/pcie-cadence-host.c

    Bjorn Helgaas
     
  • Fix kerneldoc warnings, e.g.,

    $ make W=1 drivers/pci/
    drivers/pci/ats.c:196: warning: Function parameter or member 'pdev' not described in 'pci_enable_pri'
    drivers/pci/ats.c:196: warning: Function parameter or member 'reqs' not described in 'pci_enable_pri'
    ...

    Link: https://lore.kernel.org/r/20200729201224.26799-2-krzk@kernel.org
    Link: https://lore.kernel.org/r/20200729201224.26799-3-krzk@kernel.org
    Link: https://lore.kernel.org/r/20200729201224.26799-4-krzk@kernel.org
    Link: https://lore.kernel.org/r/20200729201224.26799-5-krzk@kernel.org
    Link: https://lore.kernel.org/r/20200729201224.26799-6-krzk@kernel.org
    Link: https://lore.kernel.org/r/20200729201224.26799-7-krzk@kernel.org
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Bjorn Helgaas

    Krzysztof Kozlowski
     

04 Aug, 2020

2 commits

  • The majority of DT based host drivers use the default .map_irq() and
    .swizzle_irq() functions, so let's initialize the function pointers to
    the default and drop setting them in the host drivers.

    Drivers like iProc which don't support legacy interrupts need to set
    .map_irq() back to NULL.

    Link: https://lore.kernel.org/r/20200722022514.1283916-20-robh@kernel.org
    Signed-off-by: Rob Herring
    Signed-off-by: Lorenzo Pieralisi
    Acked-by: Bjorn Helgaas
    Cc: Lorenzo Pieralisi
    Cc: Bjorn Helgaas

    Rob Herring
     
  • Now that pci_parse_request_of_pci_ranges() callers just setup
    pci_host_bridge.windows and dma_ranges directly and don't need the bus
    range returned, we can just initialize them when allocating the
    pci_host_bridge struct.

    With this, pci_parse_request_of_pci_ranges() becomes a static function.

    Link: https://lore.kernel.org/r/20200722022514.1283916-19-robh@kernel.org
    Signed-off-by: Rob Herring
    Signed-off-by: Lorenzo Pieralisi
    Acked-by: Bjorn Helgaas
    Cc: Lorenzo Pieralisi
    Cc: Bjorn Helgaas

    Rob Herring
     

24 Jul, 2020

1 commit

  • The pci-rcar-gen2 controller requires only a prefetchable memory region,
    and the error prevents using pci_parse_request_of_pci_ranges() for it.
    Let's reduce this to just a warning message so this function can be used
    for pci-rcar-gen2.

    Link: https://lore.kernel.org/r/20200722022514.1283916-17-robh@kernel.org
    Signed-off-by: Rob Herring
    Signed-off-by: Lorenzo Pieralisi
    Acked-by: Bjorn Helgaas
    Cc: Bjorn Helgaas
    Cc: Lorenzo Pieralisi

    Rob Herring
     

11 Jul, 2020

1 commit

  • "External-facing" devices are internal devices that expose PCIe hierarchies
    such as Thunderbolt outside the platform [1]. Previously these internal
    devices were marked as "untrusted" the same as devices downstream from
    them.

    Use the ACPI or DT information to identify external-facing devices, but
    only mark the devices *downstream* from them as "untrusted" [2]. The
    external-facing device itself is no longer marked as untrusted.

    [1] https://docs.microsoft.com/en-us/windows-hardware/drivers/pci/dsd-for-pcie-root-ports#identifying-externally-exposed-pcie-root-ports
    [2] https://lore.kernel.org/linux-pci/20200610230906.GA1528594@bjorn-Precision-5520/
    Link: https://lore.kernel.org/r/20200707224604.3737893-3-rajatja@google.com
    Signed-off-by: Rajat Jain
    Signed-off-by: Bjorn Helgaas

    Rajat Jain
     

18 May, 2020

1 commit

  • Interpret zero value of max-link-speed property as invalid,
    as the device tree bindings documentation specifies.

    Link: https://lore.kernel.org/r/20200430080625.26070-4-pali@kernel.org
    Tested-by: Tomasz Maciej Nowak
    Signed-off-by: Pali Rohár
    Signed-off-by: Lorenzo Pieralisi
    Acked-by: Rob Herring
    Acked-by: Thomas Petazzoni

    Pali Rohár
     

21 Nov, 2019

2 commits

  • Now that all the PCI host drivers are using pci_parse_request_of_pci_ranges(),
    make devm_of_pci_get_host_bridge_resources() static.

    Signed-off-by: Rob Herring
    Signed-off-by: Lorenzo Pieralisi
    Cc: Bjorn Helgaas

    Rob Herring
     
  • Extend devm_of_pci_get_host_bridge_resources() and
    pci_parse_request_of_pci_ranges() helpers to also parse the inbound
    addresses from DT 'dma-ranges' and populate a resource list with the
    translated addresses. This will help ensure 'dma-ranges' is always
    parsed in a consistent way.

    Tested-by: Srinath Mannam
    Tested-by: Thomas Petazzoni # for AArdvark
    Signed-off-by: Rob Herring
    Signed-off-by: Lorenzo Pieralisi
    Reviewed-by: Srinath Mannam
    Reviewed-by: Andrew Murray
    Acked-by: Gustavo Pimentel
    Cc: Jingoo Han
    Cc: Gustavo Pimentel
    Cc: Lorenzo Pieralisi
    Cc: Bjorn Helgaas
    Cc: Thomas Petazzoni
    Cc: Will Deacon
    Cc: Linus Walleij
    Cc: Toan Le
    Cc: Ley Foon Tan
    Cc: Tom Joseph
    Cc: Ray Jui
    Cc: Scott Branden
    Cc: bcm-kernel-feedback-list@broadcom.com
    Cc: Ryder Lee
    Cc: Karthikeyan Mitran
    Cc: Hou Zhiqiang
    Cc: Simon Horman
    Cc: Shawn Lin
    Cc: Heiko Stuebner
    Cc: Michal Simek
    Cc: rfi@lists.rocketboards.org
    Cc: linux-mediatek@lists.infradead.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: linux-rockchip@lists.infradead.org

    Rob Herring
     

29 Oct, 2019

1 commit


31 Aug, 2019

1 commit

  • 530210c7814e ("of/irq: Replace of_irq with of_phandle_args") changed the
    of_irq_parse_pci() parameter type but didn't change the corresponding
    documentation. Update the function doc to match.

    Link: https://lore.kernel.org/r/20190807132049.10304-1-lkundrak@v3.sk
    Signed-off-by: Lubomir Rintel
    Signed-off-by: Bjorn Helgaas

    Lubomir Rintel
     

07 Jun, 2019

1 commit

  • For PCI devices that have an OF node, set the fwnode as well. This way
    drivers that rely on fwnode don't need the special case described by
    commit f94277af03ea ("of/platform: Initialise dev->fwnode appropriately").

    Acked-by: Bjorn Helgaas
    Signed-off-by: Jean-Philippe Brucker
    Signed-off-by: Michael S. Tsirkin

    Jean-Philippe Brucker
     

14 May, 2019

1 commit

  • - Move IRQ register address computation inside macros (Kishon Vijay
    Abraham I)

    - Separate legacy IRQ and MSI configuration (Kishon Vijay Abraham I)

    - Use hwirq, not virq, to get MSI IRQ number offset (Kishon Vijay Abraham
    I)

    - Squash ks_pcie_handle_msi_irq() into ks_pcie_msi_irq_handler() (Kishon
    Vijay Abraham I)

    - Add dwc support for platforms with custom MSI controllers (Kishon Vijay
    Abraham I)

    - Add keystone-specific MSI controller (Kishon Vijay Abraham I)

    - Remove dwc host_ops previously used for keystone-specific MSI (Kishon
    Vijay Abraham I)

    - Skip dwc default MSI init if platform has custom MSI controller (Kishon
    Vijay Abraham I)

    - Implement .start_link() and .stop_link() for keystone endpoint support
    (Kishon Vijay Abraham I)

    - Add keystone "reg-names" DT binding (Kishon Vijay Abraham I)

    - Squash ks_pcie_dw_host_init() into ks_pcie_add_pcie_port() (Kishon
    Vijay Abraham I)

    - Get keystone register resources from DT by name, not index (Kishon
    Vijay Abraham I)

    - Get DT resources in .probe() to prepare for endpoint support (Kishon
    Vijay Abraham I)

    - Add "ti,syscon-pcie-mode" DT property for PCIe mode configuration
    (Kishon Vijay Abraham I)

    - Explicitly set keystone to host mode (Kishon Vijay Abraham I)

    - Document DT "atu" reg-names requirement for DesignWare core >= 4.80
    (Kishon Vijay Abraham I)

    - Enable dwc iATU unroll for endpoint mode as well as host mode (Kishon
    Vijay Abraham I)

    - Add dwc "version" to identify core >= 4.80 for ATU programming (Kishon
    Vijay Abraham I)

    - Don't build ARM32-specific keystone code on ARM64 (Kishon Vijay Abraham
    I)

    - Add DT binding for keystone PCIe RC in AM654 SoC (Kishon Vijay Abraham
    I)

    - Add keystone support for AM654 SoC PCIe RC (Kishon Vijay Abraham I)

    - Reset keystone PHYs before enabling them (Kishon Vijay Abraham I)

    - Make of_pci_get_max_link_speed() available to endpoint drivers as well
    as host drivers (Kishon Vijay Abraham I)

    - Add keystone support for DT "max-link-speed" property (Kishon Vijay
    Abraham I)

    - Add endpoint library support for BAR buffer alignment (Kishon Vijay
    Abraham I)

    - Make all dw_pcie_ep_ops structs const (Kishon Vijay Abraham I)

    - Fix fencepost error in dw_pcie_ep_find_capability() (Kishon Vijay
    Abraham I)

    - Add dwc hooks for dbi/dbi2 that share the same address space (Kishon
    Vijay Abraham I)

    - Add keystone support for TI AM654x in endpoint mode (Kishon Vijay
    Abraham I)

    - Configure designware endpoints to advertise smallest resizable BAR
    (1MB) (Kishon Vijay Abraham I)

    - Align designware endpoint ATU windows for raising MSIs (Kishon Vijay
    Abraham I)

    - Add endpoint test support for TI AM654x (Kishon Vijay Abraham I)

    - Fix endpoint test test_reg_bar issue (Kishon Vijay Abraham I)

    * remotes/lorenzo/pci/keystone:
    misc: pci_endpoint_test: Fix test_reg_bar to be updated in pci_endpoint_test
    misc: pci_endpoint_test: Add support to test PCI EP in AM654x
    PCI: designware-ep: Use aligned ATU window for raising MSI interrupts
    PCI: designware-ep: Configure Resizable BAR cap to advertise the smallest size
    PCI: keystone: Add support for PCIe EP in AM654x Platforms
    dt-bindings: PCI: Add PCI EP DT binding documentation for AM654
    PCI: dwc: Add callbacks for accessing dbi2 address space
    PCI: dwc: Fix dw_pcie_ep_find_capability() to return correct capability offset
    PCI: dwc: Add const qualifier to struct dw_pcie_ep_ops
    PCI: endpoint: Add support to specify alignment for buffers allocated to BARs
    PCI: keystone: Add support to set the max link speed from DT
    PCI: OF: Allow of_pci_get_max_link_speed() to be used by PCI Endpoint drivers
    PCI: keystone: Invoke phy_reset() API before enabling PHY
    PCI: keystone: Add support for PCIe RC in AM654x Platforms
    dt-bindings: PCI: Add PCI RC DT binding documentation for AM654
    PCI: keystone: Prevent ARM32 specific code to be compiled for ARM64
    PCI: dwc: Fix ATU identification for designware version >= 4.80
    PCI: dwc: Enable iATU unroll for endpoint too
    dt-bindings: PCI: Document "atu" reg-names
    PCI: keystone: Explicitly set the PCIe mode
    dt-bindings: PCI: Add dt-binding to configure PCIe mode
    PCI: keystone: Move resources initialization to prepare for EP support
    PCI: keystone: Use platform_get_resource_byname() to get memory resources
    PCI: keystone: Perform host initialization in a single function
    dt-bindings: PCI: keystone: Add "reg-names" binding information
    PCI: keystone: Cleanup error_irq configuration
    PCI: keystone: Add start_link()/stop_link() dw_pcie_ops
    PCI: dwc: Remove default MSI initialization for platform specific MSI chips
    PCI: dwc: Remove Keystone specific dw_pcie_host_ops
    PCI: keystone: Use Keystone specific msi_irq_chip
    PCI: dwc: Add support to use non default msi_irq_chip
    PCI: keystone: Cleanup ks_pcie_msi_irq_handler()
    PCI: keystone: Use hwirq to get the MSI IRQ number offset
    PCI: keystone: Add separate functions for configuring MSI and legacy interrupt
    PCI: keystone: Cleanup interrupt related macros

    # Conflicts:
    # drivers/pci/controller/dwc/pcie-designware.h

    Bjorn Helgaas
     

15 Apr, 2019

1 commit


12 Apr, 2019

1 commit


23 Jan, 2019

1 commit


25 Sep, 2018

1 commit

  • iommu-map property is also used by devices with fsl-mc. This
    patch moves the of_pci_map_rid to generic location, so that it
    can be used by other busses too.

    'of_pci_map_rid' is renamed here to 'of_map_rid' and there is no
    functional change done in the API.

    Signed-off-by: Nipun Gupta
    Reviewed-by: Rob Herring
    Reviewed-by: Robin Murphy
    Acked-by: Bjorn Helgaas
    Signed-off-by: Joerg Roedel

    Nipun Gupta
     

16 Aug, 2018

1 commit

  • - Clean up devm_of_pci_get_host_bridge_resources() resource allocation
    (Jan Kiszka)

    - Fixup resizable BARs after suspend/resume (Christian König)

    - Make "pci=earlydump" generic (Sinan Kaya)

    - Fix ROM BAR access routines to stay in bounds and check for signature
    correctly (Rex Zhu)

    * pci/resource:
    PCI: Make pci_get_rom_size() static
    PCI: Add check code for last image indicator not set
    PCI: Avoid accessing memory outside the ROM BAR
    PCI: Make early dump functionality generic
    PCI: Cleanup PCI_REBAR_CTRL_BAR_SHIFT handling
    PCI: Restore resized BAR state on resume
    PCI: Clean up resource allocation in devm_of_pci_get_host_bridge_resources()

    # Conflicts:
    # Documentation/admin-guide/kernel-parameters.txt

    Bjorn Helgaas
     

19 Jul, 2018

1 commit

  • When testing the R-Car PCIe driver on the Condor board, if the PCIe PHY
    driver was left disabled, the kernel crashed with this BUG:

    kernel BUG at lib/ioremap.c:72!
    Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 0 PID: 39 Comm: kworker/0:1 Not tainted 4.17.0-dirty #1092
    Hardware name: Renesas Condor board based on r8a77980 (DT)
    Workqueue: events deferred_probe_work_func
    pstate: 80000005 (Nzcv daif -PAN -UAO)
    pc : ioremap_page_range+0x370/0x3c8
    lr : ioremap_page_range+0x40/0x3c8
    sp : ffff000008da39e0
    x29: ffff000008da39e0 x28: 00e8000000000f07
    x27: ffff7dfffee00000 x26: 0140000000000000
    x25: ffff7dfffef00000 x24: 00000000000fe100
    x23: ffff80007b906000 x22: ffff000008ab8000
    x21: ffff000008bb1d58 x20: ffff7dfffef00000
    x19: ffff800009c30fb8 x18: 0000000000000001
    x17: 00000000000152d0 x16: 00000000014012d0
    x15: 0000000000000000 x14: 0720072007200720
    x13: 0720072007200720 x12: 0720072007200720
    x11: 0720072007300730 x10: 00000000000000ae
    x9 : 0000000000000000 x8 : ffff7dffff000000
    x7 : 0000000000000000 x6 : 0000000000000100
    x5 : 0000000000000000 x4 : 000000007b906000
    x3 : ffff80007c61a880 x2 : ffff7dfffeefffff
    x1 : 0000000040000000 x0 : 00e80000fe100f07
    Process kworker/0:1 (pid: 39, stack limit = 0x (ptrval))
    Call trace:
    ioremap_page_range+0x370/0x3c8
    pci_remap_iospace+0x7c/0xac
    pci_parse_request_of_pci_ranges+0x13c/0x190
    rcar_pcie_probe+0x4c/0xb04
    platform_drv_probe+0x50/0xbc
    driver_probe_device+0x21c/0x308
    __device_attach_driver+0x98/0xc8
    bus_for_each_drv+0x54/0x94
    __device_attach+0xc4/0x12c
    device_initial_probe+0x10/0x18
    bus_probe_device+0x90/0x98
    deferred_probe_work_func+0xb0/0x150
    process_one_work+0x12c/0x29c
    worker_thread+0x200/0x3fc
    kthread+0x108/0x134
    ret_from_fork+0x10/0x18
    Code: f9004ba2 54000080 aa0003fb 17ffff48 (d4210000)

    It turned out that pci_remap_iospace() wasn't undone when the driver's
    probe failed, and since devm_phy_optional_get() returned -EPROBE_DEFER,
    the probe was retried, finally causing the BUG due to trying to remap
    already remapped pages.

    Introduce the devm_pci_remap_iospace() managed API and replace the
    pci_remap_iospace() call with it to fix the bug.

    Fixes: dbf9826d5797 ("PCI: generic: Convert to DT resource parsing API")
    Signed-off-by: Sergei Shtylyov
    [lorenzo.pieralisi@arm.com: split commit/updated the commit log]
    Signed-off-by: Lorenzo Pieralisi
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Linus Walleij

    Sergei Shtylyov
     

20 Jun, 2018

1 commit


31 May, 2018

4 commits


02 Feb, 2018

1 commit

  • * pci/spdx:
    PCI: Add SPDX GPL-2.0+ to replace implicit GPL v2 or later statement
    PCI: Add SPDX GPL-2.0+ to replace GPL v2 or later boilerplate
    PCI: Add SPDX GPL-2.0 to replace COPYING boilerplate
    PCI: Add SPDX GPL-2.0 to replace GPL v2 boilerplate
    PCI: Add SPDX GPL-2.0 when no license was specified

    Bjorn Helgaas
     

01 Feb, 2018

1 commit

  • * lorenzo/pci/cadence:
    PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller
    dt-bindings: PCI: cadence: Add DT bindings for Cadence PCIe endpoint controller
    PCI: endpoint: Fix EPF device name to support multi-function devices
    PCI: endpoint: Add the function number as argument to EPC ops
    PCI: cadence: Add host driver for Cadence PCIe controller
    dt-bindings: PCI: cadence: Add DT bindings for Cadence PCIe host controller
    PCI: Add vendor ID for Cadence
    PCI: Add generic function to probe PCI host controllers
    PCI: generic: fix missing call of pci_free_resource_list()
    PCI: OF: Add generic function to parse and allocate PCI resources
    PCI: Regroup all PCI related entries into drivers/pci/Makefile

    Conflicts:
    drivers/pci/of.c
    include/linux/pci.h

    Bjorn Helgaas
     

31 Jan, 2018

1 commit


29 Jan, 2018

1 commit

  • Add SPDX GPL-2.0+ to all PCI files that specified the GPL and allowed
    either GPL version 2 or any later version.

    Remove the boilerplate GPL version 2 or later language, relying on the
    assertion in b24413180f56 ("License cleanup: add SPDX GPL-2.0 license
    identifier to files with no license") that the SPDX identifier may be used
    instead of the full boilerplate text.

    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Greg Kroah-Hartman

    Bjorn Helgaas
     

25 Jan, 2018

1 commit


18 Jan, 2018

1 commit

  • Following what has been done for other subsystems, move the remaining PCI
    related code out of drivers/of/ and into drivers/pci/of.c

    With this, we can kill a few kconfig symbols.

    Signed-off-by: Rob Herring
    [bhelgaas: minor whitespace, comment cleanups]
    Signed-off-by: Bjorn Helgaas
    Cc: Frank Rowand

    Rob Herring
     

16 Oct, 2015

1 commit


30 Jul, 2015

2 commits

  • A number of platforms do not need to use the msi-parent property,
    as the host bridge itself provides the MSI controller.

    Allow this configuration by performing an irq domain lookup based
    on the host bridge node if it doesn't have a valid msi-parent property.

    Acked-by: Bjorn Helgaas
    Signed-off-by: Marc Zyngier
    Cc:
    Cc: Yijing Wang
    Cc: Ma Jun
    Cc: Lorenzo Pieralisi
    Cc: Duc Dang
    Cc: Hanjun Guo
    Cc: Jiang Liu
    Cc: Jason Cooper
    Link: http://lkml.kernel.org/r/1438091186-10244-7-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     
  • In order to populate the PCI host bridge msi_domain, use the
    "msi-parent" attribute to lookup a corresponding irq domain.
    If found, this is our MSI domain.

    This gets plugged into the core PCI code.

    Acked-by: Bjorn Helgaas
    Signed-off-by: Marc Zyngier
    Cc:
    Cc: Yijing Wang
    Cc: Ma Jun
    Cc: Lorenzo Pieralisi
    Cc: Duc Dang
    Cc: Hanjun Guo
    Cc: Jiang Liu
    Cc: Jason Cooper
    Link: http://lkml.kernel.org/r/1438091186-10244-6-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

19 Aug, 2011

1 commit


08 Jun, 2011

1 commit

  • powerpc has two different ways of matching PCI devices to their
    corresponding OF node (if any) for historical reasons. The ppc64 one
    does a scan looking for matching bus/dev/fn, while the ppc32 one does a
    scan looking only for matching dev/fn on each level in order to be
    agnostic to busses being renumbered (which Linux does on some
    platforms).

    This removes both and instead moves the matching code to the PCI core
    itself. It's the most logical place to do it: when a pci_dev is created,
    we know the parent and thus can do a single level scan for the matching
    device_node (if any).

    The benefit is that all archs now get the matching for free. There's one
    hook the arch might want to provide to match a PHB bus to its device
    node. A default weak implementation is provided that looks for the
    parent device device node, but it's not entirely reliable on powerpc for
    various reasons so powerpc provides its own.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Michal Simek
    Acked-by: Jesse Barnes

    Benjamin Herrenschmidt