diff options
-rw-r--r-- | drivers/staging/iio/Documentation/iio_utils.h | 24 | ||||
-rw-r--r-- | drivers/staging/iio/accel/adis16204_core.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/accel/adis16240_core.c | 9 | ||||
-rw-r--r-- | drivers/staging/iio/adc/ad7793.c | 4 |
4 files changed, 28 insertions, 11 deletions
diff --git a/drivers/staging/iio/Documentation/iio_utils.h b/drivers/staging/iio/Documentation/iio_utils.h index c0448b3e20de..5244fa0dfd2f 100644 --- a/drivers/staging/iio/Documentation/iio_utils.h +++ b/drivers/staging/iio/Documentation/iio_utils.h | |||
@@ -158,7 +158,8 @@ inline int iioutils_get_type(unsigned *is_signed, | |||
158 | &padint, shift); | 158 | &padint, shift); |
159 | if (ret < 0) { | 159 | if (ret < 0) { |
160 | printf("failed to pass scan type description\n"); | 160 | printf("failed to pass scan type description\n"); |
161 | return ret; | 161 | ret = -errno; |
162 | goto error_close_sysfsfp; | ||
162 | } | 163 | } |
163 | *be = (endianchar == 'b'); | 164 | *be = (endianchar == 'b'); |
164 | *bytes = padint / 8; | 165 | *bytes = padint / 8; |
@@ -174,7 +175,11 @@ inline int iioutils_get_type(unsigned *is_signed, | |||
174 | free(filename); | 175 | free(filename); |
175 | 176 | ||
176 | filename = 0; | 177 | filename = 0; |
178 | sysfsfp = 0; | ||
177 | } | 179 | } |
180 | error_close_sysfsfp: | ||
181 | if (sysfsfp) | ||
182 | fclose(sysfsfp); | ||
178 | error_free_filename: | 183 | error_free_filename: |
179 | if (filename) | 184 | if (filename) |
180 | free(filename); | 185 | free(filename); |
@@ -468,23 +473,30 @@ inline int find_type_by_name(const char *name, const char *type) | |||
468 | + strlen(type) | 473 | + strlen(type) |
469 | + numstrlen | 474 | + numstrlen |
470 | + 6); | 475 | + 6); |
471 | if (filename == NULL) | 476 | if (filename == NULL) { |
477 | closedir(dp); | ||
472 | return -ENOMEM; | 478 | return -ENOMEM; |
479 | } | ||
473 | sprintf(filename, "%s%s%d/name", | 480 | sprintf(filename, "%s%s%d/name", |
474 | iio_dir, | 481 | iio_dir, |
475 | type, | 482 | type, |
476 | number); | 483 | number); |
477 | nameFile = fopen(filename, "r"); | 484 | nameFile = fopen(filename, "r"); |
478 | if (!nameFile) | 485 | if (!nameFile) { |
486 | free(filename); | ||
479 | continue; | 487 | continue; |
488 | } | ||
480 | free(filename); | 489 | free(filename); |
481 | fscanf(nameFile, "%s", thisname); | 490 | fscanf(nameFile, "%s", thisname); |
482 | if (strcmp(name, thisname) == 0) | ||
483 | return number; | ||
484 | fclose(nameFile); | 491 | fclose(nameFile); |
492 | if (strcmp(name, thisname) == 0) { | ||
493 | closedir(dp); | ||
494 | return number; | ||
495 | } | ||
485 | } | 496 | } |
486 | } | 497 | } |
487 | } | 498 | } |
499 | closedir(dp); | ||
488 | return -ENODEV; | 500 | return -ENODEV; |
489 | } | 501 | } |
490 | 502 | ||
@@ -513,6 +525,7 @@ inline int _write_sysfs_int(char *filename, char *basedir, int val, int verify) | |||
513 | goto error_free; | 525 | goto error_free; |
514 | } | 526 | } |
515 | fscanf(sysfsfp, "%d", &test); | 527 | fscanf(sysfsfp, "%d", &test); |
528 | fclose(sysfsfp); | ||
516 | if (test != val) { | 529 | if (test != val) { |
517 | printf("Possible failure in int write %d to %s%s\n", | 530 | printf("Possible failure in int write %d to %s%s\n", |
518 | val, | 531 | val, |
@@ -562,6 +575,7 @@ int _write_sysfs_string(char *filename, char *basedir, char *val, int verify) | |||
562 | goto error_free; | 575 | goto error_free; |
563 | } | 576 | } |
564 | fscanf(sysfsfp, "%s", temp); | 577 | fscanf(sysfsfp, "%s", temp); |
578 | fclose(sysfsfp); | ||
565 | if (strcmp(temp, val) != 0) { | 579 | if (strcmp(temp, val) != 0) { |
566 | printf("Possible failure in string write of %s " | 580 | printf("Possible failure in string write of %s " |
567 | "Should be %s " | 581 | "Should be %s " |
diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c index ac9d95e4ea47..457982bf7eac 100644 --- a/drivers/staging/iio/accel/adis16204_core.c +++ b/drivers/staging/iio/accel/adis16204_core.c | |||
@@ -381,7 +381,7 @@ static int adis16204_read_raw(struct iio_dev *indio_dev, | |||
381 | return IIO_VAL_INT_PLUS_MICRO; | 381 | return IIO_VAL_INT_PLUS_MICRO; |
382 | case IIO_ACCEL: | 382 | case IIO_ACCEL: |
383 | *val = 0; | 383 | *val = 0; |
384 | if (chan->channel == 'x') | 384 | if (chan->channel2 == IIO_MOD_X) |
385 | *val2 = 17125; | 385 | *val2 = 17125; |
386 | else | 386 | else |
387 | *val2 = 8407; | 387 | *val2 = 8407; |
diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c index 2f59f83d002d..1a51f03d3d76 100644 --- a/drivers/staging/iio/accel/adis16240_core.c +++ b/drivers/staging/iio/accel/adis16240_core.c | |||
@@ -500,7 +500,8 @@ static struct iio_chan_spec adis16240_channels[] = { | |||
500 | .channel2 = IIO_MOD_X, | 500 | .channel2 = IIO_MOD_X, |
501 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 501 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
502 | IIO_CHAN_INFO_SCALE_SHARED_BIT | | 502 | IIO_CHAN_INFO_SCALE_SHARED_BIT | |
503 | IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT, | 503 | IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT | |
504 | IIO_CHAN_INFO_PEAK_SEPARATE_BIT, | ||
504 | .address = accel_x, | 505 | .address = accel_x, |
505 | .scan_index = ADIS16240_SCAN_ACC_X, | 506 | .scan_index = ADIS16240_SCAN_ACC_X, |
506 | .scan_type = { | 507 | .scan_type = { |
@@ -514,7 +515,8 @@ static struct iio_chan_spec adis16240_channels[] = { | |||
514 | .channel2 = IIO_MOD_Y, | 515 | .channel2 = IIO_MOD_Y, |
515 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 516 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
516 | IIO_CHAN_INFO_SCALE_SHARED_BIT | | 517 | IIO_CHAN_INFO_SCALE_SHARED_BIT | |
517 | IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT, | 518 | IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT | |
519 | IIO_CHAN_INFO_PEAK_SEPARATE_BIT, | ||
518 | .address = accel_y, | 520 | .address = accel_y, |
519 | .scan_index = ADIS16240_SCAN_ACC_Y, | 521 | .scan_index = ADIS16240_SCAN_ACC_Y, |
520 | .scan_type = { | 522 | .scan_type = { |
@@ -528,7 +530,8 @@ static struct iio_chan_spec adis16240_channels[] = { | |||
528 | .channel2 = IIO_MOD_Z, | 530 | .channel2 = IIO_MOD_Z, |
529 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 531 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
530 | IIO_CHAN_INFO_SCALE_SHARED_BIT | | 532 | IIO_CHAN_INFO_SCALE_SHARED_BIT | |
531 | IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT, | 533 | IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT | |
534 | IIO_CHAN_INFO_PEAK_SEPARATE_BIT, | ||
532 | .address = accel_z, | 535 | .address = accel_z, |
533 | .scan_index = ADIS16240_SCAN_ACC_Z, | 536 | .scan_index = ADIS16240_SCAN_ACC_Z, |
534 | .scan_type = { | 537 | .scan_type = { |
diff --git a/drivers/staging/iio/adc/ad7793.c b/drivers/staging/iio/adc/ad7793.c index 2bb9f68d66a4..eaa0cc939165 100644 --- a/drivers/staging/iio/adc/ad7793.c +++ b/drivers/staging/iio/adc/ad7793.c | |||
@@ -758,7 +758,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
758 | .address = AD7793_CH_AIN1M_AIN1M, | 758 | .address = AD7793_CH_AIN1M_AIN1M, |
759 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 759 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
760 | IIO_CHAN_INFO_SCALE_SHARED_BIT, | 760 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
761 | .scan_index = 2, | 761 | .scan_index = 3, |
762 | .scan_type = IIO_ST('s', 24, 32, 0) | 762 | .scan_type = IIO_ST('s', 24, 32, 0) |
763 | }, | 763 | }, |
764 | .channel[4] = { | 764 | .channel[4] = { |
@@ -831,7 +831,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
831 | .address = AD7793_CH_AIN1M_AIN1M, | 831 | .address = AD7793_CH_AIN1M_AIN1M, |
832 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 832 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
833 | IIO_CHAN_INFO_SCALE_SHARED_BIT, | 833 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
834 | .scan_index = 2, | 834 | .scan_index = 3, |
835 | .scan_type = IIO_ST('s', 16, 32, 0) | 835 | .scan_type = IIO_ST('s', 16, 32, 0) |
836 | }, | 836 | }, |
837 | .channel[4] = { | 837 | .channel[4] = { |