diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2013-03-27 11:29:54 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-03-29 11:35:47 -0400 |
commit | 333e4ee0781bd0b5938da263c4bb7ab66a0d1b57 (patch) | |
tree | c03dc8a9304a4e56faf03bdee04df4cbd5f0c76a | |
parent | e5354107e14755991da82e0d2a4791db92908d9d (diff) |
mei: bus: Implement driver registration
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/misc/mei/bus.c | 26 | ||||
-rw-r--r-- | include/linux/mei_cl_bus.h | 7 |
2 files changed, 33 insertions, 0 deletions
diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c index 78c876af2676..d16b3c3e1b38 100644 --- a/drivers/misc/mei/bus.c +++ b/drivers/misc/mei/bus.c | |||
@@ -170,3 +170,29 @@ void mei_cl_remove_device(struct mei_cl_device *device) | |||
170 | device_unregister(&device->dev); | 170 | device_unregister(&device->dev); |
171 | } | 171 | } |
172 | EXPORT_SYMBOL_GPL(mei_cl_remove_device); | 172 | EXPORT_SYMBOL_GPL(mei_cl_remove_device); |
173 | |||
174 | int __mei_cl_driver_register(struct mei_cl_driver *driver, struct module *owner) | ||
175 | { | ||
176 | int err; | ||
177 | |||
178 | driver->driver.name = driver->name; | ||
179 | driver->driver.owner = owner; | ||
180 | driver->driver.bus = &mei_cl_bus_type; | ||
181 | |||
182 | err = driver_register(&driver->driver); | ||
183 | if (err) | ||
184 | return err; | ||
185 | |||
186 | pr_debug("mei: driver [%s] registered\n", driver->driver.name); | ||
187 | |||
188 | return 0; | ||
189 | } | ||
190 | EXPORT_SYMBOL_GPL(__mei_cl_driver_register); | ||
191 | |||
192 | void mei_cl_driver_unregister(struct mei_cl_driver *driver) | ||
193 | { | ||
194 | driver_unregister(&driver->driver); | ||
195 | |||
196 | pr_debug("mei: driver [%s] unregistered\n", driver->driver.name); | ||
197 | } | ||
198 | EXPORT_SYMBOL_GPL(mei_cl_driver_unregister); | ||
diff --git a/include/linux/mei_cl_bus.h b/include/linux/mei_cl_bus.h index 4e7351de7eca..ba2aa3b66f30 100644 --- a/include/linux/mei_cl_bus.h +++ b/include/linux/mei_cl_bus.h | |||
@@ -17,4 +17,11 @@ struct mei_cl_driver { | |||
17 | int (*remove)(struct mei_cl_device *dev); | 17 | int (*remove)(struct mei_cl_device *dev); |
18 | }; | 18 | }; |
19 | 19 | ||
20 | int __mei_cl_driver_register(struct mei_cl_driver *driver, | ||
21 | struct module *owner); | ||
22 | #define mei_cl_driver_register(driver) \ | ||
23 | __mei_cl_driver_register(driver, THIS_MODULE) | ||
24 | |||
25 | void mei_cl_driver_unregister(struct mei_cl_driver *driver); | ||
26 | |||
20 | #endif /* _LINUX_MEI_CL_BUS_H */ | 27 | #endif /* _LINUX_MEI_CL_BUS_H */ |