On Mon, 2014-09-01 at 12:11 +0300, Laurentiu Palcu wrote:
> The following chips are either similar or have only the resolution
> different. Hence, change this driver to support these chips too:
> 
> BMI055  - combo chip (accelerometer part is identical to BMC150's)
> BMA255  - identical to BMC150's accelerometer
> BMA222E - 8 bit resolution
> BMA250E - 10 bit resolution
> BMA280  - 14 bit resolution
> 
> Additionally:
>  * add bmc150_accel_match_acpi_device() function to check that the device
>    has been enumerated through ACPI;
>  * rename bmc150_accel_acpi_gpio_probe() to bmc150_accel_gpio_probe()
>    since the ACPI matching has been moved to the new function.  Also, this
>    will allow for the GPIO matching to be done against a device tree too, not 
> only
>    ACPI tree;
[]
> diff --git a/drivers/iio/accel/bmc150-accel.c 
> b/drivers/iio/accel/bmc150-accel.c
[]
> @@ -647,12 +659,13 @@ static int bmc150_accel_read_raw(struct iio_dev 
> *indio_dev,
>               {
>                       int i;
>  
> -                     for (i = 0; i < ARRAY_SIZE(bmc150_accel_scale_table);
> -                                                                      ++i) {
> -                             if (bmc150_accel_scale_table[i].range ==
> +                     for (i = 0;
> +                          i < ARRAY_SIZE(data->chip_info->scale_table);
> +                          ++i) {
> +                             if (data->chip_info->scale_table[i].range ==
>                                                               data->range) {
>                                       *val2 =
> -                                     bmc150_accel_scale_table[i].scale;
> +                                     data->chip_info->scale_table[i].scale;
>                                       return IIO_VAL_INT_PLUS_MICRO;
>                               }
>                       }

This looks like it would read a lot better with
a temporary for data->chip_info->scale_table[i]

so these could become:

                        for (i = 0; i < etc; i++) {
                                type *temp = &data->chip_info->scale_table[i];
                                if (temp->range == data->range) {
                                        *val2 = temp->scale;
                                        return IIO_VAL_INT_PLUS_MICRO;
                                }

Maybe all the bmc150_ variable names could be removed.
The prefixes don't seem to serve a purpose other than
to make the code longer.

The filename could be changed to be more generic.


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

Reply via email to