Hi Stephen, On Tue, Sep 24, 2019 at 10:41:33PM -0700, Stephen Boyd wrote: > The DT binding could also be simplified somewhat. Currently a path needs > to be specified in DT for each and every use case that is possible for a > device to want. Typically the path is to memory, which looks to be > reserved for in the binding with the "dma-mem" named path, but sometimes > the path is from a device to the CPU or more generically from a device > to another device which could be a CPU, cache, DMA master, or another > device if some sort of DMA to DMA scenario is happening. Let's remove > the pair part of the binding so that we just list out a device's > possible endpoints on the bus or busses that it's connected to. > > If the kernel wants to figure out what the path is to memory or the CPU > or a cache or something else it should be able to do that by finding the > node for the "destination" endpoint, extracting that node's > "interconnects" property, and deriving the path in software. For > example, we shouldn't need to write out each use case path by path in DT > for each endpoint node that wants to set a bandwidth to memory. We > should just be able to indicate what endpoint(s) a device sits on based > on the interconnect provider in the system and then walk the various > interconnects to find the path from that source endpoint to the > destination endpoint. The dma-mem name is used by the OF core to adjust the mapping of the devices as well. So, any solution needs to be generic (or provide a generic helper). Maxime