diff options
-rw-r--r-- | drivers/i2c/i2c-core.c | 5 | ||||
-rw-r--r-- | include/linux/i2c.h | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 4ce5f0f32fba..c23443ee1b33 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c | |||
@@ -287,7 +287,7 @@ int i2c_del_adapter(struct i2c_adapter *adap) | |||
287 | * chips. | 287 | * chips. |
288 | */ | 288 | */ |
289 | 289 | ||
290 | int i2c_add_driver(struct i2c_driver *driver) | 290 | int i2c_register_driver(struct module *owner, struct i2c_driver *driver) |
291 | { | 291 | { |
292 | struct list_head *item; | 292 | struct list_head *item; |
293 | struct i2c_adapter *adapter; | 293 | struct i2c_adapter *adapter; |
@@ -296,6 +296,7 @@ int i2c_add_driver(struct i2c_driver *driver) | |||
296 | down(&core_lists); | 296 | down(&core_lists); |
297 | 297 | ||
298 | /* add the driver to the list of i2c drivers in the driver core */ | 298 | /* add the driver to the list of i2c drivers in the driver core */ |
299 | driver->driver.owner = owner; | ||
299 | driver->driver.bus = &i2c_bus_type; | 300 | driver->driver.bus = &i2c_bus_type; |
300 | driver->driver.probe = i2c_device_probe; | 301 | driver->driver.probe = i2c_device_probe; |
301 | driver->driver.remove = i2c_device_remove; | 302 | driver->driver.remove = i2c_device_remove; |
@@ -319,6 +320,7 @@ int i2c_add_driver(struct i2c_driver *driver) | |||
319 | up(&core_lists); | 320 | up(&core_lists); |
320 | return res; | 321 | return res; |
321 | } | 322 | } |
323 | EXPORT_SYMBOL(i2c_register_driver); | ||
322 | 324 | ||
323 | int i2c_del_driver(struct i2c_driver *driver) | 325 | int i2c_del_driver(struct i2c_driver *driver) |
324 | { | 326 | { |
@@ -1132,7 +1134,6 @@ EXPORT_SYMBOL_GPL(i2c_bus_type); | |||
1132 | 1134 | ||
1133 | EXPORT_SYMBOL(i2c_add_adapter); | 1135 | EXPORT_SYMBOL(i2c_add_adapter); |
1134 | EXPORT_SYMBOL(i2c_del_adapter); | 1136 | EXPORT_SYMBOL(i2c_del_adapter); |
1135 | EXPORT_SYMBOL(i2c_add_driver); | ||
1136 | EXPORT_SYMBOL(i2c_del_driver); | 1137 | EXPORT_SYMBOL(i2c_del_driver); |
1137 | EXPORT_SYMBOL(i2c_attach_client); | 1138 | EXPORT_SYMBOL(i2c_attach_client); |
1138 | EXPORT_SYMBOL(i2c_detach_client); | 1139 | EXPORT_SYMBOL(i2c_detach_client); |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 75aa18e865da..7863a59bd598 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -291,9 +291,14 @@ struct i2c_client_address_data { | |||
291 | extern int i2c_add_adapter(struct i2c_adapter *); | 291 | extern int i2c_add_adapter(struct i2c_adapter *); |
292 | extern int i2c_del_adapter(struct i2c_adapter *); | 292 | extern int i2c_del_adapter(struct i2c_adapter *); |
293 | 293 | ||
294 | extern int i2c_add_driver(struct i2c_driver *); | 294 | extern int i2c_register_driver(struct module *, struct i2c_driver *); |
295 | extern int i2c_del_driver(struct i2c_driver *); | 295 | extern int i2c_del_driver(struct i2c_driver *); |
296 | 296 | ||
297 | static inline int i2c_add_driver(struct i2c_driver *driver) | ||
298 | { | ||
299 | return i2c_register_driver(THIS_MODULE, driver); | ||
300 | } | ||
301 | |||
297 | extern int i2c_attach_client(struct i2c_client *); | 302 | extern int i2c_attach_client(struct i2c_client *); |
298 | extern int i2c_detach_client(struct i2c_client *); | 303 | extern int i2c_detach_client(struct i2c_client *); |
299 | 304 | ||