aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJonathan Cameron <jic23@cam.ac.uk>2011-04-15 13:55:56 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-04-25 20:23:09 -0400
commit6f7c8ee585e9db54cb29af1bdb93f29837824933 (patch)
tree2eaf2ef782137ed1b9996c0fd511c40f1efb6625 /drivers
parentb428173316dcb4a518ee22c642671ae8a4bcec48 (diff)
staging:iio: Add ability to allocate private data space to iio_allocate_device
Suggested by Arnd Bergmann. Note this will break ALL drivers that are out of mainline. The fix is trivial change of iio_allocate_device() -> iio_allocate_device(0) Sorry if this causes issues for any one! V2: Include new drivers in the update Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/iio/Documentation/device.txt2
-rw-r--r--drivers/staging/iio/accel/adis16201_core.c2
-rw-r--r--drivers/staging/iio/accel/adis16203_core.c2
-rw-r--r--drivers/staging/iio/accel/adis16204_core.c2
-rw-r--r--drivers/staging/iio/accel/adis16209_core.c2
-rw-r--r--drivers/staging/iio/accel/adis16220_core.c2
-rw-r--r--drivers/staging/iio/accel/adis16240_core.c2
-rw-r--r--drivers/staging/iio/accel/kxsd9.c2
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_core.c2
-rw-r--r--drivers/staging/iio/accel/sca3000_core.c2
-rw-r--r--drivers/staging/iio/adc/ad7150.c2
-rw-r--r--drivers/staging/iio/adc/ad7152.c2
-rw-r--r--drivers/staging/iio/adc/ad7291.c2
-rw-r--r--drivers/staging/iio/adc/ad7298_core.c2
-rw-r--r--drivers/staging/iio/adc/ad7314.c2
-rw-r--r--drivers/staging/iio/adc/ad7476_core.c2
-rw-r--r--drivers/staging/iio/adc/ad7606_core.c2
-rw-r--r--drivers/staging/iio/adc/ad7745.c2
-rw-r--r--drivers/staging/iio/adc/ad7780.c2
-rw-r--r--drivers/staging/iio/adc/ad7816.c2
-rw-r--r--drivers/staging/iio/adc/ad7887_core.c2
-rw-r--r--drivers/staging/iio/adc/ad799x_core.c2
-rw-r--r--drivers/staging/iio/adc/adt7310.c2
-rw-r--r--drivers/staging/iio/adc/adt7410.c2
-rw-r--r--drivers/staging/iio/adc/adt75.c2
-rw-r--r--drivers/staging/iio/adc/max1363_core.c2
-rw-r--r--drivers/staging/iio/addac/adt7316.c2
-rw-r--r--drivers/staging/iio/dac/ad5446.c2
-rw-r--r--drivers/staging/iio/dac/ad5504.c2
-rw-r--r--drivers/staging/iio/dac/ad5624r_spi.c2
-rw-r--r--drivers/staging/iio/dac/ad5791.c2
-rw-r--r--drivers/staging/iio/dac/max517.c2
-rw-r--r--drivers/staging/iio/dds/ad5930.c2
-rw-r--r--drivers/staging/iio/dds/ad9832.c2
-rw-r--r--drivers/staging/iio/dds/ad9834.c2
-rw-r--r--drivers/staging/iio/dds/ad9850.c2
-rw-r--r--drivers/staging/iio/dds/ad9852.c2
-rw-r--r--drivers/staging/iio/dds/ad9910.c2
-rw-r--r--drivers/staging/iio/dds/ad9951.c2
-rw-r--r--drivers/staging/iio/gyro/adis16060_core.c2
-rw-r--r--drivers/staging/iio/gyro/adis16080_core.c2
-rw-r--r--drivers/staging/iio/gyro/adis16130_core.c2
-rw-r--r--drivers/staging/iio/gyro/adis16260_core.c2
-rw-r--r--drivers/staging/iio/gyro/adxrs450_core.c2
-rw-r--r--drivers/staging/iio/iio.h17
-rw-r--r--drivers/staging/iio/imu/adis16300_core.c2
-rw-r--r--drivers/staging/iio/imu/adis16350_core.c2
-rw-r--r--drivers/staging/iio/imu/adis16400_core.c2
-rw-r--r--drivers/staging/iio/industrialio-core.c15
-rw-r--r--drivers/staging/iio/light/isl29018.c2
-rw-r--r--drivers/staging/iio/light/tsl2563.c2
-rw-r--r--drivers/staging/iio/light/tsl2583.c2
-rw-r--r--drivers/staging/iio/magnetometer/ak8975.c2
-rw-r--r--drivers/staging/iio/magnetometer/hmc5843.c2
-rw-r--r--drivers/staging/iio/meter/ade7753.c2
-rw-r--r--drivers/staging/iio/meter/ade7754.c2
-rw-r--r--drivers/staging/iio/meter/ade7758_core.c2
-rw-r--r--drivers/staging/iio/meter/ade7759.c2
-rw-r--r--drivers/staging/iio/meter/ade7854.c2
-rw-r--r--drivers/staging/iio/resolver/ad2s120x.c2
-rw-r--r--drivers/staging/iio/resolver/ad2s1210.c2
-rw-r--r--drivers/staging/iio/resolver/ad2s90.c2
62 files changed, 89 insertions, 63 deletions
diff --git a/drivers/staging/iio/Documentation/device.txt b/drivers/staging/iio/Documentation/device.txt
index 69d9570f29f..c81e5172aec 100644
--- a/drivers/staging/iio/Documentation/device.txt
+++ b/drivers/staging/iio/Documentation/device.txt
@@ -8,7 +8,7 @@ The crucial structure for device drivers in iio is iio_dev.
8 8
9First allocate one using: 9First allocate one using:
10 10
11struct iio_dev *indio_dev = iio_allocate_device(); 11struct iio_dev *indio_dev = iio_allocate_device(0);
12 12
13Then fill in the following: 13Then fill in the following:
14 14
diff --git a/drivers/staging/iio/accel/adis16201_core.c b/drivers/staging/iio/accel/adis16201_core.c
index 79b785a0013..df1101cefc6 100644
--- a/drivers/staging/iio/accel/adis16201_core.c
+++ b/drivers/staging/iio/accel/adis16201_core.c
@@ -539,7 +539,7 @@ static int __devinit adis16201_probe(struct spi_device *spi)
539 st->us = spi; 539 st->us = spi;
540 mutex_init(&st->buf_lock); 540 mutex_init(&st->buf_lock);
541 /* setup the industrialio driver allocated elements */ 541 /* setup the industrialio driver allocated elements */
542 st->indio_dev = iio_allocate_device(); 542 st->indio_dev = iio_allocate_device(0);
543 if (st->indio_dev == NULL) { 543 if (st->indio_dev == NULL) {
544 ret = -ENOMEM; 544 ret = -ENOMEM;
545 goto error_free_tx; 545 goto error_free_tx;
diff --git a/drivers/staging/iio/accel/adis16203_core.c b/drivers/staging/iio/accel/adis16203_core.c
index b57f19087a9..e5a2a477b11 100644
--- a/drivers/staging/iio/accel/adis16203_core.c
+++ b/drivers/staging/iio/accel/adis16203_core.c
@@ -448,7 +448,7 @@ static int __devinit adis16203_probe(struct spi_device *spi)
448 st->us = spi; 448 st->us = spi;
449 mutex_init(&st->buf_lock); 449 mutex_init(&st->buf_lock);
450 /* setup the industrialio driver allocated elements */ 450 /* setup the industrialio driver allocated elements */
451 st->indio_dev = iio_allocate_device(); 451 st->indio_dev = iio_allocate_device(0);
452 if (st->indio_dev == NULL) { 452 if (st->indio_dev == NULL) {
453 ret = -ENOMEM; 453 ret = -ENOMEM;
454 goto error_free_tx; 454 goto error_free_tx;
diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c
index cc15e40726f..97376aa2fc5 100644
--- a/drivers/staging/iio/accel/adis16204_core.c
+++ b/drivers/staging/iio/accel/adis16204_core.c
@@ -493,7 +493,7 @@ static int __devinit adis16204_probe(struct spi_device *spi)
493 st->us = spi; 493 st->us = spi;
494 mutex_init(&st->buf_lock); 494 mutex_init(&st->buf_lock);
495 /* setup the industrialio driver allocated elements */ 495 /* setup the industrialio driver allocated elements */
496 st->indio_dev = iio_allocate_device(); 496 st->indio_dev = iio_allocate_device(0);
497 if (st->indio_dev == NULL) { 497 if (st->indio_dev == NULL) {
498 ret = -ENOMEM; 498 ret = -ENOMEM;
499 goto error_free_tx; 499 goto error_free_tx;
diff --git a/drivers/staging/iio/accel/adis16209_core.c b/drivers/staging/iio/accel/adis16209_core.c
index e4ac956208a..d2fb9901dd6 100644
--- a/drivers/staging/iio/accel/adis16209_core.c
+++ b/drivers/staging/iio/accel/adis16209_core.c
@@ -488,7 +488,7 @@ static int __devinit adis16209_probe(struct spi_device *spi)
488 st->us = spi; 488 st->us = spi;
489 mutex_init(&st->buf_lock); 489 mutex_init(&st->buf_lock);
490 /* setup the industrialio driver allocated elements */ 490 /* setup the industrialio driver allocated elements */
491 st->indio_dev = iio_allocate_device(); 491 st->indio_dev = iio_allocate_device(0);
492 if (st->indio_dev == NULL) { 492 if (st->indio_dev == NULL) {
493 ret = -ENOMEM; 493 ret = -ENOMEM;
494 goto error_free_tx; 494 goto error_free_tx;
diff --git a/drivers/staging/iio/accel/adis16220_core.c b/drivers/staging/iio/accel/adis16220_core.c
index 1c1e98aee2d..0689e412ba8 100644
--- a/drivers/staging/iio/accel/adis16220_core.c
+++ b/drivers/staging/iio/accel/adis16220_core.c
@@ -572,7 +572,7 @@ static int __devinit adis16220_probe(struct spi_device *spi)
572 st->us = spi; 572 st->us = spi;
573 mutex_init(&st->buf_lock); 573 mutex_init(&st->buf_lock);
574 /* setup the industrialio driver allocated elements */ 574 /* setup the industrialio driver allocated elements */
575 st->indio_dev = iio_allocate_device(); 575 st->indio_dev = iio_allocate_device(0);
576 if (st->indio_dev == NULL) { 576 if (st->indio_dev == NULL) {
577 ret = -ENOMEM; 577 ret = -ENOMEM;
578 goto error_free_tx; 578 goto error_free_tx;
diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c
index d11d164207e..31f64ae3bb0 100644
--- a/drivers/staging/iio/accel/adis16240_core.c
+++ b/drivers/staging/iio/accel/adis16240_core.c
@@ -485,7 +485,7 @@ static int __devinit adis16240_probe(struct spi_device *spi)
485 st->us = spi; 485 st->us = spi;
486 mutex_init(&st->buf_lock); 486 mutex_init(&st->buf_lock);
487 /* setup the industrialio driver allocated elements */ 487 /* setup the industrialio driver allocated elements */
488 st->indio_dev = iio_allocate_device(); 488 st->indio_dev = iio_allocate_device(0);
489 if (st->indio_dev == NULL) { 489 if (st->indio_dev == NULL) {
490 ret = -ENOMEM; 490 ret = -ENOMEM;
491 goto error_free_tx; 491 goto error_free_tx;
diff --git a/drivers/staging/iio/accel/kxsd9.c b/drivers/staging/iio/accel/kxsd9.c
index 79f57950ebe..431aa0f886f 100644
--- a/drivers/staging/iio/accel/kxsd9.c
+++ b/drivers/staging/iio/accel/kxsd9.c
@@ -329,7 +329,7 @@ static int __devinit kxsd9_probe(struct spi_device *spi)
329 329
330 st->us = spi; 330 st->us = spi;
331 mutex_init(&st->buf_lock); 331 mutex_init(&st->buf_lock);
332 st->indio_dev = iio_allocate_device(); 332 st->indio_dev = iio_allocate_device(0);
333 if (st->indio_dev == NULL) { 333 if (st->indio_dev == NULL) {
334 ret = -ENOMEM; 334 ret = -ENOMEM;
335 goto error_free_tx; 335 goto error_free_tx;
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
index 34f16a7cc3a..e11388ab457 100644
--- a/drivers/staging/iio/accel/lis3l02dq_core.c
+++ b/drivers/staging/iio/accel/lis3l02dq_core.c
@@ -805,7 +805,7 @@ static int __devinit lis3l02dq_probe(struct spi_device *spi)
805 st->us = spi; 805 st->us = spi;
806 mutex_init(&st->buf_lock); 806 mutex_init(&st->buf_lock);
807 /* setup the industrialio driver allocated elements */ 807 /* setup the industrialio driver allocated elements */
808 st->help.indio_dev = iio_allocate_device(); 808 st->help.indio_dev = iio_allocate_device(0);
809 if (st->help.indio_dev == NULL) { 809 if (st->help.indio_dev == NULL) {
810 ret = -ENOMEM; 810 ret = -ENOMEM;
811 goto error_free_tx; 811 goto error_free_tx;
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
index 5b06dea6af2..6abf2b7e306 100644
--- a/drivers/staging/iio/accel/sca3000_core.c
+++ b/drivers/staging/iio/accel/sca3000_core.c
@@ -1339,7 +1339,7 @@ static int __devinit __sca3000_probe(struct spi_device *spi,
1339 mutex_init(&st->lock); 1339 mutex_init(&st->lock);
1340 st->info = &sca3000_spi_chip_info_tbl[variant]; 1340 st->info = &sca3000_spi_chip_info_tbl[variant];
1341 1341
1342 st->indio_dev = iio_allocate_device(); 1342 st->indio_dev = iio_allocate_device(0);
1343 if (st->indio_dev == NULL) { 1343 if (st->indio_dev == NULL) {
1344 ret = -ENOMEM; 1344 ret = -ENOMEM;
1345 goto error_free_rx; 1345 goto error_free_rx;
diff --git a/drivers/staging/iio/adc/ad7150.c b/drivers/staging/iio/adc/ad7150.c
index 8555766109d..5a2991ac47e 100644
--- a/drivers/staging/iio/adc/ad7150.c
+++ b/drivers/staging/iio/adc/ad7150.c
@@ -778,7 +778,7 @@ static int __devinit ad7150_probe(struct i2c_client *client,
778 chip->client = client; 778 chip->client = client;
779 chip->name = id->name; 779 chip->name = id->name;
780 780
781 chip->indio_dev = iio_allocate_device(); 781 chip->indio_dev = iio_allocate_device(0);
782 if (chip->indio_dev == NULL) { 782 if (chip->indio_dev == NULL) {
783 ret = -ENOMEM; 783 ret = -ENOMEM;
784 goto error_free_chip; 784 goto error_free_chip;
diff --git a/drivers/staging/iio/adc/ad7152.c b/drivers/staging/iio/adc/ad7152.c
index fa7f8406230..163c30767b0 100644
--- a/drivers/staging/iio/adc/ad7152.c
+++ b/drivers/staging/iio/adc/ad7152.c
@@ -533,7 +533,7 @@ static int __devinit ad7152_probe(struct i2c_client *client,
533 chip->client = client; 533 chip->client = client;
534 chip->name = id->name; 534 chip->name = id->name;
535 535
536 chip->indio_dev = iio_allocate_device(); 536 chip->indio_dev = iio_allocate_device(0);
537 if (chip->indio_dev == NULL) { 537 if (chip->indio_dev == NULL) {
538 ret = -ENOMEM; 538 ret = -ENOMEM;
539 goto error_free_chip; 539 goto error_free_chip;
diff --git a/drivers/staging/iio/adc/ad7291.c b/drivers/staging/iio/adc/ad7291.c
index 34041a72aa5..976ae7f7710 100644
--- a/drivers/staging/iio/adc/ad7291.c
+++ b/drivers/staging/iio/adc/ad7291.c
@@ -926,7 +926,7 @@ static int __devinit ad7291_probe(struct i2c_client *client,
926 chip->name = id->name; 926 chip->name = id->name;
927 chip->command = AD7291_NOISE_DELAY | AD7291_T_SENSE_MASK; 927 chip->command = AD7291_NOISE_DELAY | AD7291_T_SENSE_MASK;
928 928
929 chip->indio_dev = iio_allocate_device(); 929 chip->indio_dev = iio_allocate_device(0);
930 if (chip->indio_dev == NULL) { 930 if (chip->indio_dev == NULL) {
931 ret = -ENOMEM; 931 ret = -ENOMEM;
932 goto error_free_chip; 932 goto error_free_chip;
diff --git a/drivers/staging/iio/adc/ad7298_core.c b/drivers/staging/iio/adc/ad7298_core.c
index 2e9154e7d88..8b3a4904682 100644
--- a/drivers/staging/iio/adc/ad7298_core.c
+++ b/drivers/staging/iio/adc/ad7298_core.c
@@ -173,7 +173,7 @@ static int __devinit ad7298_probe(struct spi_device *spi)
173 atomic_set(&st->protect_ring, 0); 173 atomic_set(&st->protect_ring, 0);
174 st->spi = spi; 174 st->spi = spi;
175 175
176 st->indio_dev = iio_allocate_device(); 176 st->indio_dev = iio_allocate_device(0);
177 if (st->indio_dev == NULL) { 177 if (st->indio_dev == NULL) {
178 ret = -ENOMEM; 178 ret = -ENOMEM;
179 goto error_disable_reg; 179 goto error_disable_reg;
diff --git a/drivers/staging/iio/adc/ad7314.c b/drivers/staging/iio/adc/ad7314.c
index 8c17b1fe902..dffbec13632 100644
--- a/drivers/staging/iio/adc/ad7314.c
+++ b/drivers/staging/iio/adc/ad7314.c
@@ -229,7 +229,7 @@ static int __devinit ad7314_probe(struct spi_device *spi_dev)
229 chip->spi_dev = spi_dev; 229 chip->spi_dev = spi_dev;
230 chip->name = spi_dev->modalias; 230 chip->name = spi_dev->modalias;
231 231
232 chip->indio_dev = iio_allocate_device(); 232 chip->indio_dev = iio_allocate_device(0);
233 if (chip->indio_dev == NULL) { 233 if (chip->indio_dev == NULL) {
234 ret = -ENOMEM; 234 ret = -ENOMEM;
235 goto error_free_chip; 235 goto error_free_chip;
diff --git a/drivers/staging/iio/adc/ad7476_core.c b/drivers/staging/iio/adc/ad7476_core.c
index d263904b3d1..b16744cc549 100644
--- a/drivers/staging/iio/adc/ad7476_core.c
+++ b/drivers/staging/iio/adc/ad7476_core.c
@@ -184,7 +184,7 @@ static int __devinit ad7476_probe(struct spi_device *spi)
184 atomic_set(&st->protect_ring, 0); 184 atomic_set(&st->protect_ring, 0);
185 st->spi = spi; 185 st->spi = spi;
186 186
187 st->indio_dev = iio_allocate_device(); 187 st->indio_dev = iio_allocate_device(0);
188 if (st->indio_dev == NULL) { 188 if (st->indio_dev == NULL) {
189 ret = -ENOMEM; 189 ret = -ENOMEM;
190 goto error_disable_reg; 190 goto error_disable_reg;
diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c
index 4c700f07fb8..7ef9a6f4807 100644
--- a/drivers/staging/iio/adc/ad7606_core.c
+++ b/drivers/staging/iio/adc/ad7606_core.c
@@ -447,7 +447,7 @@ struct ad7606_state *ad7606_probe(struct device *dev, int irq,
447 447
448 atomic_set(&st->protect_ring, 0); 448 atomic_set(&st->protect_ring, 0);
449 449
450 st->indio_dev = iio_allocate_device(); 450 st->indio_dev = iio_allocate_device(0);
451 if (st->indio_dev == NULL) { 451 if (st->indio_dev == NULL) {
452 ret = -ENOMEM; 452 ret = -ENOMEM;
453 goto error_disable_reg; 453 goto error_disable_reg;
diff --git a/drivers/staging/iio/adc/ad7745.c b/drivers/staging/iio/adc/ad7745.c
index ab7ef8450ae..1373d23996b 100644
--- a/drivers/staging/iio/adc/ad7745.c
+++ b/drivers/staging/iio/adc/ad7745.c
@@ -635,7 +635,7 @@ static int __devinit ad774x_probe(struct i2c_client *client,
635 chip->client = client; 635 chip->client = client;
636 chip->name = id->name; 636 chip->name = id->name;
637 637
638 chip->indio_dev = iio_allocate_device(); 638 chip->indio_dev = iio_allocate_device(0);
639 if (chip->indio_dev == NULL) { 639 if (chip->indio_dev == NULL) {
640 ret = -ENOMEM; 640 ret = -ENOMEM;
641 goto error_free_chip; 641 goto error_free_chip;
diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c
index 0fd994fdee4..ab23c5cfdc2 100644
--- a/drivers/staging/iio/adc/ad7780.c
+++ b/drivers/staging/iio/adc/ad7780.c
@@ -221,7 +221,7 @@ static int __devinit ad7780_probe(struct spi_device *spi)
221 spi_set_drvdata(spi, st); 221 spi_set_drvdata(spi, st);
222 st->spi = spi; 222 st->spi = spi;
223 223
224 st->indio_dev = iio_allocate_device(); 224 st->indio_dev = iio_allocate_device(0);
225 if (st->indio_dev == NULL) { 225 if (st->indio_dev == NULL) {
226 ret = -ENOMEM; 226 ret = -ENOMEM;
227 goto error_disable_reg; 227 goto error_disable_reg;
diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c
index ad7415a6b8d..9e30d351cf4 100644
--- a/drivers/staging/iio/adc/ad7816.c
+++ b/drivers/staging/iio/adc/ad7816.c
@@ -418,7 +418,7 @@ static int __devinit ad7816_probe(struct spi_device *spi_dev)
418 } 418 }
419 gpio_direction_input(chip->busy_pin); 419 gpio_direction_input(chip->busy_pin);
420 420
421 chip->indio_dev = iio_allocate_device(); 421 chip->indio_dev = iio_allocate_device(0);
422 if (chip->indio_dev == NULL) { 422 if (chip->indio_dev == NULL) {
423 ret = -ENOMEM; 423 ret = -ENOMEM;
424 goto error_free_gpio; 424 goto error_free_gpio;
diff --git a/drivers/staging/iio/adc/ad7887_core.c b/drivers/staging/iio/adc/ad7887_core.c
index 5d85efab658..11c9fcfc3d0 100644
--- a/drivers/staging/iio/adc/ad7887_core.c
+++ b/drivers/staging/iio/adc/ad7887_core.c
@@ -153,7 +153,7 @@ static int __devinit ad7887_probe(struct spi_device *spi)
153 atomic_set(&st->protect_ring, 0); 153 atomic_set(&st->protect_ring, 0);
154 st->spi = spi; 154 st->spi = spi;
155 155
156 st->indio_dev = iio_allocate_device(); 156 st->indio_dev = iio_allocate_device(0);
157 if (st->indio_dev == NULL) { 157 if (st->indio_dev == NULL) {
158 ret = -ENOMEM; 158 ret = -ENOMEM;
159 goto error_disable_reg; 159 goto error_disable_reg;
diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c
index f04e642e727..09d109ffb39 100644
--- a/drivers/staging/iio/adc/ad799x_core.c
+++ b/drivers/staging/iio/adc/ad799x_core.c
@@ -801,7 +801,7 @@ static int __devinit ad799x_probe(struct i2c_client *client,
801 } 801 }
802 st->client = client; 802 st->client = client;
803 803
804 st->indio_dev = iio_allocate_device(); 804 st->indio_dev = iio_allocate_device(0);
805 if (st->indio_dev == NULL) { 805 if (st->indio_dev == NULL) {
806 ret = -ENOMEM; 806 ret = -ENOMEM;
807 goto error_disable_reg; 807 goto error_disable_reg;
diff --git a/drivers/staging/iio/adc/adt7310.c b/drivers/staging/iio/adc/adt7310.c
index 771a409ee94..7e66c42a712 100644
--- a/drivers/staging/iio/adc/adt7310.c
+++ b/drivers/staging/iio/adc/adt7310.c
@@ -794,7 +794,7 @@ static int __devinit adt7310_probe(struct spi_device *spi_dev)
794 chip->spi_dev = spi_dev; 794 chip->spi_dev = spi_dev;
795 chip->name = spi_dev->modalias; 795 chip->name = spi_dev->modalias;
796 796
797 chip->indio_dev = iio_allocate_device(); 797 chip->indio_dev = iio_allocate_device(0);
798 if (chip->indio_dev == NULL) { 798 if (chip->indio_dev == NULL) {
799 ret = -ENOMEM; 799 ret = -ENOMEM;
800 goto error_free_chip; 800 goto error_free_chip;
diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/adt7410.c
index c345f27ec7f..7cc3feb0a17 100644
--- a/drivers/staging/iio/adc/adt7410.c
+++ b/drivers/staging/iio/adc/adt7410.c
@@ -764,7 +764,7 @@ static int __devinit adt7410_probe(struct i2c_client *client,
764 chip->client = client; 764 chip->client = client;
765 chip->name = id->name; 765 chip->name = id->name;
766 766
767 chip->indio_dev = iio_allocate_device(); 767 chip->indio_dev = iio_allocate_device(0);
768 if (chip->indio_dev == NULL) { 768 if (chip->indio_dev == NULL) {
769 ret = -ENOMEM; 769 ret = -ENOMEM;
770 goto error_free_chip; 770 goto error_free_chip;
diff --git a/drivers/staging/iio/adc/adt75.c b/drivers/staging/iio/adc/adt75.c
index aff4d31eb89..f247c4c789f 100644
--- a/drivers/staging/iio/adc/adt75.c
+++ b/drivers/staging/iio/adc/adt75.c
@@ -614,7 +614,7 @@ static int __devinit adt75_probe(struct i2c_client *client,
614 chip->client = client; 614 chip->client = client;
615 chip->name = id->name; 615 chip->name = id->name;
616 616
617 chip->indio_dev = iio_allocate_device(); 617 chip->indio_dev = iio_allocate_device(0);
618 if (chip->indio_dev == NULL) { 618 if (chip->indio_dev == NULL) {
619 ret = -ENOMEM; 619 ret = -ENOMEM;
620 goto error_free_chip; 620 goto error_free_chip;
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
index de83c3b37a2..1703b2a74ac 100644
--- a/drivers/staging/iio/adc/max1363_core.c
+++ b/drivers/staging/iio/adc/max1363_core.c
@@ -1695,7 +1695,7 @@ static int __devinit max1363_probe(struct i2c_client *client,
1695 } 1695 }
1696 st->client = client; 1696 st->client = client;
1697 1697
1698 st->indio_dev = iio_allocate_device(); 1698 st->indio_dev = iio_allocate_device(0);
1699 if (st->indio_dev == NULL) { 1699 if (st->indio_dev == NULL) {
1700 ret = -ENOMEM; 1700 ret = -ENOMEM;
1701 goto error_disable_reg; 1701 goto error_disable_reg;
diff --git a/drivers/staging/iio/addac/adt7316.c b/drivers/staging/iio/addac/adt7316.c
index 9b25f120544..d01cb4c2adb 100644
--- a/drivers/staging/iio/addac/adt7316.c
+++ b/drivers/staging/iio/addac/adt7316.c
@@ -2299,7 +2299,7 @@ int __devinit adt7316_probe(struct device *dev, struct adt7316_bus *bus,
2299 if ((chip->id & ID_FAMILY_MASK) == ID_ADT75XX) 2299 if ((chip->id & ID_FAMILY_MASK) == ID_ADT75XX)
2300 chip->int_mask |= ADT7516_AIN_INT_MASK; 2300 chip->int_mask |= ADT7516_AIN_INT_MASK;
2301 2301
2302 chip->indio_dev = iio_allocate_device(); 2302 chip->indio_dev = iio_allocate_device(0);
2303 if (chip->indio_dev == NULL) { 2303 if (chip->indio_dev == NULL) {
2304 ret = -ENOMEM; 2304 ret = -ENOMEM;
2305 goto error_free_chip; 2305 goto error_free_chip;
diff --git a/drivers/staging/iio/dac/ad5446.c b/drivers/staging/iio/dac/ad5446.c
index 102bcc4e08e..fd4fa5497ce 100644
--- a/drivers/staging/iio/dac/ad5446.c
+++ b/drivers/staging/iio/dac/ad5446.c
@@ -373,7 +373,7 @@ static int __devinit ad5446_probe(struct spi_device *spi)
373 373
374 st->spi = spi; 374 st->spi = spi;
375 375
376 st->indio_dev = iio_allocate_device(); 376 st->indio_dev = iio_allocate_device(0);
377 if (st->indio_dev == NULL) { 377 if (st->indio_dev == NULL) {
378 ret = -ENOMEM; 378 ret = -ENOMEM;
379 goto error_disable_reg; 379 goto error_disable_reg;
diff --git a/drivers/staging/iio/dac/ad5504.c b/drivers/staging/iio/dac/ad5504.c
index 153c36e7f70..28ace3011db 100644
--- a/drivers/staging/iio/dac/ad5504.c
+++ b/drivers/staging/iio/dac/ad5504.c
@@ -321,7 +321,7 @@ static int __devinit ad5504_probe(struct spi_device *spi)
321 dev_warn(&spi->dev, "reference voltage unspecified\n"); 321 dev_warn(&spi->dev, "reference voltage unspecified\n");
322 322
323 st->spi = spi; 323 st->spi = spi;
324 st->indio_dev = iio_allocate_device(); 324 st->indio_dev = iio_allocate_device(0);
325 if (st->indio_dev == NULL) { 325 if (st->indio_dev == NULL) {
326 ret = -ENOMEM; 326 ret = -ENOMEM;
327 goto error_disable_reg; 327 goto error_disable_reg;
diff --git a/drivers/staging/iio/dac/ad5624r_spi.c b/drivers/staging/iio/dac/ad5624r_spi.c
index a945b18ff84..cfb5828a377 100644
--- a/drivers/staging/iio/dac/ad5624r_spi.c
+++ b/drivers/staging/iio/dac/ad5624r_spi.c
@@ -260,7 +260,7 @@ static int __devinit ad5624r_probe(struct spi_device *spi)
260 st->vref_mv = st->chip_info->int_vref_mv; 260 st->vref_mv = st->chip_info->int_vref_mv;
261 261
262 st->us = spi; 262 st->us = spi;
263 st->indio_dev = iio_allocate_device(); 263 st->indio_dev = iio_allocate_device(0);
264 if (st->indio_dev == NULL) { 264 if (st->indio_dev == NULL) {
265 ret = -ENOMEM; 265 ret = -ENOMEM;
266 goto error_disable_reg; 266 goto error_disable_reg;
diff --git a/drivers/staging/iio/dac/ad5791.c b/drivers/staging/iio/dac/ad5791.c
index 545f1a6a270..c4a258dfa77 100644
--- a/drivers/staging/iio/dac/ad5791.c
+++ b/drivers/staging/iio/dac/ad5791.c
@@ -326,7 +326,7 @@ static int __devinit ad5791_probe(struct spi_device *spi)
326 st->pwr_down = true; 326 st->pwr_down = true;
327 327
328 st->spi = spi; 328 st->spi = spi;
329 st->indio_dev = iio_allocate_device(); 329 st->indio_dev = iio_allocate_device(0);
330 if (st->indio_dev == NULL) { 330 if (st->indio_dev == NULL) {
331 ret = -ENOMEM; 331 ret = -ENOMEM;
332 goto error_disable_reg_neg; 332 goto error_disable_reg_neg;
diff --git a/drivers/staging/iio/dac/max517.c b/drivers/staging/iio/dac/max517.c
index 7071f713604..3eb48b65c15 100644
--- a/drivers/staging/iio/dac/max517.c
+++ b/drivers/staging/iio/dac/max517.c
@@ -206,7 +206,7 @@ static int max517_probe(struct i2c_client *client,
206 206
207 data->client = client; 207 data->client = client;
208 208
209 data->indio_dev = iio_allocate_device(); 209 data->indio_dev = iio_allocate_device(0);
210 if (data->indio_dev == NULL) { 210 if (data->indio_dev == NULL) {
211 err = -ENOMEM; 211 err = -ENOMEM;
212 goto exit_free_data; 212 goto exit_free_data;
diff --git a/drivers/staging/iio/dds/ad5930.c b/drivers/staging/iio/dds/ad5930.c
index f80039c5d53..5d98f93ca84 100644
--- a/drivers/staging/iio/dds/ad5930.c
+++ b/drivers/staging/iio/dds/ad5930.c
@@ -102,7 +102,7 @@ static int __devinit ad5930_probe(struct spi_device *spi)
102 mutex_init(&st->lock); 102 mutex_init(&st->lock);
103 st->sdev = spi; 103 st->sdev = spi;
104 104
105 st->idev = iio_allocate_device(); 105 st->idev = iio_allocate_device(0);
106 if (st->idev == NULL) { 106 if (st->idev == NULL) {
107 ret = -ENOMEM; 107 ret = -ENOMEM;
108 goto error_free_st; 108 goto error_free_st;
diff --git a/drivers/staging/iio/dds/ad9832.c b/drivers/staging/iio/dds/ad9832.c
index 3e8491f60cf..9c6114f4976 100644
--- a/drivers/staging/iio/dds/ad9832.c
+++ b/drivers/staging/iio/dds/ad9832.c
@@ -236,7 +236,7 @@ static int __devinit ad9832_probe(struct spi_device *spi)
236 spi_set_drvdata(spi, st); 236 spi_set_drvdata(spi, st);
237 st->spi = spi; 237 st->spi = spi;
238 238
239 st->indio_dev = iio_allocate_device(); 239 st->indio_dev = iio_allocate_device(0);
240 if (st->indio_dev == NULL) { 240 if (st->indio_dev == NULL) {
241 ret = -ENOMEM; 241 ret = -ENOMEM;
242 goto error_disable_reg; 242 goto error_disable_reg;
diff --git a/drivers/staging/iio/dds/ad9834.c b/drivers/staging/iio/dds/ad9834.c
index eb1a681874f..da5e302cf0f 100644
--- a/drivers/staging/iio/dds/ad9834.c
+++ b/drivers/staging/iio/dds/ad9834.c
@@ -349,7 +349,7 @@ static int __devinit ad9834_probe(struct spi_device *spi)
349 st->spi = spi; 349 st->spi = spi;
350 st->devid = spi_get_device_id(spi)->driver_data; 350 st->devid = spi_get_device_id(spi)->driver_data;
351 351
352 st->indio_dev = iio_allocate_device(); 352 st->indio_dev = iio_allocate_device(0);
353 if (st->indio_dev == NULL) { 353 if (st->indio_dev == NULL) {
354 ret = -ENOMEM; 354 ret = -ENOMEM;
355 goto error_disable_reg; 355 goto error_disable_reg;
diff --git a/drivers/staging/iio/dds/ad9850.c b/drivers/staging/iio/dds/ad9850.c
index b259bfeaf5a..34bc0e6950d 100644
--- a/drivers/staging/iio/dds/ad9850.c
+++ b/drivers/staging/iio/dds/ad9850.c
@@ -88,7 +88,7 @@ static int __devinit ad9850_probe(struct spi_device *spi)
88 mutex_init(&st->lock); 88 mutex_init(&st->lock);
89 st->sdev = spi; 89 st->sdev = spi;
90 90
91 st->idev = iio_allocate_device(); 91 st->idev = iio_allocate_device(0);
92 if (st->idev == NULL) { 92 if (st->idev == NULL) {
93 ret = -ENOMEM; 93 ret = -ENOMEM;
94 goto error_free_st; 94 goto error_free_st;
diff --git a/drivers/staging/iio/dds/ad9852.c b/drivers/staging/iio/dds/ad9852.c
index 594fb6a9433..899a72acd8f 100644
--- a/drivers/staging/iio/dds/ad9852.c
+++ b/drivers/staging/iio/dds/ad9852.c
@@ -237,7 +237,7 @@ static int __devinit ad9852_probe(struct spi_device *spi)
237 mutex_init(&st->lock); 237 mutex_init(&st->lock);
238 st->sdev = spi; 238 st->sdev = spi;
239 239
240 st->idev = iio_allocate_device(); 240 st->idev = iio_allocate_device(0);
241 if (st->idev == NULL) { 241 if (st->idev == NULL) {
242 ret = -ENOMEM; 242 ret = -ENOMEM;
243 goto error_free_st; 243 goto error_free_st;
diff --git a/drivers/staging/iio/dds/ad9910.c b/drivers/staging/iio/dds/ad9910.c
index e8fb75cb66e..fddb6e7c7ed 100644
--- a/drivers/staging/iio/dds/ad9910.c
+++ b/drivers/staging/iio/dds/ad9910.c
@@ -372,7 +372,7 @@ static int __devinit ad9910_probe(struct spi_device *spi)
372 mutex_init(&st->lock); 372 mutex_init(&st->lock);
373 st->sdev = spi; 373 st->sdev = spi;
374 374
375 st->idev = iio_allocate_device(); 375 st->idev = iio_allocate_device(0);
376 if (st->idev == NULL) { 376 if (st->idev == NULL) {
377 ret = -ENOMEM; 377 ret = -ENOMEM;
378 goto error_free_st; 378 goto error_free_st;
diff --git a/drivers/staging/iio/dds/ad9951.c b/drivers/staging/iio/dds/ad9951.c
index 57eddf6d471..a9e56c6e0fa 100644
--- a/drivers/staging/iio/dds/ad9951.c
+++ b/drivers/staging/iio/dds/ad9951.c
@@ -181,7 +181,7 @@ static int __devinit ad9951_probe(struct spi_device *spi)
181 mutex_init(&st->lock); 181 mutex_init(&st->lock);
182 st->sdev = spi; 182 st->sdev = spi;
183 183
184 st->idev = iio_allocate_device(); 184 st->idev = iio_allocate_device(0);
185 if (st->idev == NULL) { 185 if (st->idev == NULL) {
186 ret = -ENOMEM; 186 ret = -ENOMEM;
187 goto error_free_st; 187 goto error_free_st;
diff --git a/drivers/staging/iio/gyro/adis16060_core.c b/drivers/staging/iio/gyro/adis16060_core.c
index ae53e71d1c2..e1f8a708c63 100644
--- a/drivers/staging/iio/gyro/adis16060_core.c
+++ b/drivers/staging/iio/gyro/adis16060_core.c
@@ -147,7 +147,7 @@ static int __devinit adis16060_r_probe(struct spi_device *spi)
147 st->us_r = spi; 147 st->us_r = spi;
148 mutex_init(&st->buf_lock); 148 mutex_init(&st->buf_lock);
149 /* setup the industrialio driver allocated elements */ 149 /* setup the industrialio driver allocated elements */
150 st->indio_dev = iio_allocate_device(); 150 st->indio_dev = iio_allocate_device(0);
151 if (st->indio_dev == NULL) { 151 if (st->indio_dev == NULL) {
152 ret = -ENOMEM; 152 ret = -ENOMEM;
153 goto error_free_st; 153 goto error_free_st;
diff --git a/drivers/staging/iio/gyro/adis16080_core.c b/drivers/staging/iio/gyro/adis16080_core.c
index ef9e304a226..26af63fd7e3 100644
--- a/drivers/staging/iio/gyro/adis16080_core.c
+++ b/drivers/staging/iio/gyro/adis16080_core.c
@@ -140,7 +140,7 @@ static int __devinit adis16080_probe(struct spi_device *spi)
140 st->us = spi; 140 st->us = spi;
141 mutex_init(&st->buf_lock); 141 mutex_init(&st->buf_lock);
142 /* setup the industrialio driver allocated elements */ 142 /* setup the industrialio driver allocated elements */
143 st->indio_dev = iio_allocate_device(); 143 st->indio_dev = iio_allocate_device(0);
144 if (st->indio_dev == NULL) { 144 if (st->indio_dev == NULL) {
145 ret = -ENOMEM; 145 ret = -ENOMEM;
146 goto error_free_st; 146 goto error_free_st;
diff --git a/drivers/staging/iio/gyro/adis16130_core.c b/drivers/staging/iio/gyro/adis16130_core.c
index 70e2831f8fb..02fbe074824 100644
--- a/drivers/staging/iio/gyro/adis16130_core.c
+++ b/drivers/staging/iio/gyro/adis16130_core.c
@@ -191,7 +191,7 @@ static int __devinit adis16130_probe(struct spi_device *spi)
191 st->us = spi; 191 st->us = spi;
192 mutex_init(&st->buf_lock); 192 mutex_init(&st->buf_lock);
193 /* setup the industrialio driver allocated elements */ 193 /* setup the industrialio driver allocated elements */
194 st->indio_dev = iio_allocate_device(); 194 st->indio_dev = iio_allocate_device(0);
195 if (st->indio_dev == NULL) { 195 if (st->indio_dev == NULL) {
196 ret = -ENOMEM; 196 ret = -ENOMEM;
197 goto error_free_st; 197 goto error_free_st;
diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
index 69a29ec9310..26e3af47344 100644
--- a/drivers/staging/iio/gyro/adis16260_core.c
+++ b/drivers/staging/iio/gyro/adis16260_core.c
@@ -596,7 +596,7 @@ static int __devinit adis16260_probe(struct spi_device *spi)
596 st->us = spi; 596 st->us = spi;
597 mutex_init(&st->buf_lock); 597 mutex_init(&st->buf_lock);
598 /* setup the industrialio driver allocated elements */ 598 /* setup the industrialio driver allocated elements */
599 st->indio_dev = iio_allocate_device(); 599 st->indio_dev = iio_allocate_device(0);
600 if (st->indio_dev == NULL) { 600 if (st->indio_dev == NULL) {
601 ret = -ENOMEM; 601 ret = -ENOMEM;
602 goto error_free_tx; 602 goto error_free_tx;
diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index d70bf684b7a..dcd88ff81a9 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -369,7 +369,7 @@ static int __devinit adxrs450_probe(struct spi_device *spi)
369 st->us = spi; 369 st->us = spi;
370 mutex_init(&st->buf_lock); 370 mutex_init(&st->buf_lock);
371 /* setup the industrialio driver allocated elements */ 371 /* setup the industrialio driver allocated elements */
372 st->indio_dev = iio_allocate_device(); 372 st->indio_dev = iio_allocate_device(0);
373 if (st->indio_dev == NULL) { 373 if (st->indio_dev == NULL) {
374 ret = -ENOMEM; 374 ret = -ENOMEM;
375 goto error_free_tx; 375 goto error_free_tx;
diff --git a/drivers/staging/iio/iio.h b/drivers/staging/iio/iio.h
index 7127f26f8d2..80ef2cfe4bb 100644
--- a/drivers/staging/iio/iio.h
+++ b/drivers/staging/iio/iio.h
@@ -264,10 +264,25 @@ static inline void *iio_dev_get_devdata(struct iio_dev *d)
264 return d->dev_data; 264 return d->dev_data;
265} 265}
266 266
267
268/* Can we make this smaller? */
269#define IIO_ALIGN L1_CACHE_BYTES
267/** 270/**
268 * iio_allocate_device() - allocate an iio_dev from a driver 271 * iio_allocate_device() - allocate an iio_dev from a driver
272 * @sizeof_priv: Space to allocate for private structure.
269 **/ 273 **/
270struct iio_dev *iio_allocate_device(void); 274struct iio_dev *iio_allocate_device(int sizeof_priv);
275
276static inline void *iio_priv(const struct iio_dev *dev)
277{
278 return (char *)dev + ALIGN(sizeof(struct iio_dev), IIO_ALIGN);
279}
280
281static inline struct iio_dev *iio_priv_to_dev(void *priv)
282{
283 return (struct iio_dev *)((char *)priv -
284 ALIGN(sizeof(struct iio_dev), IIO_ALIGN));
285}
271 286
272/** 287/**
273 * iio_free_device() - free an iio_dev from a driver 288 * iio_free_device() - free an iio_dev from a driver
diff --git a/drivers/staging/iio/imu/adis16300_core.c b/drivers/staging/iio/imu/adis16300_core.c
index 7ad13f4d3d7..0734d4a7069 100644
--- a/drivers/staging/iio/imu/adis16300_core.c
+++ b/drivers/staging/iio/imu/adis16300_core.c
@@ -628,7 +628,7 @@ static int __devinit adis16300_probe(struct spi_device *spi)
628 st->us = spi; 628 st->us = spi;
629 mutex_init(&st->buf_lock); 629 mutex_init(&st->buf_lock);
630 /* setup the industrialio driver allocated elements */ 630 /* setup the industrialio driver allocated elements */
631 st->indio_dev = iio_allocate_device(); 631 st->indio_dev = iio_allocate_device(0);
632 if (st->indio_dev == NULL) { 632 if (st->indio_dev == NULL) {
633 ret = -ENOMEM; 633 ret = -ENOMEM;
634 goto error_free_tx; 634 goto error_free_tx;
diff --git a/drivers/staging/iio/imu/adis16350_core.c b/drivers/staging/iio/imu/adis16350_core.c
index cf7176bc766..208192470ec 100644
--- a/drivers/staging/iio/imu/adis16350_core.c
+++ b/drivers/staging/iio/imu/adis16350_core.c
@@ -617,7 +617,7 @@ static int __devinit adis16350_probe(struct spi_device *spi)
617 st->us = spi; 617 st->us = spi;
618 mutex_init(&st->buf_lock); 618 mutex_init(&st->buf_lock);
619 /* setup the industrialio driver allocated elements */ 619 /* setup the industrialio driver allocated elements */
620 st->indio_dev = iio_allocate_device(); 620 st->indio_dev = iio_allocate_device(0);
621 if (st->indio_dev == NULL) { 621 if (st->indio_dev == NULL) {
622 ret = -ENOMEM; 622 ret = -ENOMEM;
623 goto error_free_tx; 623 goto error_free_tx;
diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c
index 540bde69cc3..a0b53ee887f 100644
--- a/drivers/staging/iio/imu/adis16400_core.c
+++ b/drivers/staging/iio/imu/adis16400_core.c
@@ -622,7 +622,7 @@ static int __devinit adis16400_probe(struct spi_device *spi)
622 st->us = spi; 622 st->us = spi;
623 mutex_init(&st->buf_lock); 623 mutex_init(&st->buf_lock);
624 /* setup the industrialio driver allocated elements */ 624 /* setup the industrialio driver allocated elements */
625 st->indio_dev = iio_allocate_device(); 625 st->indio_dev = iio_allocate_device(0);
626 if (st->indio_dev == NULL) { 626 if (st->indio_dev == NULL) {
627 ret = -ENOMEM; 627 ret = -ENOMEM;
628 goto error_free_tx; 628 goto error_free_tx;
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index 1795ee1e820..3a824146455 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -720,9 +720,20 @@ static struct device_type iio_dev_type = {
720 .release = iio_dev_release, 720 .release = iio_dev_release,
721}; 721};
722 722
723struct iio_dev *iio_allocate_device(void) 723struct iio_dev *iio_allocate_device(int sizeof_priv)
724{ 724{
725 struct iio_dev *dev = kzalloc(sizeof *dev, GFP_KERNEL); 725 struct iio_dev *dev;
726 size_t alloc_size;
727
728 alloc_size = sizeof(struct iio_dev);
729 if (sizeof_priv) {
730 alloc_size = ALIGN(alloc_size, IIO_ALIGN);
731 alloc_size += sizeof_priv;
732 }
733 /* ensure 32-byte alignment of whole construct ? */
734 alloc_size += IIO_ALIGN - 1;
735
736 dev = kzalloc(alloc_size, GFP_KERNEL);
726 737
727 if (dev) { 738 if (dev) {
728 dev->dev.type = &iio_dev_type; 739 dev->dev.type = &iio_dev_type;
diff --git a/drivers/staging/iio/light/isl29018.c b/drivers/staging/iio/light/isl29018.c
index f919cc1d35e..dfbc423a75e 100644
--- a/drivers/staging/iio/light/isl29018.c
+++ b/drivers/staging/iio/light/isl29018.c
@@ -492,7 +492,7 @@ static int __devinit isl29018_probe(struct i2c_client *client,
492 if (err) 492 if (err)
493 goto exit_free; 493 goto exit_free;
494 494
495 chip->indio_dev = iio_allocate_device(); 495 chip->indio_dev = iio_allocate_device(0);
496 if (!chip->indio_dev) { 496 if (!chip->indio_dev) {
497 dev_err(&client->dev, "iio allocation fails\n"); 497 dev_err(&client->dev, "iio allocation fails\n");
498 goto exit_free; 498 goto exit_free;
diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c
index dadae7527d5..35d94c6d8d8 100644
--- a/drivers/staging/iio/light/tsl2563.c
+++ b/drivers/staging/iio/light/tsl2563.c
@@ -857,7 +857,7 @@ static int __devinit tsl2563_probe(struct i2c_client *client,
857 857
858 dev_info(&client->dev, "model %d, rev. %d\n", id >> 4, id & 0x0f); 858 dev_info(&client->dev, "model %d, rev. %d\n", id >> 4, id & 0x0f);
859 859
860 chip->indio_dev = iio_allocate_device(); 860 chip->indio_dev = iio_allocate_device(0);
861 if (!chip->indio_dev) 861 if (!chip->indio_dev)
862 goto fail1; 862 goto fail1;
863 chip->indio_dev->attrs = &tsl2563_group; 863 chip->indio_dev->attrs = &tsl2563_group;
diff --git a/drivers/staging/iio/light/tsl2583.c b/drivers/staging/iio/light/tsl2583.c
index 1740843ee12..b87ccd5a2f5 100644
--- a/drivers/staging/iio/light/tsl2583.c
+++ b/drivers/staging/iio/light/tsl2583.c
@@ -847,7 +847,7 @@ static int __devinit taos_probe(struct i2c_client *clientp,
847 goto fail1; 847 goto fail1;
848 } 848 }
849 849
850 chip->iio_dev = iio_allocate_device(); 850 chip->iio_dev = iio_allocate_device(0);
851 if (!chip->iio_dev) { 851 if (!chip->iio_dev) {
852 ret = -ENOMEM; 852 ret = -ENOMEM;
853 dev_err(&clientp->dev, "iio allocation failed\n"); 853 dev_err(&clientp->dev, "iio allocation failed\n");
diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c
index d71904a8370..2226b88882d 100644
--- a/drivers/staging/iio/magnetometer/ak8975.c
+++ b/drivers/staging/iio/magnetometer/ak8975.c
@@ -526,7 +526,7 @@ static int ak8975_probe(struct i2c_client *client,
526 } 526 }
527 527
528 /* Register with IIO */ 528 /* Register with IIO */
529 data->indio_dev = iio_allocate_device(); 529 data->indio_dev = iio_allocate_device(0);
530 if (data->indio_dev == NULL) { 530 if (data->indio_dev == NULL) {
531 err = -ENOMEM; 531 err = -ENOMEM;
532 goto exit_gpio; 532 goto exit_gpio;
diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
index 51689177e00..d0676e99f15 100644
--- a/drivers/staging/iio/magnetometer/hmc5843.c
+++ b/drivers/staging/iio/magnetometer/hmc5843.c
@@ -552,7 +552,7 @@ static int hmc5843_probe(struct i2c_client *client,
552 /* Initialize the HMC5843 chip */ 552 /* Initialize the HMC5843 chip */
553 hmc5843_init_client(client); 553 hmc5843_init_client(client);
554 554
555 data->indio_dev = iio_allocate_device(); 555 data->indio_dev = iio_allocate_device(0);
556 if (!data->indio_dev) { 556 if (!data->indio_dev) {
557 err = -ENOMEM; 557 err = -ENOMEM;
558 goto exit_free1; 558 goto exit_free1;
diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c
index 8b86d82c3b3..d62d9e2f0d2 100644
--- a/drivers/staging/iio/meter/ade7753.c
+++ b/drivers/staging/iio/meter/ade7753.c
@@ -532,7 +532,7 @@ static int __devinit ade7753_probe(struct spi_device *spi)
532 st->us = spi; 532 st->us = spi;
533 mutex_init(&st->buf_lock); 533 mutex_init(&st->buf_lock);
534 /* setup the industrialio driver allocated elements */ 534 /* setup the industrialio driver allocated elements */
535 st->indio_dev = iio_allocate_device(); 535 st->indio_dev = iio_allocate_device(0);
536 if (st->indio_dev == NULL) { 536 if (st->indio_dev == NULL) {
537 ret = -ENOMEM; 537 ret = -ENOMEM;
538 goto error_free_tx; 538 goto error_free_tx;
diff --git a/drivers/staging/iio/meter/ade7754.c b/drivers/staging/iio/meter/ade7754.c
index 4272818e7dc..2d0b8cc0599 100644
--- a/drivers/staging/iio/meter/ade7754.c
+++ b/drivers/staging/iio/meter/ade7754.c
@@ -557,7 +557,7 @@ static int __devinit ade7754_probe(struct spi_device *spi)
557 st->us = spi; 557 st->us = spi;
558 mutex_init(&st->buf_lock); 558 mutex_init(&st->buf_lock);
559 /* setup the industrialio driver allocated elements */ 559 /* setup the industrialio driver allocated elements */
560 st->indio_dev = iio_allocate_device(); 560 st->indio_dev = iio_allocate_device(0);
561 if (st->indio_dev == NULL) { 561 if (st->indio_dev == NULL) {
562 ret = -ENOMEM; 562 ret = -ENOMEM;
563 goto error_free_tx; 563 goto error_free_tx;
diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c
index b7634cb7aa4..8d37ef7eb95 100644
--- a/drivers/staging/iio/meter/ade7758_core.c
+++ b/drivers/staging/iio/meter/ade7758_core.c
@@ -737,7 +737,7 @@ static int __devinit ade7758_probe(struct spi_device *spi)
737 st->us = spi; 737 st->us = spi;
738 mutex_init(&st->buf_lock); 738 mutex_init(&st->buf_lock);
739 /* setup the industrialio driver allocated elements */ 739 /* setup the industrialio driver allocated elements */
740 st->indio_dev = iio_allocate_device(); 740 st->indio_dev = iio_allocate_device(0);
741 if (st->indio_dev == NULL) { 741 if (st->indio_dev == NULL) {
742 ret = -ENOMEM; 742 ret = -ENOMEM;
743 goto error_free_tx; 743 goto error_free_tx;
diff --git a/drivers/staging/iio/meter/ade7759.c b/drivers/staging/iio/meter/ade7759.c
index a9d3203b2e1..42b3b27520c 100644
--- a/drivers/staging/iio/meter/ade7759.c
+++ b/drivers/staging/iio/meter/ade7759.c
@@ -478,7 +478,7 @@ static int __devinit ade7759_probe(struct spi_device *spi)
478 st->us = spi; 478 st->us = spi;
479 mutex_init(&st->buf_lock); 479 mutex_init(&st->buf_lock);
480 /* setup the industrialio driver allocated elements */ 480 /* setup the industrialio driver allocated elements */
481 st->indio_dev = iio_allocate_device(); 481 st->indio_dev = iio_allocate_device(0);
482 if (st->indio_dev == NULL) { 482 if (st->indio_dev == NULL) {
483 ret = -ENOMEM; 483 ret = -ENOMEM;
484 goto error_free_tx; 484 goto error_free_tx;
diff --git a/drivers/staging/iio/meter/ade7854.c b/drivers/staging/iio/meter/ade7854.c
index 866e585451f..d3f1df71c7f 100644
--- a/drivers/staging/iio/meter/ade7854.c
+++ b/drivers/staging/iio/meter/ade7854.c
@@ -568,7 +568,7 @@ int ade7854_probe(struct ade7854_state *st, struct device *dev)
568 } 568 }
569 mutex_init(&st->buf_lock); 569 mutex_init(&st->buf_lock);
570 /* setup the industrialio driver allocated elements */ 570 /* setup the industrialio driver allocated elements */
571 st->indio_dev = iio_allocate_device(); 571 st->indio_dev = iio_allocate_device(0);
572 if (st->indio_dev == NULL) { 572 if (st->indio_dev == NULL) {
573 ret = -ENOMEM; 573 ret = -ENOMEM;
574 goto error_free_tx; 574 goto error_free_tx;
diff --git a/drivers/staging/iio/resolver/ad2s120x.c b/drivers/staging/iio/resolver/ad2s120x.c
index 8f497a23976..e0237ff8105 100644
--- a/drivers/staging/iio/resolver/ad2s120x.c
+++ b/drivers/staging/iio/resolver/ad2s120x.c
@@ -240,7 +240,7 @@ static int __devinit ad2s120x_probe(struct spi_device *spi)
240 st->sample = pins[0]; 240 st->sample = pins[0];
241 st->rdvel = pins[1]; 241 st->rdvel = pins[1];
242 242
243 st->idev = iio_allocate_device(); 243 st->idev = iio_allocate_device(0);
244 if (st->idev == NULL) { 244 if (st->idev == NULL) {
245 ret = -ENOMEM; 245 ret = -ENOMEM;
246 goto error_free_st; 246 goto error_free_st;
diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c
index c12f64cc40d..dc7cae80cf3 100644
--- a/drivers/staging/iio/resolver/ad2s1210.c
+++ b/drivers/staging/iio/resolver/ad2s1210.c
@@ -800,7 +800,7 @@ static int __devinit ad2s1210_probe(struct spi_device *spi)
800 st->res0 = pins[3]; 800 st->res0 = pins[3];
801 st->res1 = pins[4]; 801 st->res1 = pins[4];
802 802
803 st->idev = iio_allocate_device(); 803 st->idev = iio_allocate_device(0);
804 if (st->idev == NULL) { 804 if (st->idev == NULL) {
805 ret = -ENOMEM; 805 ret = -ENOMEM;
806 goto error_free_st; 806 goto error_free_st;
diff --git a/drivers/staging/iio/resolver/ad2s90.c b/drivers/staging/iio/resolver/ad2s90.c
index 4143535242d..e300adeefa8 100644
--- a/drivers/staging/iio/resolver/ad2s90.c
+++ b/drivers/staging/iio/resolver/ad2s90.c
@@ -90,7 +90,7 @@ static int __devinit ad2s90_probe(struct spi_device *spi)
90 mutex_init(&st->lock); 90 mutex_init(&st->lock);
91 st->sdev = spi; 91 st->sdev = spi;
92 92
93 st->idev = iio_allocate_device(); 93 st->idev = iio_allocate_device(0);
94 if (st->idev == NULL) { 94 if (st->idev == NULL) {
95 ret = -ENOMEM; 95 ret = -ENOMEM;
96 goto error_free_st; 96 goto error_free_st;