Am Dienstag, den 30.05.2017, 12:32 +0100 schrieb Joao Pinto: > This patch adds the new interrupt api to pcie-designware, keeping the old > one. Although the old API is still available, pcie-designware initiates > with the new one. > > Signed-off-by: Joao Pinto <jpinto@xxxxxxxxxxxx> > --- [...] > @@ -378,17 +593,18 @@ int dw_pcie_host_init(struct pcie_port *pp) > > if (IS_ENABLED(CONFIG_PCI_MSI)) { > if (!pp->ops->msi_host_init) { > - pp->irq_domain = irq_domain_add_linear(dev->of_node, > - MAX_MSI_IRQS, &msi_domain_ops, > - &dw_pcie_msi_chip); > - if (!pp->irq_domain) { > - dev_err(dev, "irq domain init failed\n"); > - ret = -ENXIO; > + ret = of_property_read_u32(np, "num-vectors", > + &pp->num_vectors); > + if (ret) > + pp->num_vectors = 1; This adds a DT property without documentation. That's a strong no-go. Why do you even need this property? The number of vectors available can be inferred from the compatible, so there is no need to push this into the DT. A fallback of only 1 vector if the property doesn't exist is also pretty limiting. The old implementation allowed for at least 32 vectors, with most of the core implementations probably allowing much more in hardware. Regards, Lucas