lkml.org 
[lkml]   [2014]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCHv8 2/2] mailbox: Introduce framework for mailbox
Date
On Wednesday 16 July 2014 18:42:22 Jassi Brar wrote:
> On 16 July 2014 18:39, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Wednesday 16 July 2014 18:35:33 Jassi Brar wrote:
> >> On 16 July 2014 18:15, Arnd Bergmann <arnd@arndb.de> wrote:
> >> > On Wednesday 16 July 2014 18:07:04 Jassi Brar wrote:
> >> >> On 16 July 2014 15:46, Arnd Bergmann <arnd@arndb.de> wrote:
> >> >> > On Wednesday 16 July 2014 10:40:19 Sudeep Holla wrote:
> >> >> >> > +
> >> >> >> > +Required property:
> >> >> >> > +- mbox: List of phandle and mailbox channel specifier.
> >> >> >> > +
> >> >> >> > +- mbox-names: List of identifier strings for each mailbox channel
> >> >> >> > + required by the client.
> >> >> >> > +
> >> >> >>
> >> >> >> IMO the mailbox names are more associated with the controller channels/
> >> >> >> mailbox rather than the clients using it. Does it make sense to move
> >> >> >> this under controller. It also avoid each client replicating the names.
> >> >> >
> >> >> > I think it would be best to just make the mbox-names property optional,
> >> >> > like we have for other subsystems.
> >> >> >
> >> >> A very similar subsystem - DMAEngine also has 'dma-names' as a
> >> >> required property.
> >> >>
> >> >> If a client is assigned only 1 mbox in DT, we can do without
> >> >> mbox-names. But I am not sure what to do if a client needs two or more
> >> >> differently capable mboxes? Simply allocating in order of mbox request
> >> >> doesn't seem very robust.
> >> >
> >> > Traditionally, these things (regs, interrupts, ...) are just accessed
> >> > by index. The reason why dmaengine requires the name is that some machines
> >> > can use multiple DMA engine devices attached to the same request line,
> >> > so the dmaengine subsystem can pick any of them that has a matching
> >> > name.
> >> And also, I think, when a client needs 2 different dma channels, say
> >> for RX and TX each. The api can't assign the first channel specified
> >> in 'dmas' property to the first channel request that comes to it,
> >> unless we assume client driver always requests dma channels in the
> >> order written in its DT node. And this is the main reason I see for
> >> having mbox-names property.
> >
> > Most subsystems require passing an explicit index in this case.
> >
> >> If we make mbox-names optional, do we assume client driver must
> >> request mbox in the order specified in its DT node?
> >
> > Correct.
> >
> OK. So how about we drop mbox-names altogether and expect client
> driver to simply provide an index of the mbox needed?

That would be fine with me, but I think a lot of people like
the idea of identifying things by name, and are used to that
from the other subsystems.

Maybe you can leave the mbox-names property defined as 'optional'
in the generic mbox binding but remove the code in Linux? That way
we can always put it back at a later point without changing the
binding in an incompatible way.

Individual mailbox clients can mandate specific strings.

Arnd


\
 
 \ /
  Last update: 2014-07-16 17:01    [W:0.180 / U:0.116 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site