Sometimes a client may detect that a channel has clogged up and is not
responding to requests in time. In such case, the client may want to
initiate a debug on the controller that might help debug and analyze the
reasons for the clog.
Change-Id: Ib15db652e780790f0eaa4f6ada7ad9defed99a65
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
In addition to the requests that have to be sent to the remote processor
through the mailbox controller, there may be data, that may need to be
sent to the controller, but not the remote processor, atleast right
away. Such data need not be buffered by the mailbox framework. Since
data is also not sent to the remote processor immediately,
acknowlegement will not be expected by the mailbox framework.
Change-Id: I6b6e81f593af0ed1cadde269624ebfa2a1591f5b
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Power drivers that are interested in knowing the current state of the
controller so they can turn down idle states may do so using the
->is_idle() callback on the controller. The call will default to false,
if the controller does not support the ->is_idle callback.
Change-Id: Idf4290d3a651604c8637425abfa25cedc9a02d10
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
The mailbox core uses jiffy based timer to handle polling for the
transmit completion. If the client/protocol have/support notification
of the last packet transmit completion via ACK packet, then we tick the
Tx state machine immediately in the callback. However if the client
doesn't support that mechanism we might end-up waiting for atleast a
jiffy even though the remote is ready to receive the next request.
This patch switches the timer used for that polling from jiffy-based
to hrtimer-based so that we can support polling at much higher time
resolution.
Reported-and-suggested-by: Juri Lelli <Juri.Lelli@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Introduce common framework for client/protocol drivers and
controller drivers of Inter-Processor-Communication (IPC).
Client driver developers should have a look at
include/linux/mailbox_client.h to understand the part of
the API exposed to client drivers.
Similarly controller driver developers should have a look
at include/linux/mailbox_controller.h
Reviewed-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>