Re: [PATCH] More i2c driver changes for 2.5.65

From: Greg KH (greg@kroah.com)
Date: Fri Mar 21 2003 - 20:04:11 EST


ChangeSet 1.1190, 2003/03/21 14:38:21-08:00, greg@kroah.com

[PATCH] i2c: remove *data from i2c_adapter, as dev->data should be used instead.

 drivers/i2c/i2c-elv.c | 2 +-
 drivers/i2c/scx200_acb.c | 4 ++--
 include/linux/i2c.h | 17 +++++++++++------
 3 files changed, 14 insertions(+), 9 deletions(-)

diff -Nru a/drivers/i2c/i2c-elv.c b/drivers/i2c/i2c-elv.c
--- a/drivers/i2c/i2c-elv.c Fri Mar 21 16:53:26 2003
+++ b/drivers/i2c/i2c-elv.c Fri Mar 21 16:53:26 2003
@@ -150,7 +150,7 @@
                         return -ENODEV;
                 }
         } else {
- bit_elv_ops.data=(void*)base;
+ i2c_set_adapdata(&bit_elv_ops, (void *)base);
                 if (bit_elv_init()==0) {
                         if(i2c_bit_add_bus(&bit_elv_ops) < 0)
                                 return -ENODEV;
diff -Nru a/drivers/i2c/scx200_acb.c b/drivers/i2c/scx200_acb.c
--- a/drivers/i2c/scx200_acb.c Fri Mar 21 16:53:26 2003
+++ b/drivers/i2c/scx200_acb.c Fri Mar 21 16:53:26 2003
@@ -289,7 +289,7 @@
                                 char rw, u8 command, int size,
                                 union i2c_smbus_data *data)
 {
- struct scx200_acb_iface *iface = adapter->data;
+ struct scx200_acb_iface *iface = i2c_get_adapdata(adapter);
         int len;
         u8 *buffer;
         u16 cur_word;
@@ -455,7 +455,7 @@
 
         memset(iface, 0, sizeof(*iface));
         adapter = &iface->adapter;
- adapter->data = iface;
+ i2c_set_adapdata(adapter, iface);
         snprintf(adapter->dev.name, DEVICE_NAME_SIZE, "SCx200 ACB%d", index);
         adapter->owner = THIS_MODULE;
         adapter->id = I2C_ALGO_SMBUS;
diff -Nru a/include/linux/i2c.h b/include/linux/i2c.h
--- a/include/linux/i2c.h Fri Mar 21 16:53:26 2003
+++ b/include/linux/i2c.h Fri Mar 21 16:53:26 2003
@@ -219,12 +219,7 @@
         int (*client_register)(struct i2c_client *);
         int (*client_unregister)(struct i2c_client *);
 
- void *data; /* private data for the adapter */
- /* some data fields that are used by all types */
- /* these data fields are readonly to the public */
- /* and can be set via the i2c_ioctl call */
-
- /* data fields that are valid for all devices */
+ /* data fields that are valid for all devices */
         struct semaphore bus;
         struct semaphore list;
         unsigned int flags;/* flags specifying div. data */
@@ -241,6 +236,16 @@
 #endif /* def CONFIG_PROC_FS */
 };
 #define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev)
+
+static inline void *i2c_get_adapdata (struct i2c_adapter *dev)
+{
+ return dev_get_drvdata (&dev->dev);
+}
+
+static inline void i2c_set_adapdata (struct i2c_adapter *dev, void *data)
+{
+ return dev_set_drvdata (&dev->dev, data);
+}
 
 /*flags for the driver struct: */
 #define I2C_DF_NOTIFY 0x01 /* notify on bus (de/a)ttaches */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Mar 23 2003 - 22:00:40 EST