Merge branch 'fixes-togreg' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23...
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Jul 2012 23:01:20 +0000 (16:01 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Jul 2012 23:01:20 +0000 (16:01 -0700)
drivers/staging/iio/Documentation/iio_utils.h
drivers/staging/iio/accel/adis16204_core.c
drivers/staging/iio/accel/adis16240_core.c
drivers/staging/iio/adc/ad7793.c

index c0448b3e20dea67a803b613c12ffc7fc41490816..5244fa0dfd2f6419a9138e5a9f2842bb00fa4abd 100644 (file)
@@ -158,7 +158,8 @@ inline int iioutils_get_type(unsigned *is_signed,
                                     &padint, shift);
                        if (ret < 0) {
                                printf("failed to pass scan type description\n");
-                               return ret;
+                               ret = -errno;
+                               goto error_close_sysfsfp;
                        }
                        *be = (endianchar == 'b');
                        *bytes = padint / 8;
@@ -174,7 +175,11 @@ inline int iioutils_get_type(unsigned *is_signed,
                        free(filename);
 
                        filename = 0;
+                       sysfsfp = 0;
                }
+error_close_sysfsfp:
+       if (sysfsfp)
+               fclose(sysfsfp);
 error_free_filename:
        if (filename)
                free(filename);
@@ -468,23 +473,30 @@ inline int find_type_by_name(const char *name, const char *type)
                                                + strlen(type)
                                                + numstrlen
                                                + 6);
-                               if (filename == NULL)
+                               if (filename == NULL) {
+                                       closedir(dp);
                                        return -ENOMEM;
+                               }
                                sprintf(filename, "%s%s%d/name",
                                        iio_dir,
                                        type,
                                        number);
                                nameFile = fopen(filename, "r");
-                               if (!nameFile)
+                               if (!nameFile) {
+                                       free(filename);
                                        continue;
+                               }
                                free(filename);
                                fscanf(nameFile, "%s", thisname);
-                               if (strcmp(name, thisname) == 0)
-                                       return number;
                                fclose(nameFile);
+                               if (strcmp(name, thisname) == 0) {
+                                       closedir(dp);
+                                       return number;
+                               }
                        }
                }
        }
+       closedir(dp);
        return -ENODEV;
 }
 
@@ -513,6 +525,7 @@ inline int _write_sysfs_int(char *filename, char *basedir, int val, int verify)
                        goto error_free;
                }
                fscanf(sysfsfp, "%d", &test);
+               fclose(sysfsfp);
                if (test != val) {
                        printf("Possible failure in int write %d to %s%s\n",
                                val,
@@ -562,6 +575,7 @@ int _write_sysfs_string(char *filename, char *basedir, char *val, int verify)
                        goto error_free;
                }
                fscanf(sysfsfp, "%s", temp);
+               fclose(sysfsfp);
                if (strcmp(temp, val) != 0) {
                        printf("Possible failure in string write of %s "
                                "Should be %s "
index ac9d95e4ea4744e5ab3ae19f8e6d4b3116871b78..457982bf7eac8853499ec5ac6fb12e23945d77bd 100644 (file)
@@ -381,7 +381,7 @@ static int adis16204_read_raw(struct iio_dev *indio_dev,
                        return IIO_VAL_INT_PLUS_MICRO;
                case IIO_ACCEL:
                        *val = 0;
-                       if (chan->channel == 'x')
+                       if (chan->channel2 == IIO_MOD_X)
                                *val2 = 17125;
                        else
                                *val2 = 8407;
index 2f59f83d002de7f79e168b1a969e0ad39d2117c8..1a51f03d3d766da52bb20f91550a379fbe808b9c 100644 (file)
@@ -500,7 +500,8 @@ static struct iio_chan_spec adis16240_channels[] = {
                .channel2 = IIO_MOD_X,
                .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
-               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
                .address = accel_x,
                .scan_index = ADIS16240_SCAN_ACC_X,
                .scan_type = {
@@ -514,7 +515,8 @@ static struct iio_chan_spec adis16240_channels[] = {
                .channel2 = IIO_MOD_Y,
                .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
-               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
                .address = accel_y,
                .scan_index = ADIS16240_SCAN_ACC_Y,
                .scan_type = {
@@ -528,7 +530,8 @@ static struct iio_chan_spec adis16240_channels[] = {
                .channel2 = IIO_MOD_Z,
                .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
-               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
                .address = accel_z,
                .scan_index = ADIS16240_SCAN_ACC_Z,
                .scan_type = {
index 2bb9f68d66a45a9ab6142c367f8ac0510196e2a0..eaa0cc93916563f28b5cff764a39e754a561bbe2 100644 (file)
@@ -758,7 +758,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
                        .address = AD7793_CH_AIN1M_AIN1M,
                        .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
                        IIO_CHAN_INFO_SCALE_SHARED_BIT,
-                       .scan_index = 2,
+                       .scan_index = 3,
                        .scan_type = IIO_ST('s', 24, 32, 0)
                },
                .channel[4] = {
@@ -831,7 +831,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
                        .address = AD7793_CH_AIN1M_AIN1M,
                        .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
                        IIO_CHAN_INFO_SCALE_SHARED_BIT,
-                       .scan_index = 2,
+                       .scan_index = 3,
                        .scan_type = IIO_ST('s', 16, 32, 0)
                },
                .channel[4] = {