Commits
Suman Anna committed 01b8b679d69
net/rpmsg: add support for new rpmsg sockets Add the support for a new socket address and protocol family - remote-processor messaging sockets. This rpmsg protocol driver provides the necessary support to expose a rpmsg communication channel through the socket API to userspace under the AF_RPMSG address family. The usage relies on leveraging the socket API's connect() for Tx sockets and bind() for Rx sockets to exchange messages to/from a remote processor. All message communication is performed using the userspace created sockets, and even though the probed rpmsg proto devices do create an embedded rpmsg endpoint for receiving messages, they are not really designed to process any such unexpected Rx messages. This driver forms the kernel transport portion of the the TI IPC MessageQ stack. The MessageQ stack usage of the AF_RPMSG socket interface is not really designed to handle multiple rpmsg-proto devices published from the same remote processor, so a restriction is imposed to allow only a single rpmsg device even though there are no such restrictions imposed by the rpmsg bus infrastructure. This can be scaled to make it more generic if needed but probably will require some userspace interface adjustments. This patch is based on some quite an old rpmsg socket support patch from Ohad and some work by Rob Tivy. This has been updated rather heavily to work with all the rpmsg framework changes in 4.9+ kernels. Signed-off-by: Ohad Ben Cohen <ohad@wizery.com> [s-anna@ti.com: adapted, improved and modified for latest kernel] Signed-off-by: Suman Anna <s-anna@ti.com>