[PATCH] i2c: Drop i2c_driver.{owner,name}, 1 of 11
authorLaurent Riffard <laurent.riffard@free.fr>
Sat, 26 Nov 2005 19:34:05 +0000 (20:34 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 6 Jan 2006 06:16:22 +0000 (22:16 -0800)
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 <laurent.riffard@free.fr>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/i2c/busses/i2c-isa.c
drivers/i2c/i2c-core.c
drivers/i2c/i2c-dev.c
include/linux/i2c.h

index 03672c9..9f93fb8 100644 (file)
@@ -92,8 +92,6 @@ int i2c_isa_add_driver(struct i2c_driver *driver)
        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 @@ int i2c_isa_del_driver(struct i2c_driver *driver)
                if ((res = driver->detach_client(client))) {
                        dev_err(&isa_adapter.dev, "Failed, driver "
                                "%s not unregistered!\n",
-                               driver->name);
+                               driver->driver.name);
                        return res;
                }
        }
index a1c5dff..4ce5f0f 100644 (file)
@@ -235,7 +235,8 @@ int i2c_del_adapter(struct i2c_adapter *adap)
                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 @@ int i2c_add_driver(struct i2c_driver *driver)
        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 @@ int i2c_add_driver(struct i2c_driver *driver)
                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 @@ int i2c_del_driver(struct i2c_driver *driver)
                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 @@ int i2c_del_driver(struct i2c_driver *driver)
 
        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);
@@ -473,10 +473,10 @@ int i2c_detach_client(struct i2c_client *client)
 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;
        }
 
@@ -485,7 +485,7 @@ static int i2c_inc_use_client(struct i2c_client *client)
 
 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);
 }
 
@@ -524,14 +524,14 @@ void i2c_clients_command(struct i2c_adapter *adap, unsigned int cmd, void *arg)
        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);
 }
index 9da51eb..9715217 100644 (file)
@@ -481,8 +481,10 @@ static int i2cdev_command(struct i2c_client *client, unsigned int cmd,
 }
 
 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,
index a9cea62..75aa18e 100644 (file)
@@ -105,11 +105,12 @@ extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
  * 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;