diff options
author | Sricharan R <sricharan@codeaurora.org> | 2017-08-24 09:21:34 +0200 |
---|---|---|
committer | Bjorn Andersson <bjorn.andersson@linaro.org> | 2017-08-30 05:34:13 +0200 |
commit | 933b45da5d1d7c06d53e523833b5f8a6a9bdfa63 (patch) | |
tree | e5a02261af8758bcde599ae497bf23b3f48f748d /drivers/rpmsg/qcom_glink_rpm.c | |
parent | rpmsg: glink: Fix idr_lock from mutex to spinlock (diff) | |
download | linux-933b45da5d1d7c06d53e523833b5f8a6a9bdfa63.tar.xz linux-933b45da5d1d7c06d53e523833b5f8a6a9bdfa63.zip |
rpmsg: glink: Add support for TX intents
Intents are nothing but pre-allocated buffers of appropriate size that
are allocated on the local side and communicated to the remote side and
the remote stores the list of intent ids that it is informed.
Later when remote side is intenting to send data, it picks up a right
intent (based on the size) and sends the data buffer and the intent id.
Local side receives the data and copies it to the local intent buffer.
The whole idea is to avoid stalls on the transport for allocating
memory, used for copy based transports.
When the remote request to allocate buffers using CMD_RX_INTENT_REQ, we
allocate buffers of requested size, store the buffer id locally and also
communicate the intent id to the remote.
Acked-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
Signed-off-by: Sricharan R <sricharan@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Diffstat (limited to 'drivers/rpmsg/qcom_glink_rpm.c')
-rw-r--r-- | drivers/rpmsg/qcom_glink_rpm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/rpmsg/qcom_glink_rpm.c b/drivers/rpmsg/qcom_glink_rpm.c index 7d039cd344cb..5a86e089a977 100644 --- a/drivers/rpmsg/qcom_glink_rpm.c +++ b/drivers/rpmsg/qcom_glink_rpm.c @@ -305,7 +305,8 @@ static int glink_rpm_probe(struct platform_device *pdev) glink = qcom_glink_native_probe(&pdev->dev, 0, &rx_pipe->native, - &tx_pipe->native); + &tx_pipe->native, + true); if (IS_ERR(glink)) return PTR_ERR(glink); |