Currently, only the es2 hd controller is supported, which restrict the
usage of greybus to few products.
This series intents to add a support of new hd controllers.
The driver doesn't support any hardware. Actually, the controller is just
a bridge between Greybus kernel and userspace. The real driver must be
implemented in userspace. This give the ability to support any kind of
transport layer (such as Bluetooth, WiFi, Ethernet).
The controller uses Generic Netlink. My original intent was to implement
a TCP/IP controller but it was very slow, unstable. In addition, some features
such as SVC or module discovery were to add to implement in kernel side.
With the generic netlink controller, we can easily add support of new
controller. It also helps to deal with all the project ARA legacy such as SVC.
I have started to implement an application which is able to emulate the SVC,
a module (like gbsim but only support control and loopback protcols),
TCP/IP, Bluetooth and UART. It is still under development but it was stable
enough to test this series. The application can found here:
Alexandre Bailon (3):
staging greybus: make cport_quiesce() method optional
staging: greybus: Add Greybus netlink driver
staging: greybus: netlink: Add a way to "hot remove" SVC
drivers/staging/greybus/Kconfig | 9 ++
drivers/staging/greybus/Makefile | 2 +
drivers/staging/greybus/connection.c | 3 +
drivers/staging/greybus/gb_netlink.h | 38 ++++++
drivers/staging/greybus/netlink.c | 256 +++++++++++++++++++++++++++++++++++
5 files changed, 308 insertions(+)
create mode 100644 drivers/staging/greybus/gb_netlink.h
create mode 100644 drivers/staging/greybus/netlink.c