linux/drivers/rpmsg
Arnaud Pouliquen bea9b79c2d rpmsg: char: Add possibility to use default endpoint of the rpmsg device
Current implementation create/destroy a new endpoint on each
rpmsg_eptdev_open/rpmsg_eptdev_release calls.

For a rpmsg device created by the NS announcement a default endpoint is created.
In this case we have to reuse the default rpmsg device endpoint associated to
the channel instead of creating a new one.

This patch prepares the introduction of a rpmsg channel device for the
char device. The rpmsg channel device will require a default endpoint to
communicate to the remote processor.

Add the default_ept field in rpmsg_eptdev structure.This pointer
determines the behavior on rpmsg_eptdev_open and rpmsg_eptdev_release call.

- If default_ept == NULL:
  Use the legacy behavior by creating a new endpoint each time
  rpmsg_eptdev_open is called and release it when rpmsg_eptdev_release
  is called on /dev/rpmsgX device open/close.

- If default_ept is set:
  use the rpmsg device default endpoint for the communication.

Add protection in rpmsg_eptdev_ioctl to prevent to destroy a default endpoint.

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220124102524.295783-10-arnaud.pouliquen@foss.st.com
2022-03-13 11:49:53 -05:00
..
Kconfig rpmsg: Move the rpmsg control device from rpmsg_char to rpmsg_ctrl 2022-03-13 11:49:53 -05:00
Makefile rpmsg: Move the rpmsg control device from rpmsg_char to rpmsg_ctrl 2022-03-13 11:49:53 -05:00
mtk_rpmsg.c rpmsg: Change naming of mediatek rpmsg property 2021-09-27 18:32:06 -05:00
qcom_glink_native.c rpmsg: Update rpmsg_chrdev_register_device function 2022-03-13 11:49:53 -05:00
qcom_glink_native.h rpmsg: glink: Switch to SPDX license identifier 2018-06-03 17:37:15 -07:00
qcom_glink_rpm.c rpmsg: glink: Switch to SPDX license identifier 2018-06-03 17:37:15 -07:00
qcom_glink_smem.c rpmsg: glink: Set tail pointer to 0 at end of FIFO 2019-10-11 11:34:12 -07:00
qcom_glink_ssr.c rpmsg: glink: add include of header file 2021-01-05 22:22:40 -06:00
qcom_smd.c rpmsg: Update rpmsg_chrdev_register_device function 2022-03-13 11:49:53 -05:00
rpmsg_char.c rpmsg: char: Add possibility to use default endpoint of the rpmsg device 2022-03-13 11:49:53 -05:00
rpmsg_char.h rpmsg: char: Export eptdev create and destroy functions 2022-03-13 11:49:53 -05:00
rpmsg_core.c rpmsg: Create the rpmsg class in core instead of in rpmsg char 2022-03-13 11:49:53 -05:00
rpmsg_ctrl.c rpmsg: Update rpmsg_chrdev_register_device function 2022-03-13 11:49:53 -05:00
rpmsg_internal.h rpmsg: Update rpmsg_chrdev_register_device function 2022-03-13 11:49:53 -05:00
rpmsg_ns.c rpmsg: Turn name service into a stand alone driver 2020-11-24 10:11:59 -06:00
virtio_rpmsg_bus.c rpmsg: Update rpmsg_chrdev_register_device function 2022-03-13 11:49:53 -05:00