Skip to content

PCI irq mapping fixes and cleanups

Jason Gunthorpe linux-arm-kernel linux-devicetree linux-samsung-soc linux-sh linux-tegra 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 7 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 7 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/7] PCI irq mapping fixes and cleanups
Quoted 3 lines · Tim Harvey

In testing this on IMX6 I'm finding that 'of_irq_parse_and_map_pci()'
always returns -EINVAL because it can't find a dt node for the host
bridge: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/of/of_pci_irq.c#n60.

There may be some kind of issue in the pcie-designware.c:

static struct pci_bus *dw_pcie_scan_bus(int nr, struct pci_sys_data *sys)

{
        struct pci_bus *bus;
        struct pcie_port *pp = sys_to_pcie(sys);

        if (pp) {
                pp->root_bus_nr = sys->busnr;
                bus = pci_scan_root_bus(NULL, sys->busnr, &dw_pcie_ops,
                                     ^^^^^^^^^^^
                                     Shouldn't be null for DT cases.

Perhaps since the driver doesn't pass in a parent pointer, no parent device is associated with the struct pci_bus that gets created, so pci_bus_to_OF_node will always fail and the DT PCI mechanisms become broken.

Jason