|
@@ -193,13 +193,14 @@ rpmsg_send_offchannel_raw(struct rpmsg_channel *, u32, u32, void *, int, bool);
|
|
|
|
|
|
/**
|
|
|
* rpmsg_send() - send a message across to the remote processor
|
|
|
- * @rpdev: the rpmsg channel
|
|
|
+ * @ept: the rpmsg endpoint
|
|
|
* @data: payload of message
|
|
|
* @len: length of payload
|
|
|
*
|
|
|
- * This function sends @data of length @len on the @rpdev channel.
|
|
|
- * The message will be sent to the remote processor which the @rpdev
|
|
|
- * channel belongs to, using @rpdev's source and destination addresses.
|
|
|
+ * This function sends @data of length @len on the @ept endpoint.
|
|
|
+ * The message will be sent to the remote processor which the @ept
|
|
|
+ * endpoint belongs to, using @ept's address and its associated rpmsg
|
|
|
+ * device destination addresses.
|
|
|
* In case there are no TX buffers available, the function will block until
|
|
|
* one becomes available, or a timeout of 15 seconds elapses. When the latter
|
|
|
* happens, -ERESTARTSYS is returned.
|
|
@@ -208,23 +209,24 @@ rpmsg_send_offchannel_raw(struct rpmsg_channel *, u32, u32, void *, int, bool);
|
|
|
*
|
|
|
* Returns 0 on success and an appropriate error value on failure.
|
|
|
*/
|
|
|
-static inline int rpmsg_send(struct rpmsg_channel *rpdev, void *data, int len)
|
|
|
+static inline int rpmsg_send(struct rpmsg_endpoint *ept, void *data, int len)
|
|
|
{
|
|
|
- u32 src = rpdev->src, dst = rpdev->dst;
|
|
|
+ struct rpmsg_channel *rpdev = ept->rpdev;
|
|
|
+ u32 src = ept->addr, dst = rpdev->dst;
|
|
|
|
|
|
return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* rpmsg_sendto() - send a message across to the remote processor, specify dst
|
|
|
- * @rpdev: the rpmsg channel
|
|
|
+ * @ept: the rpmsg endpoint
|
|
|
* @data: payload of message
|
|
|
* @len: length of payload
|
|
|
* @dst: destination address
|
|
|
*
|
|
|
* This function sends @data of length @len to the remote @dst address.
|
|
|
- * The message will be sent to the remote processor which the @rpdev
|
|
|
- * channel belongs to, using @rpdev's source address.
|
|
|
+ * The message will be sent to the remote processor which the @ept
|
|
|
+ * endpoint belongs to, using @ept's address as source.
|
|
|
* In case there are no TX buffers available, the function will block until
|
|
|
* one becomes available, or a timeout of 15 seconds elapses. When the latter
|
|
|
* happens, -ERESTARTSYS is returned.
|
|
@@ -234,16 +236,17 @@ static inline int rpmsg_send(struct rpmsg_channel *rpdev, void *data, int len)
|
|
|
* Returns 0 on success and an appropriate error value on failure.
|
|
|
*/
|
|
|
static inline
|
|
|
-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)
|
|
|
{
|
|
|
- u32 src = rpdev->src;
|
|
|
+ struct rpmsg_channel *rpdev = ept->rpdev;
|
|
|
+ u32 src = ept->addr;
|
|
|
|
|
|
return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* rpmsg_send_offchannel() - send a message using explicit src/dst addresses
|
|
|
- * @rpdev: the rpmsg channel
|
|
|
+ * @ept: the rpmsg endpoint
|
|
|
* @src: source address
|
|
|
* @dst: destination address
|
|
|
* @data: payload of message
|
|
@@ -251,8 +254,8 @@ int rpmsg_sendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst)
|
|
|
*
|
|
|
* This function sends @data of length @len to the remote @dst address,
|
|
|
* and uses @src as the source address.
|
|
|
- * The message will be sent to the remote processor which the @rpdev
|
|
|
- * channel belongs to.
|
|
|
+ * The message will be sent to the remote processor which the @ept
|
|
|
+ * endpoint belongs to.
|
|
|
* In case there are no TX buffers available, the function will block until
|
|
|
* one becomes available, or a timeout of 15 seconds elapses. When the latter
|
|
|
* happens, -ERESTARTSYS is returned.
|
|
@@ -262,21 +265,24 @@ int rpmsg_sendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst)
|
|
|
* Returns 0 on success and an appropriate error value on failure.
|
|
|
*/
|
|
|
static inline
|
|
|
-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)
|
|
|
{
|
|
|
+ struct rpmsg_channel *rpdev = ept->rpdev;
|
|
|
+
|
|
|
return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* rpmsg_send() - send a message across to the remote processor
|
|
|
- * @rpdev: the rpmsg channel
|
|
|
+ * @ept: the rpmsg endpoint
|
|
|
* @data: payload of message
|
|
|
* @len: length of payload
|
|
|
*
|
|
|
- * This function sends @data of length @len on the @rpdev channel.
|
|
|
- * The message will be sent to the remote processor which the @rpdev
|
|
|
- * channel belongs to, using @rpdev's source and destination addresses.
|
|
|
+ * This function sends @data of length @len on the @ept endpoint.
|
|
|
+ * The message will be sent to the remote processor which the @ept
|
|
|
+ * endpoint belongs to, using @ept's address as source and its associated
|
|
|
+ * rpdev's address as destination.
|
|
|
* In case there are no TX buffers available, the function will immediately
|
|
|
* return -ENOMEM without waiting until one becomes available.
|
|
|
*
|
|
@@ -285,23 +291,24 @@ int rpmsg_send_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst,
|
|
|
* Returns 0 on success and an appropriate error value on failure.
|
|
|
*/
|
|
|
static inline
|
|
|
-int rpmsg_trysend(struct rpmsg_channel *rpdev, void *data, int len)
|
|
|
+int rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, int len)
|
|
|
{
|
|
|
- u32 src = rpdev->src, dst = rpdev->dst;
|
|
|
+ struct rpmsg_channel *rpdev = ept->rpdev;
|
|
|
+ u32 src = ept->addr, dst = rpdev->dst;
|
|
|
|
|
|
return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* rpmsg_sendto() - send a message across to the remote processor, specify dst
|
|
|
- * @rpdev: the rpmsg channel
|
|
|
+ * @ept: the rpmsg endpoint
|
|
|
* @data: payload of message
|
|
|
* @len: length of payload
|
|
|
* @dst: destination address
|
|
|
*
|
|
|
* This function sends @data of length @len to the remote @dst address.
|
|
|
- * The message will be sent to the remote processor which the @rpdev
|
|
|
- * channel belongs to, using @rpdev's source address.
|
|
|
+ * The message will be sent to the remote processor which the @ept
|
|
|
+ * endpoint belongs to, using @ept's address as source.
|
|
|
* In case there are no TX buffers available, the function will immediately
|
|
|
* return -ENOMEM without waiting until one becomes available.
|
|
|
*
|
|
@@ -310,16 +317,17 @@ int rpmsg_trysend(struct rpmsg_channel *rpdev, void *data, int len)
|
|
|
* Returns 0 on success and an appropriate error value on failure.
|
|
|
*/
|
|
|
static inline
|
|
|
-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)
|
|
|
{
|
|
|
- u32 src = rpdev->src;
|
|
|
+ struct rpmsg_channel *rpdev = ept->rpdev;
|
|
|
+ u32 src = ept->addr;
|
|
|
|
|
|
return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* rpmsg_send_offchannel() - send a message using explicit src/dst addresses
|
|
|
- * @rpdev: the rpmsg channel
|
|
|
+ * @ept: the rpmsg endpoint
|
|
|
* @src: source address
|
|
|
* @dst: destination address
|
|
|
* @data: payload of message
|
|
@@ -327,8 +335,8 @@ int rpmsg_trysendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst)
|
|
|
*
|
|
|
* This function sends @data of length @len to the remote @dst address,
|
|
|
* and uses @src as the source address.
|
|
|
- * The message will be sent to the remote processor which the @rpdev
|
|
|
- * channel belongs to.
|
|
|
+ * The message will be sent to the remote processor which the @ept
|
|
|
+ * endpoint belongs to.
|
|
|
* In case there are no TX buffers available, the function will immediately
|
|
|
* return -ENOMEM without waiting until one becomes available.
|
|
|
*
|
|
@@ -337,9 +345,11 @@ int rpmsg_trysendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst)
|
|
|
* Returns 0 on success and an appropriate error value on failure.
|
|
|
*/
|
|
|
static inline
|
|
|
-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)
|
|
|
{
|
|
|
+ struct rpmsg_channel *rpdev = ept->rpdev;
|
|
|
+
|
|
|
return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false);
|
|
|
}
|
|
|
|