This set starts by making the RPMSG protocol transport agnostic by moving the headers it uses to generic types and using those in the current implementation. From there it re-uses the work that Arnaud published[1] to make the name service modular. The main difference with this revision is the usage of a variable (rpmsg_device::little_endian) rather than an operation to determine the byte representation of the transport layer. It is also addressing a problem that would have prevented git bisect to work properly in rpmsg_ns_cb() where the rpdev was used. In short patches 1 to 3 and patch 7 have to be reviewed again. They changed enough that I did not add RB tags to them. Patches 4 to 6 have not changed from the previous revision. Tested on stm32mp157 with the RPMSG client sample application. Applies cleanly on v5.9. Thanks, Mathieu [1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=338335 ------- New for V3: - Using rpmsg_device::little_endian variable rather than an operation - Fix an implementation problem that would have prevented git bisect to work Arnaud Pouliquen (4): rpmsg: virtio: Rename rpmsg_create_channel rpmsg: core: Add channel creation internal API rpmsg: virtio: Add rpmsg channel device ops rpmsg: Turn name service into a stand alone driver Mathieu Poirier (4): rpmsg: Introduce __rpmsg{16|32|64} types rpmsg: virtio: Move from virtio to rpmsg byte conversion rpmsg: Move structure rpmsg_ns_msg to header file rpmsg: Make rpmsg_{register|unregister}_device() public drivers/rpmsg/Kconfig | 8 ++ drivers/rpmsg/Makefile | 1 + drivers/rpmsg/rpmsg_core.c | 44 ++++++++ drivers/rpmsg/rpmsg_internal.h | 14 ++- drivers/rpmsg/rpmsg_ns.c | 108 ++++++++++++++++++ drivers/rpmsg/virtio_rpmsg_bus.c | 185 +++++++++++-------------------- include/linux/rpmsg.h | 63 ++++++++++- include/linux/rpmsg_byteorder.h | 67 +++++++++++ include/linux/rpmsg_ns.h | 59 ++++++++++ include/uapi/linux/rpmsg_types.h | 11 ++ 10 files changed, 433 insertions(+), 127 deletions(-) create mode 100644 drivers/rpmsg/rpmsg_ns.c create mode 100644 include/linux/rpmsg_byteorder.h create mode 100644 include/linux/rpmsg_ns.h create mode 100644 include/uapi/linux/rpmsg_types.h -- 2.25.1