Re: [PATCHv8 2/2] mailbox: Introduce framework for mailbox

From: Jassi Brar
Date: Wed Jul 16 2014 - 09:12:29 EST


On 16 July 2014 18:39, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Wednesday 16 July 2014 18:35:33 Jassi Brar wrote:
>> On 16 July 2014 18:15, Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> > On Wednesday 16 July 2014 18:07:04 Jassi Brar wrote:
>> >> On 16 July 2014 15:46, Arnd Bergmann <arnd@xxxxxxxx> 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?

Thanks
Jassi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/