i2c: Drop i2c_driver.{owner, name},
Subsystems (2)
PATCH 10/25 i2c: Drop i2c_driver.{owner, name},
From: Laurent Riffard <[email protected]>
Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-01-core.patch
We should use the i2c_driver.driver's .name and .owner fields instead of the i2c_driver's ones.
This patch updates the core of the i2c drivers: it removes .name and .owner fields from the struct i2c_device and modify various functions to use struct device fields instead.
Signed-off-by Laurent Riffard <[email protected]>
Signed-off-by Jean Delvare <[email protected]>
--- drivers/i2c/busses/i2c-isa.c | 4 +--- drivers/i2c/i2c-core.c | 22 +++++++++++----------- drivers/i2c/i2c-dev.c | 6 ++++-- include/linux/i2c.h | 5 +++-- 4 files changed, 19 insertions(+), 18 deletions(-)
drivers/i2c/busses/i2c-isa.c +1 -3
@@ -92,8 +92,6 @@int res;/* Add the driver to the list of i2c drivers in the driver core */ - driver->driver.name = driver->name; - driver->driver.owner = driver->owner; driver->driver.bus = &i2c_bus_type; driver->driver.probe = i2c_isa_device_probe; driver->driver.remove = i2c_isa_device_remove;
@@ -124,7 +122,7 @@if ((res = driver->detach_client (client))) {dev_err (&isa_adapter.dev,"Failed, driver " "%s not unregistered!\n" , - driver->name); + driver->driver.name);return res; } }
drivers/i2c/i2c-core.c +11 -11
@@ -235,7 +235,8 @@if (driver->detach_adapter)if ((res = driver->detach_adapter (adap))) {dev_err (&adap->dev,"detach_adapter failed " -"for driver [%s]\n" , driver->name); +"for driver [%s]\n" , + driver->driver.name); goto out_unlock; } }
@@ -295,8 +296,6 @@down (&core_lists);/* add the driver to the list of i2c drivers in the driver core */ - driver->driver.owner = driver->owner; - driver->driver.name = driver->name; driver->driver.bus = &i2c_bus_type; driver->driver.probe = i2c_device_probe; driver->driver.remove = i2c_device_remove;
@@ -306,7 +305,7 @@ goto out_unlock;list_add_tail (&driver->list,&drivers); -pr_debug ("i2c-core: driver [%s] registered\n" , driver->name); +pr_debug ("i2c-core: driver [%s] registered\n" , driver->driver.name);/* now look for instances of driver on our adapters */ if (driver->attach_adapter) {
@@ -344,7 +343,8 @@if (driver->detach_adapter) {if ((res = driver->detach_adapter (adap))) {dev_err (&adap->dev,"detach_adapter failed " -"for driver [%s]\n" , driver->name); +"for driver [%s]\n" , + driver->driver.name); goto out_unlock; } }else {
@@ -368,7 +368,7 @@driver_unregister (&driver->driver);list_del (&driver->list); -pr_debug ("i2c-core: driver [%s] unregistered\n" , driver->name); +pr_debug ("i2c-core: driver [%s] unregistered\n" , driver->driver.name); out_unlock:up (&core_lists);
@@ -475,10 +475,10 @@static int i2c_inc_use_client (struct i2c_client *client) { -if (!try_module_get (client->driver->owner)) +if (!try_module_get (client->driver->driver.owner))return -ENODEV ;if (!try_module_get (client->adapter->owner)) { -module_put (client->driver->owner); +module_put (client->driver->driver.owner);return -ENODEV ; }
@@ -487,7 +487,7 @@static void i2c_dec_use_client (struct i2c_client *client) { -module_put (client->driver->owner); +module_put (client->driver->driver.owner);module_put (client->adapter->owner); }
@@ -539,14 +539,14 @@down (&adap->clist_lock);list_for_each (item,&adap->clients) { client = list_entry(item, struct i2c_client, list); -if (!try_module_get (client->driver->owner)) +if (!try_module_get (client->driver->driver.owner))continue ;if (NULL != client->driver->command) {up (&adap->clist_lock); client->driver->command (client,cmd,arg);down (&adap->clist_lock); } -module_put (client->driver->owner); +module_put (client->driver->driver.owner); }up (&adap->clist_lock); }
drivers/i2c/i2c-dev.c +4 -2
@@ -481,8 +481,10 @@ }static struct i2c_driver i2cdev_driver = { - .owner =THIS_MODULE , - .name ="dev_driver" , + .driver = { + .owner =THIS_MODULE , + .name ="dev_driver" , + }, .id =I2C_DRIVERID_I2CDEV , .attach_adapter = i2cdev_attach_adapter, .detach_adapter = i2cdev_detach_adapter,
include/linux/i2c.h +3 -2
@@ -105,11 +105,12 @@* A driver is capable of handling one or more physical devices present on * I2C adapters. This information is used to inform the driver of adapter * events. +* +* The driver.owner field should be set to the module owner of this driver. +* The driver.name field should be set to the name of this driver. */ struct i2c_driver { -struct module *owner; -char name[32 ];int id;unsigned int class;
Signature · 1 line
Jean Delvare