mbox series

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

Message ID 20201019203438.501174-1-mathieu.poirier@linaro.org (mailing list archive)
Headers show
Series rpmsg: Make RPMSG name service modular | expand

Message

Mathieu Poirier Oct. 19, 2020, 8:34 p.m. UTC
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

Comments

Arnaud POULIQUEN Oct. 20, 2020, 7:17 a.m. UTC | #1
Hi Mathieu,

On 10/19/20 10:34 PM, Mathieu Poirier wrote:
> 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.

No more comments from my side, thank you very much for your work on this topic!

Regards,
Arnaud 

> 
> 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
>