greybus: vibrator-gb: move vibrator protocol to a stand-alone module.
authorGreg Kroah-Hartman <greg@kroah.com>
Wed, 24 Dec 2014 21:01:41 +0000 (13:01 -0800)
committerGreg Kroah-Hartman <greg@kroah.com>
Fri, 2 Jan 2015 21:05:42 +0000 (13:05 -0800)
We can't use the gb_protocol_driver() macro here as we need to do some
init and exit logic when loading and removing, so "open code" the module
init and exit functions.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>
drivers/staging/greybus/Makefile
drivers/staging/greybus/protocol.c
drivers/staging/greybus/protocol.h
drivers/staging/greybus/vibrator-gb.c

index 6ce00c2..f728468 100644 (file)
@@ -13,11 +13,11 @@ greybus-y :=        core.o          \
                sdio-gb.o       \
                uart-gb.o       \
                battery-gb.o    \
-               vibrator-gb.o   \
                usb-gb.o
 
 obj-m += greybus.o
 obj-m += i2c-gb.o
+obj-m += vibrator-gb.o
 obj-m += es1-ap-usb.o
 
 KERNELVER              ?= $(shell uname -r)
index c6c0fd3..0d3c336 100644 (file)
@@ -203,10 +203,6 @@ bool gb_protocol_init(void)
                pr_err("error initializing sdio protocol\n");
                ret = false;
        }
-       if (gb_vibrator_protocol_init()) {
-               pr_err("error initializing vibrator protocol\n");
-               ret = false;
-       }
        if (gb_usb_protocol_init()) {
                pr_err("error initializing usb protocol\n");
                ret = false;
@@ -217,7 +213,6 @@ bool gb_protocol_init(void)
 void gb_protocol_exit(void)
 {
        gb_usb_protocol_exit();
-       gb_vibrator_protocol_exit();
        gb_sdio_protocol_exit();
        gb_uart_protocol_exit();
        gb_gpio_protocol_exit();
index 62f024d..7b1c09c 100644 (file)
@@ -66,9 +66,6 @@ extern void gb_uart_protocol_exit(void);
 extern int gb_sdio_protocol_init(void);
 extern void gb_sdio_protocol_exit(void);
 
-extern int gb_vibrator_protocol_init(void);
-extern void gb_vibrator_protocol_exit(void);
-
 extern int gb_usb_protocol_init(void);
 extern void gb_usb_protocol_exit(void);
 
index 3ef7d06..71c96d3 100644 (file)
@@ -205,7 +205,7 @@ static struct gb_protocol vibrator_protocol = {
        .request_recv           = NULL, /* no incoming requests */
 };
 
-int gb_vibrator_protocol_init(void)
+static __init int protocol_init(void)
 {
        int retval;
 
@@ -216,8 +216,13 @@ int gb_vibrator_protocol_init(void)
        return gb_protocol_register(&vibrator_protocol);
 }
 
-void gb_vibrator_protocol_exit(void)
+static __exit void protocol_exit(void)
 {
        gb_protocol_deregister(&vibrator_protocol);
        class_unregister(&vibrator_class);
 }
+
+module_init(protocol_init);
+module_exit(protocol_exit);
+
+MODULE_LICENSE("GPL v2");