On Fri, Mar 08, 2019 at 12:09:47AM +0800, Chen-Yu Tsai wrote: > On Thu, Mar 7, 2019 at 11:48 PM Maxime Ripard wrote: > > > > On Thu, Mar 07, 2019 at 05:15:20PM +0200, Georgi Djakov wrote: > > > Hi, > > > > > > On 3/5/19 18:14, Robin Murphy wrote: > > > > On 05/03/2019 15:53, Maxime Ripard wrote: > > > >> Hi, > > > >> > > > >> On Fri, Mar 01, 2019 at 07:48:15PM +0200, Georgi Djakov wrote: > > > >>> On 2/11/19 17:02, Maxime Ripard wrote: > > > >>>> The current DT bindings assume that the DMA will be performed by the > > > >>>> devices through their parent DT node, and rely on that assumption > > > >>>> for the > > > >>>> address translation using dma-ranges. > > > >>>> > > > >>>> However, some SoCs have devices that will perform DMA through > > > >>>> another bus, > > > >>>> with separate address translation rules. We therefore need to > > > >>>> express that > > > >>>> relationship, through the special interconnect name "dma". > > > >>>> > > > >>>> Signed-off-by: Maxime Ripard > > > >>>> --- > > > >>>> Documentation/devicetree/bindings/interconnect/interconnect.txt | > > > >>>> 3 +++ > > > >>>> 1 file changed, 3 insertions(+) > > > >>>> > > > >>>> diff --git > > > >>>> a/Documentation/devicetree/bindings/interconnect/interconnect.txt > > > >>>> b/Documentation/devicetree/bindings/interconnect/interconnect.txt > > > >>>> index 5a3c575b387a..e69fc2d992c3 100644 > > > >>>> --- a/Documentation/devicetree/bindings/interconnect/interconnect.txt > > > >>>> +++ b/Documentation/devicetree/bindings/interconnect/interconnect.txt > > > >>>> @@ -51,6 +51,9 @@ interconnect-names : List of interconnect path > > > >>>> name strings sorted in the same > > > >>>> interconnect-names to match interconnect paths with > > > >>>> interconnect > > > >>>> specifier pairs. > > > >>>> + Reserved interconnect names: > > > >>>> + * dma: Path from the device to the main > > > >>>> memory of the system > > > >>> > > > >>> Bikeshed: As it's from the device to the main memory, maybe here we can > > > >>> also denote this my calling the path dma-mem or dma-memory. For other > > > >>> paths, we are trying to mention both the source and the destination and > > > >>> maybe it would be good to be consistent although this is special one. > > > >> > > > >> I'm not sure I understand what you mean. You'd like two interconnect > > > >> names, one called dma-memory, and one memory-dma? > > > > > > > > Hmm, yes, it's not like "dma" describes an actual source or destination > > > > either :/ > > > > > > IIUC, it's a path (bus) that a dma device use to access some memory > > > (read or/and write). So i have used source-destination above more in the > > > sense of initiator-target or master-slave. My suggestion was just to > > > change the reserved interconnect name from "dma" to "dma-mem" or > > > "dma-memory". > > > > If dma is an issue in itself, maybe we can call it "device-memory" ? > > Might I ask what happens if the device can both DMA to and from memory? We can create another one called memory-device if that's needed? > IIRC the display frontends, backends, and mixers all have writeback > capability, using the same interconnect port. I think in both cases it's the same path. The camera driver also need to have that offset, even though it's a producer and not a consumer, and the VPU does too. Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com