On Tuesday 09 September 2014 09:46:21 Liviu Dudau wrote: > On Tue, Sep 09, 2014 at 06:54:21AM +0100, Yijing Wang wrote: > > >>> on new requests. This function gets called quite a lot and I'm trying not to > > >>> make it too heavy weight. > > >> > > >> Generally, nothing should be accessing the same DT value frequently. > > >> It should get cached somewhere. > > >> > > > > > > The problem appears for DTs that don't have the pci-domain info. Then the cached > > > value is left at the default non-valid value and attempts to rescan the DT will > > > be made every time the function is called. > > > > > >> I don't really understand how domains are used so it's hard to provide > > >> a recommendation here. Do domains even belong in the DT? > > > > > > ACPI calls them segments and the way Bjorn explained it to me at some moment was > > > that it was an attempt to split up a bus in different groups (or alternatively, > > > merge a few busses together). To be honest I haven't seen systems where the domain > > > is anything other than zero, but JasonG (or maybe Benjamin) were floating an > > > idea of using the domain number to identify physical slots. > > > > PCI domain(or named segment) is provided by firmware, in ACPI system, we evaluated it > > by method "_SEG". in IA64 with ACPI, PCI hostbridge driver retrieves the domain from ACPI, > > if it's absent, the default domain is zero. So I wonder why in DTS, if it's absent, we get > > a auto increment domain value. > > Because you can have more than one hostbridge (rare, but not impossible) and unless you > want to join the two segments, you might want to give it a different domain. I think you misunderstood the question. The difference is that in ACPI you are required to specify the domain, while in DT it is optional with your implementation. I think in general it would be nice if we could mandate that in DT you also have to always provide a domain number, however the problem is that we can't change the existing DTB files that people are using that do not specify a domain. We could possibly make this an architecture specific setting though and mandate that all ARM64 platforms have to set it, while ARM32 does not need it. 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