[PATCH v3 0/8] rpmsg: Make RPMSG name service modular

From: Mathieu Poirier
Date: Mon Oct 19 2020 - 16:34:44 EST


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