mbox series

[v2,0/6] mailbox: arm_mhu: add support for doorbell mode

Message ID 1495621003-4291-1-git-send-email-sudeep.holla@arm.com
Headers show
Series mailbox: arm_mhu: add support for doorbell mode | expand

Message

Sudeep Holla May 24, 2017, 10:16 a.m. UTC
Hi,

This series adds doorbell support to ARM MHU mailbox controller driver.
Since we need to callback the different client based on the doorbel bits
triggered from the remote, we can manage with single channel for the set
of 32 doorbells.

Regards,
Sudeep

v1->v2:
	- Removed the notion od subchannels
	- Treat each bit in the MHU register as a doorbell and hence
	  different channel with respect to mailbox framework

v1: https://www.spinics.net/lists/kernel/msg2500461.html

Sudeep Holla (6):
  mailbox: arm_mhu: reorder header inclusion and drop unneeded ones
  Documentation: devicetree: add bindings to support ARM MHU doorbells
  mailbox: arm_mhu: migrate to threaded irq handler
  mailbox: arm_mhu: re-factor data structure to add doorbell support
  mailbox: arm_mhu: add full support for the doorbells
  mailbox: arm_mhu: add support to read and record mbox-name

 .../devicetree/bindings/mailbox/arm-mhu.txt        |  46 ++-
 drivers/mailbox/arm_mhu.c                          | 386 ++++++++++++++++++---
 2 files changed, 383 insertions(+), 49 deletions(-)

--
2.7.4

Comments

Jassi Brar May 25, 2017, 1:44 p.m. UTC | #1
On Thu, May 25, 2017 at 7:05 PM, Sudeep Holla <sudeep.holla@arm.com> wrote:
>>> 1. The client driver is generic and expects it to be doorbell like

>>>    mailbox controller. I am referring to SCMI which will be released

>>>    soon. We can't embed ARM MHU or any other mailbox controller info

>>>    into that.

>>>

>> If SCMI is to be usable over different platforms, there has to be 2

>> sub-parts of the SCMI - one platform agnostic high level protocol

>> implementation, and the other platform specific 'transport' layer

>> where actual message xfer is done.

>>

>

> It recommends doorbell kind of interface for the transport.

>

>> For the Nth time:-

>>     The 'mssg' in mbox_send_message(struct mbox_chan *chan, void

>> *mssg) is platform specific. For MHU it is simple u32*, whereas for

>> other platform it will be like 'struct my_protocol_message *'

>>

>> I can't make it any clearer.

>>

>

> Why is that ? Just because it was used on your platform like that ?

> Sorry that's not a valid reason.

>

To be clear, by "other platform" I mean platforms with mailbox
controller other than MHU.  (Not to mean SCMI can't run on MHU as of
today).

Do you intend SCMI to run only on platforms that have MHU controller?
I hope not.

Now re-read my last post until you get it.

Thanks.