mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jassi Brar <jassisinghbrar@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: robh@kernel.org, alexey.klimov@arm.com, lho@apm.com,
	mark.rutland@arm.com, arnd@arndb.de, sudeep.holla@arm.com,
	Jassi Brar <jaswinder.singh@linaro.org>
Subject: [PATCH 3/9] firmware: arm_scmi: add basic driver infrastructure for SCMI
Date: Fri,  7 Jul 2017 22:22:21 +0530	[thread overview]
Message-ID: <1499446341-5956-1-git-send-email-jaswinder.singh@linaro.org> (raw)
In-Reply-To: <1498492513-29771-4-git-send-email-sudeep.holla@arm.com>

Hi Arnd, Hi Rob, Hi Mark,

[CC'ing only those who I have the email id of]

>+/**
>+ * scmi_do_xfer() - Do one transfer
>+ *
>+ * @info: Pointer to SCMI entity information
>+ * @xfer: Transfer to initiate and wait for response
>+ *
>+ * Return: -ETIMEDOUT in case of no response, if transmit error,
>+ *   return corresponding error, else if all goes well,
>+ *   return 0.
>+ */
>+int scmi_do_xfer(const struct scmi_handle *handle, struct scmi_xfer *xfer)
>+{
>+	int ret;
>+	int timeout;
>+	struct scmi_info *info = handle_to_scmi_info(handle);
>+	struct device *dev = info->dev;
>+
>+	ret = mbox_send_message(info->tx_chan, xfer);
>+
>
The api is

    int mbox_send_message(struct mbox_chan *chan, void *mssg)

where each controller driver defines its own format in which it accepts
the 'mssg' to be transmitted.

For example :-
ti_msgmgr_send_data(struct mbox_chan *, struct ti_msgmgr_message *)
rockchip_mbox_send_data(struct mbox_chan *, struct rockchip_mbox_msg *)
....and so on...  you get the idea.

Some controller driver may ignore the 'mssg' because only an interrupt line
is shared with the remote and not some register/fifo.
For example,
  sti_mbox_send_data(struct mbox_chan *, void *ignored)

Out of 14 controller drivers today, this SCMI implementation will work with
only 5 (and that too by abusing the api). The other 9 controllers (and many
in future) are perfectly able to support SCMI (its just another protocol).
All we need is what the SCMI specification calls "Transport Layer".
Of course that will be a thin platform/controller specific code that will
encapsulate the 'struct scmi_xfer *xfer' from SCMI, into controller specified
format and actually call the mbox_send_message().

 To achieve that, we can either do similar to what platforms with DWC3
do - generic dwc3 child node of platform specific parent node. Or we can have
the SCMI protocol implemented as a library that platforms can init and use.
Or any other better way.

 I just think it is a bad idea to rule out all but one classes of mailbox controllers.

Regards.

  reply	other threads:[~2017-07-07 16:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-26 15:55 [PATCH 0/9] firmware: ARM System Control and Management Interface(SCMI) support Sudeep Holla
2017-06-26 15:55 ` [PATCH 1/9] Documentation: dt-bindings: add support for mailbox client shared memory Sudeep Holla
2017-06-28 22:56   ` Rob Herring
2017-06-30 10:24     ` Sudeep Holla
2017-06-26 15:55 ` [PATCH 2/9] Documentation: add DT binding for ARM System Control and Management Interface(SCMI) protocol Sudeep Holla
2017-06-28 23:04   ` Rob Herring
2017-06-30 10:31     ` Sudeep Holla
2017-06-26 15:55 ` [PATCH 3/9] firmware: arm_scmi: add basic driver infrastructure for SCMI Sudeep Holla
2017-07-07 16:52   ` Jassi Brar [this message]
2017-07-07 17:39     ` Sudeep Holla
2017-07-08  5:32       ` Jassi Brar
2017-07-24  9:50         ` Sudeep Holla
2017-07-24 15:41           ` Jassi Brar
2017-07-24 16:21             ` Sudeep Holla
2017-07-24 17:21               ` Jassi Brar
2017-07-24 17:30                 ` Sudeep Holla
2017-06-26 15:55 ` [PATCH 4/9] firmware: arm_scmi: add common infrastructure and support for base protocol Sudeep Holla
2017-06-26 15:55 ` [PATCH 5/9] firmware: arm_scmi: add initial support for performance protocol Sudeep Holla
2017-06-26 15:55 ` [PATCH 6/9] firmware: arm_scmi: add initial support for clock protocol Sudeep Holla
2017-06-26 15:55 ` [PATCH 7/9] firmware: arm_scmi: add initial support for power protocol Sudeep Holla
2017-06-26 15:55 ` [PATCH 8/9] firmware: arm_scmi: add initial support for sensor protocol Sudeep Holla
2017-06-26 15:55 ` [PATCH 9/9] firmware: arm_scmi: probe and initialise all the supported protocols Sudeep Holla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1499446341-5956-1-git-send-email-jaswinder.singh@linaro.org \
    --to=jassisinghbrar@gmail.com \
    --cc=alexey.klimov@arm.com \
    --cc=arnd@arndb.de \
    --cc=jaswinder.singh@linaro.org \
    --cc=lho@apm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh@kernel.org \
    --cc=sudeep.holla@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®