Commit 2a434346 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'rpmsg-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux

Pull rpmsg updates from Bjorn Andersson:
 "This make virtio free driver_override upon removal. It also updates
  the rpmsg documentation after earlier API updates"

* tag 'rpmsg-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
  rpmsg: virtio: Free driver_override when rpmsg_remove()
  doc: rmpsg: Update with rpmsg_endpoint
parents 8893a6bf d5362c37
...@@ -68,13 +68,14 @@ User API ...@@ -68,13 +68,14 @@ User API
:: ::
int rpmsg_send(struct rpmsg_channel *rpdev, void *data, int len); int rpmsg_send(struct rpmsg_endpoint *ept, void *data, int len);
sends a message across to the remote processor on a given channel. sends a message across to the remote processor from the given endpoint.
The caller should specify the channel, the data it wants to send, The caller should specify the endpoint, the data it wants to send,
and its length (in bytes). The message will be sent on the specified and its length (in bytes). The message will be sent on the specified
channel, i.e. its source and destination address fields will be endpoint's channel, i.e. its source and destination address fields will be
set to the channel's src and dst addresses. respectively set to the endpoint's src address and its parent channel
dst addresses.
In case there are no TX buffers available, the function will block until In case there are no TX buffers available, the function will block until
one becomes available (i.e. until the remote processor consumes one becomes available (i.e. until the remote processor consumes
...@@ -87,17 +88,18 @@ Returns 0 on success and an appropriate error value on failure. ...@@ -87,17 +88,18 @@ Returns 0 on success and an appropriate error value on failure.
:: ::
int rpmsg_sendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst); int rpmsg_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst);
sends a message across to the remote processor on a given channel, sends a message across to the remote processor from a given endpoint,
to a destination address provided by the caller. to a destination address provided by the caller.
The caller should specify the channel, the data it wants to send, The caller should specify the endpoint, the data it wants to send,
its length (in bytes), and an explicit destination address. its length (in bytes), and an explicit destination address.
The message will then be sent to the remote processor to which the The message will then be sent to the remote processor to which the
channel belongs, using the channel's src address, and the user-provided endpoints's channel belongs, using the endpoints's src address,
dst address (thus the channel's dst address will be ignored). and the user-provided dst address (thus the channel's dst address
will be ignored).
In case there are no TX buffers available, the function will block until In case there are no TX buffers available, the function will block until
one becomes available (i.e. until the remote processor consumes one becomes available (i.e. until the remote processor consumes
...@@ -110,18 +112,19 @@ Returns 0 on success and an appropriate error value on failure. ...@@ -110,18 +112,19 @@ Returns 0 on success and an appropriate error value on failure.
:: ::
int rpmsg_send_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst, int rpmsg_send_offchannel(struct rpmsg_endpoint *ept, u32 src, u32 dst,
void *data, int len); void *data, int len);
sends a message across to the remote processor, using the src and dst sends a message across to the remote processor, using the src and dst
addresses provided by the user. addresses provided by the user.
The caller should specify the channel, the data it wants to send, The caller should specify the endpoint, the data it wants to send,
its length (in bytes), and explicit source and destination addresses. its length (in bytes), and explicit source and destination addresses.
The message will then be sent to the remote processor to which the The message will then be sent to the remote processor to which the
channel belongs, but the channel's src and dst addresses will be endpoint's channel belongs, but the endpoint's src and channel dst
ignored (and the user-provided addresses will be used instead). addresses will be ignored (and the user-provided addresses will
be used instead).
In case there are no TX buffers available, the function will block until In case there are no TX buffers available, the function will block until
one becomes available (i.e. until the remote processor consumes one becomes available (i.e. until the remote processor consumes
...@@ -134,13 +137,14 @@ Returns 0 on success and an appropriate error value on failure. ...@@ -134,13 +137,14 @@ Returns 0 on success and an appropriate error value on failure.
:: ::
int rpmsg_trysend(struct rpmsg_channel *rpdev, void *data, int len); int rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, int len);
sends a message across to the remote processor on a given channel. sends a message across to the remote processor from a given endpoint.
The caller should specify the channel, the data it wants to send, The caller should specify the endpoint, the data it wants to send,
and its length (in bytes). The message will be sent on the specified and its length (in bytes). The message will be sent on the specified
channel, i.e. its source and destination address fields will be endpoint's channel, i.e. its source and destination address fields will be
set to the channel's src and dst addresses. respectively set to the endpoint's src address and its parent channel
dst addresses.
In case there are no TX buffers available, the function will immediately In case there are no TX buffers available, the function will immediately
return -ENOMEM without waiting until one becomes available. return -ENOMEM without waiting until one becomes available.
...@@ -150,10 +154,10 @@ Returns 0 on success and an appropriate error value on failure. ...@@ -150,10 +154,10 @@ Returns 0 on success and an appropriate error value on failure.
:: ::
int rpmsg_trysendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst) int rpmsg_trysendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst)
sends a message across to the remote processor on a given channel, sends a message across to the remote processor from a given endoint,
to a destination address provided by the user. to a destination address provided by the user.
The user should specify the channel, the data it wants to send, The user should specify the channel, the data it wants to send,
...@@ -171,7 +175,7 @@ Returns 0 on success and an appropriate error value on failure. ...@@ -171,7 +175,7 @@ Returns 0 on success and an appropriate error value on failure.
:: ::
int rpmsg_trysend_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst, int rpmsg_trysend_offchannel(struct rpmsg_endpoint *ept, u32 src, u32 dst,
void *data, int len); void *data, int len);
...@@ -284,7 +288,7 @@ content to the console. ...@@ -284,7 +288,7 @@ content to the console.
dev_info(&rpdev->dev, "chnl: 0x%x -> 0x%x\n", rpdev->src, rpdev->dst); dev_info(&rpdev->dev, "chnl: 0x%x -> 0x%x\n", rpdev->src, rpdev->dst);
/* send a message on our channel */ /* send a message on our channel */
err = rpmsg_send(rpdev, "hello!", 6); err = rpmsg_send(rpdev->ept, "hello!", 6);
if (err) { if (err) {
pr_err("rpmsg_send failed: %d\n", err); pr_err("rpmsg_send failed: %d\n", err);
return err; return err;
......
...@@ -378,6 +378,7 @@ static void virtio_rpmsg_release_device(struct device *dev) ...@@ -378,6 +378,7 @@ static void virtio_rpmsg_release_device(struct device *dev)
struct rpmsg_device *rpdev = to_rpmsg_device(dev); struct rpmsg_device *rpdev = to_rpmsg_device(dev);
struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev);
kfree(rpdev->driver_override);
kfree(vch); kfree(vch);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment