iio: core: iio_chan_spec_ext_info: Add private handle
authorMichael Hennerich <michael.hennerich@analog.com>
Fri, 27 Apr 2012 08:58:36 +0000 (10:58 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Apr 2012 01:26:17 +0000 (21:26 -0400)
There is currently no user, but we might need it in future.
So better add it now, before we have to convert drivers afterwards.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iio/industrialio-core.c
drivers/staging/iio/dac/ad5064.c
drivers/staging/iio/dac/ad5446.c
include/linux/iio/iio.h

index 47a72473d0b5d429a88a58fae5105bfc18c63c13..72e33b819f9119374584bf726ad01c3800098c67 100644 (file)
@@ -281,7 +281,7 @@ static ssize_t iio_read_channel_ext_info(struct device *dev,
 
        ext_info = &this_attr->c->ext_info[this_attr->address];
 
-       return ext_info->read(indio_dev, this_attr->c, buf);
+       return ext_info->read(indio_dev, ext_info->private, this_attr->c, buf);
 }
 
 static ssize_t iio_write_channel_ext_info(struct device *dev,
@@ -295,7 +295,8 @@ static ssize_t iio_write_channel_ext_info(struct device *dev,
 
        ext_info = &this_attr->c->ext_info[this_attr->address];
 
-       return ext_info->write(indio_dev, this_attr->c, buf, len);
+       return ext_info->write(indio_dev, ext_info->private,
+                              this_attr->c, buf, len);
 }
 
 static ssize_t iio_read_channel_info(struct device *dev,
index bce641a1cf82adb065d9721b28bad645299a4d9a..047148aa66b2a8a3fb10c2cd6a0b2cf10b8a1ebd 100644 (file)
@@ -144,14 +144,14 @@ static const char ad5064_powerdown_modes[][15] = {
 };
 
 static ssize_t ad5064_read_powerdown_mode_available(struct iio_dev *indio_dev,
-       const struct iio_chan_spec *chan, char *buf)
+       uintptr_t private, const struct iio_chan_spec *chan, char *buf)
 {
        return sprintf(buf, "%s %s %s\n", ad5064_powerdown_modes[1],
                ad5064_powerdown_modes[2], ad5064_powerdown_modes[3]);
 }
 
 static ssize_t ad5064_read_powerdown_mode(struct iio_dev *indio_dev,
-       const struct iio_chan_spec *chan, char *buf)
+       uintptr_t private, const struct iio_chan_spec *chan, char *buf)
 {
        struct ad5064_state *st = iio_priv(indio_dev);
 
@@ -160,7 +160,8 @@ static ssize_t ad5064_read_powerdown_mode(struct iio_dev *indio_dev,
 }
 
 static ssize_t ad5064_write_powerdown_mode(struct iio_dev *indio_dev,
-       const struct iio_chan_spec *chan, const char *buf, size_t len)
+       uintptr_t private, const struct iio_chan_spec *chan, const char *buf,
+       size_t len)
 {
        struct ad5064_state *st = iio_priv(indio_dev);
        unsigned int mode, i;
@@ -187,7 +188,7 @@ static ssize_t ad5064_write_powerdown_mode(struct iio_dev *indio_dev,
 }
 
 static ssize_t ad5064_read_dac_powerdown(struct iio_dev *indio_dev,
-       const struct iio_chan_spec *chan, char *buf)
+       uintptr_t private, const struct iio_chan_spec *chan, char *buf)
 {
        struct ad5064_state *st = iio_priv(indio_dev);
 
@@ -195,7 +196,8 @@ static ssize_t ad5064_read_dac_powerdown(struct iio_dev *indio_dev,
 }
 
 static ssize_t ad5064_write_dac_powerdown(struct iio_dev *indio_dev,
-       const struct iio_chan_spec *chan, const char *buf, size_t len)
+        uintptr_t private, const struct iio_chan_spec *chan, const char *buf,
+        size_t len)
 {
        struct ad5064_state *st = iio_priv(indio_dev);
        bool pwr_down;
index 3b2551f67a0d5b7a1e0e1f4d7544a740a268ee44..daa65b384c13d7a20867605b1748dc711c3baaeb 100644 (file)
@@ -46,13 +46,14 @@ static const char * const ad5446_powerdown_modes[] = {
 };
 
 static ssize_t ad5446_read_powerdown_mode_available(struct iio_dev *indio_dev,
-       const struct iio_chan_spec *chan, char *buf)
+       uintptr_t private, const struct iio_chan_spec *chan, char *buf)
 {
        return sprintf(buf, "%s %s %s\n", ad5446_powerdown_modes[1],
                ad5446_powerdown_modes[2], ad5446_powerdown_modes[3]);
 }
 
 static ssize_t ad5446_write_powerdown_mode(struct iio_dev *indio_dev,
+                                           uintptr_t private,
                                            const struct iio_chan_spec *chan,
                                            const char *buf, size_t len)
 {
@@ -73,6 +74,7 @@ static ssize_t ad5446_write_powerdown_mode(struct iio_dev *indio_dev,
 }
 
 static ssize_t ad5446_read_powerdown_mode(struct iio_dev *indio_dev,
+                                          uintptr_t private,
                                           const struct iio_chan_spec *chan,
                                           char *buf)
 {
@@ -82,6 +84,7 @@ static ssize_t ad5446_read_powerdown_mode(struct iio_dev *indio_dev,
 }
 
 static ssize_t ad5446_read_dac_powerdown(struct iio_dev *indio_dev,
+                                          uintptr_t private,
                                           const struct iio_chan_spec *chan,
                                           char *buf)
 {
@@ -91,6 +94,7 @@ static ssize_t ad5446_read_dac_powerdown(struct iio_dev *indio_dev,
 }
 
 static ssize_t ad5446_write_dac_powerdown(struct iio_dev *indio_dev,
+                                           uintptr_t private,
                                            const struct iio_chan_spec *chan,
                                            const char *buf, size_t len)
 {
index 43002b2b1e385cbbcbea1d77babb74170e990ac4..6fdbdb858e35f46f5fb2c590a11ab02fb3e9cae8 100644 (file)
@@ -111,14 +111,17 @@ struct iio_dev;
  * @shared:    Whether this attribute is shared between all channels.
  * @read:      Read callback for this info attribute, may be NULL.
  * @write:     Write callback for this info attribute, may be NULL.
+ * @private:   Data private to the driver.
  */
 struct iio_chan_spec_ext_info {
        const char *name;
        bool shared;
-       ssize_t (*read)(struct iio_dev *, struct iio_chan_spec const *,
-                       char *buf);
-       ssize_t (*write)(struct iio_dev *, struct iio_chan_spec const *,
-                       const char *buf, size_t len);
+       ssize_t (*read)(struct iio_dev *, uintptr_t private,
+                       struct iio_chan_spec const *, char *buf);
+       ssize_t (*write)(struct iio_dev *, uintptr_t private,
+                        struct iio_chan_spec const *, const char *buf,
+                        size_t len);
+       uintptr_t private;
 };
 
 /**