On 04/18/2017 01:59 PM, Greg KH wrote:
On Sun, Mar 26, 2017 at 06:58:24PM +0200, Alexandre Bailon wrote:
Currently, the only hd controller supported by Greybus is the es2 controller which only support is mainly a bridge between USB and UniPro. In order to use Greybus on devices that do not support UniPro, add a the Greybus netlink hd controller.
By using Generic Netlink, userspace can act as a bridge between Greybus and any kind of bus supported by the platform (e.g. Bluetooth). In addition, this add an easy way to implement some component such as SVC which is required by Greybus though it may not be available on every platforms.
Very cool stuff, any hints on how to use this over netlink? Will the network developers get mad at this as an abuse of the transport?
Currently, I haven't documented anything. The only hint I can gives is to take a look https://github.com/anobli/gbridge/blob/master/controllers/gb_netlink.c, which is source code of gbridge that deals with generic netlink. I think I should have a least documented the data format generic netlink operations.
I'm not sure to understand your point about the abuse of the transport.
Signed-off-by: Alexandre Bailon abailon@baylibre.com
drivers/staging/greybus/Kconfig | 9 ++ drivers/staging/greybus/Makefile | 2 + drivers/staging/greybus/gb_netlink.h | 37 ++++++ drivers/staging/greybus/netlink.c | 221 +++++++++++++++++++++++++++++++++++ 4 files changed, 269 insertions(+) create mode 100644 drivers/staging/greybus/gb_netlink.h create mode 100644 drivers/staging/greybus/netlink.c
diff --git a/drivers/staging/greybus/Kconfig b/drivers/staging/greybus/Kconfig index 50de2d7..f9f3526 100644 --- a/drivers/staging/greybus/Kconfig +++ b/drivers/staging/greybus/Kconfig @@ -27,6 +27,15 @@ config GREYBUS_ES2 To compile this code as a module, chose M here: the module will be called gb-es2.ko +config GREYBUS_NETLINK
- tristate "Greybus netlink host controller"
- ---help---
Select this option if you want to implement a Greybus
"host controller" in userspace.
To compile this code as a module, chose M here: the module
will be called gb-netlink.ko
Doesn't this need to depend on netlink to build properly?
I think so. I will check.
thanks,
greg k-h
Thanks, Alexandre