greybus: endo: define endo_init() and endo_exit()
Define init and exit functions to do one-time setup and teardown of endo-related functionality. Currently they're place holders; the next patch will populate them. Note that we now call gb_operation_exit() from gb_init(), so we can no longer mark that function with __exit. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
47ed2c9240
commit
f35ab903ef
@ -252,7 +252,7 @@ static int __init gb_init(void)
|
|||||||
|
|
||||||
retval = bus_register(&greybus_bus_type);
|
retval = bus_register(&greybus_bus_type);
|
||||||
if (retval) {
|
if (retval) {
|
||||||
pr_err("bus_register failed\n");
|
pr_err("bus_register failed (%d)\n", retval);
|
||||||
goto error_bus;
|
goto error_bus;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,18 +260,26 @@ static int __init gb_init(void)
|
|||||||
|
|
||||||
retval = gb_ap_init();
|
retval = gb_ap_init();
|
||||||
if (retval) {
|
if (retval) {
|
||||||
pr_err("gb_ap_init failed\n");
|
pr_err("gb_ap_init failed (%d)\n", retval);
|
||||||
goto error_ap;
|
goto error_ap;
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = gb_operation_init();
|
retval = gb_operation_init();
|
||||||
if (retval) {
|
if (retval) {
|
||||||
pr_err("gb_operation_init failed\n");
|
pr_err("gb_operation_init failed (%d)\n", retval);
|
||||||
goto error_operation;
|
goto error_operation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
retval = gb_endo_init();
|
||||||
|
if (retval) {
|
||||||
|
pr_err("gb_endo_init failed (%d)\n", retval);
|
||||||
|
goto error_endo;
|
||||||
|
}
|
||||||
|
|
||||||
return 0; /* Success */
|
return 0; /* Success */
|
||||||
|
|
||||||
|
error_endo:
|
||||||
|
gb_operation_exit();
|
||||||
error_operation:
|
error_operation:
|
||||||
gb_ap_exit();
|
gb_ap_exit();
|
||||||
error_ap:
|
error_ap:
|
||||||
@ -285,12 +293,12 @@ module_init(gb_init);
|
|||||||
|
|
||||||
static void __exit gb_exit(void)
|
static void __exit gb_exit(void)
|
||||||
{
|
{
|
||||||
|
gb_endo_exit();
|
||||||
gb_operation_exit();
|
gb_operation_exit();
|
||||||
gb_ap_exit();
|
gb_ap_exit();
|
||||||
bus_unregister(&greybus_bus_type);
|
bus_unregister(&greybus_bus_type);
|
||||||
gb_debugfs_cleanup();
|
gb_debugfs_cleanup();
|
||||||
}
|
}
|
||||||
module_exit(gb_exit);
|
module_exit(gb_exit);
|
||||||
|
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_AUTHOR("Greg Kroah-Hartman <gregkh@linuxfoundation.org>");
|
MODULE_AUTHOR("Greg Kroah-Hartman <gregkh@linuxfoundation.org>");
|
||||||
|
@ -551,3 +551,11 @@ void gb_endo_remove(struct gb_endo *endo)
|
|||||||
device_unregister(&endo->dev);
|
device_unregister(&endo->dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int __init gb_endo_init(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void __exit gb_endo_exit(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
@ -51,6 +51,9 @@ extern struct ida greybus_endo_id_map;
|
|||||||
/* Greybus "private" definitions */
|
/* Greybus "private" definitions */
|
||||||
struct greybus_host_device;
|
struct greybus_host_device;
|
||||||
|
|
||||||
|
int gb_endo_init(void) __init;
|
||||||
|
void gb_endo_exit(void) __exit;
|
||||||
|
|
||||||
struct gb_endo *gb_endo_create(struct greybus_host_device *hd,
|
struct gb_endo *gb_endo_create(struct greybus_host_device *hd,
|
||||||
u16 endo_id, u8 ap_intf_id);
|
u16 endo_id, u8 ap_intf_id);
|
||||||
void gb_endo_remove(struct gb_endo *endo);
|
void gb_endo_remove(struct gb_endo *endo);
|
||||||
|
@ -959,7 +959,7 @@ err_destroy_message_cache:
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
void __exit gb_operation_exit(void)
|
void gb_operation_exit(void)
|
||||||
{
|
{
|
||||||
destroy_workqueue(gb_operation_workqueue);
|
destroy_workqueue(gb_operation_workqueue);
|
||||||
gb_operation_workqueue = NULL;
|
gb_operation_workqueue = NULL;
|
||||||
|
@ -159,6 +159,6 @@ int gb_operation_sync(struct gb_connection *connection, int type,
|
|||||||
void *response, int response_size);
|
void *response, int response_size);
|
||||||
|
|
||||||
int gb_operation_init(void) __init;
|
int gb_operation_init(void) __init;
|
||||||
void gb_operation_exit(void) __exit;
|
void gb_operation_exit(void);
|
||||||
|
|
||||||
#endif /* !__OPERATION_H */
|
#endif /* !__OPERATION_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user