[PATCH v3 1/7] dt-bindings: interconnect: Add a dma interconnect name

Chen-Yu Tsai wens at kernel.org
Mon Mar 11 07:11:20 PDT 2019


On Mon, Mar 11, 2019 at 6:11 PM Maxime Ripard <maxime.ripard at bootlin.com> wrote:
>
> 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 <maxime.ripard at bootlin.com> 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 <maxime.ripard at bootlin.com>
> > > > >>>> ---
> > > > >>>>   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?

Works for me as long as it doesn't get confusing. BTW I think it should be
X-to-Y, instead of X-Y, as the latter can be taken as a noun-phrase.

> > 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.

Yeah. The VPU is the obvious bi-directional example.

ChenYu



More information about the linux-arm-kernel mailing list