On Thursday, June 16, 2016 4:01:12 PM CEST Wenrui Li wrote: > 在 2016/6/16 15:00, Arnd Bergmann 写道: > > On Thursday, June 16, 2016 9:50:21 AM CEST Shawn Lin wrote: > > > >> + reset-names = "core", "mgmt", "mgmt-sticky", "pipe"; > >> + phys = <&pcie_phy>; > >> + phy-names = "pcie-phy"; > >> + pinctrl-names = "default"; > >> + pinctrl-0 = <&pcie_clkreq>; > >> + #interrupt-cells = <1>; > >> + interrupt-controller; > >> + interrupt-map-mask = <0 0 0 7>; > >> + interrupt-map = <0 0 0 1 &pcie0 1>, > >> + <0 0 0 2 &pcie0 2>, > >> + <0 0 0 3 &pcie0 3>, > >> + <0 0 0 4 &pcie0 4>; > >> +}; > >> > > > > One thing that came up in the review of the new Marvell PCIe driver is that it's > > most likely invalid for a device node to have both "interrupt-controller" > > and "interrupt-map" properties. I originally thought this was a nice way to > > handle embedded irqchips within the PCIe host, but it only really works > > by coincidence with the current kernel, and only as long as the hwirq number > > of the irqchip matches the integer representation of the irq line in the root > > bridge (which it does in the example above). > > > > For that driver we concluded that it would be less of a hack to have the > > irqchip as a child node of the PCIe host after all (just not with > > device_type="pci" of course), and that makes the translation work as > > expected. > > > > Arnd > > > > Original driver have an irqchip as child node. But Marc suggested don't > need an intermediate node here. > Now the conclusion is to retain the child node? That is at least my view of the situation, sorry for the mixed messages you have been getting. Marc, Rob, do you agree with my finding? If we want to allow having both interrupt-map and interrupt-controller in the same node, we need to rewrite both the irq parsing function and have extend the DT binding for the interrupt-map to explain what we actually expect to happen in that case. At the moment, we walk up the tree until we find either an interrupt-map or an interrupt-controller property, and use that to map the interrupt number. If we find an interrupt-controller, we ignore the interrupt-map. Arnd -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html