Message ID | 20200317101813.30829-4-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v1,1/5] iio: pressure: bmp280: Tolerate IRQ before registering | expand |
On Tue, 17 Mar 2020 12:18:12 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > In few places the unnecessary explicit castings are being used. > Drop them for good. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> A passing comment inline, but seems sensible to me. Jonathan > --- > drivers/iio/pressure/bmp280-core.c | 17 +++++++---------- > 1 file changed, 7 insertions(+), 10 deletions(-) > > diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c > index 6c2e47d92a11..5db41b1df7eb 100644 > --- a/drivers/iio/pressure/bmp280-core.c > +++ b/drivers/iio/pressure/bmp280-core.c > @@ -337,8 +337,7 @@ static int bmp280_read_temp(struct bmp280_data *data, > __be32 tmp = 0; > s32 adc_temp, comp_temp; > > - ret = regmap_bulk_read(data->regmap, BMP280_REG_TEMP_MSB, > - (u8 *) &tmp, 3); > + ret = regmap_bulk_read(data->regmap, BMP280_REG_TEMP_MSB, &tmp, 3); > if (ret < 0) { > dev_err(data->dev, "failed to read temperature\n"); > return ret; > @@ -377,8 +376,7 @@ static int bmp280_read_press(struct bmp280_data *data, > if (ret < 0) > return ret; > > - ret = regmap_bulk_read(data->regmap, BMP280_REG_PRESS_MSB, > - (u8 *) &tmp, 3); > + ret = regmap_bulk_read(data->regmap, BMP280_REG_PRESS_MSB, &tmp, 3); > if (ret < 0) { > dev_err(data->dev, "failed to read pressure\n"); > return ret; > @@ -400,8 +398,8 @@ static int bmp280_read_press(struct bmp280_data *data, > > static int bmp280_read_humid(struct bmp280_data *data, int *val, int *val2) > { > + __be16 tmp; > int ret; > - __be16 tmp = 0; I haven't checked it but normally that sort of initialization got added because a compiler got 'clever' and decided that it might be used uninitialized. However, it's a bit odd in this case as there are lots of other calls of the same thing that don't bother initializing. So must not be that... > s32 adc_humidity; > u32 comp_humidity; > > @@ -410,8 +408,7 @@ static int bmp280_read_humid(struct bmp280_data *data, int *val, int *val2) > if (ret < 0) > return ret; > > - ret = regmap_bulk_read(data->regmap, BMP280_REG_HUMIDITY_MSB, > - (u8 *) &tmp, 2); > + ret = regmap_bulk_read(data->regmap, BMP280_REG_HUMIDITY_MSB, &tmp, 2); > if (ret < 0) { > dev_err(data->dev, "failed to read humidity\n"); > return ret; > @@ -747,14 +744,14 @@ static int bmp180_measure(struct bmp280_data *data, u8 ctrl_meas) > > static int bmp180_read_adc_temp(struct bmp280_data *data, int *val) > { > + __be16 tmp; > int ret; > - __be16 tmp = 0; > > ret = bmp180_measure(data, BMP180_MEAS_TEMP); > if (ret) > return ret; > > - ret = regmap_bulk_read(data->regmap, BMP180_REG_OUT_MSB, (u8 *)&tmp, 2); > + ret = regmap_bulk_read(data->regmap, BMP180_REG_OUT_MSB, &tmp, 2); > if (ret) > return ret; > > @@ -851,7 +848,7 @@ static int bmp180_read_adc_press(struct bmp280_data *data, int *val) > if (ret) > return ret; > > - ret = regmap_bulk_read(data->regmap, BMP180_REG_OUT_MSB, (u8 *)&tmp, 3); > + ret = regmap_bulk_read(data->regmap, BMP180_REG_OUT_MSB, &tmp, 3); > if (ret) > return ret; >
On Sun, Mar 22, 2020 at 7:24 PM Jonathan Cameron <jic23@kernel.org> wrote: > On Tue, 17 Mar 2020 12:18:12 +0200 > Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > > In few places the unnecessary explicit castings are being used. > > Drop them for good. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > A passing comment inline, but seems sensible to me. ... > > + ret = regmap_bulk_read(data->regmap, BMP280_REG_PRESS_MSB, &tmp, 3); (left for a context) ... > > + __be16 tmp; > > int ret; > > - __be16 tmp = 0; > > I haven't checked it but normally that sort of initialization got added > because a compiler got 'clever' and decided that it might be used uninitialized. > > However, it's a bit odd in this case as there are lots of other calls > of the same thing that don't bother initializing. So must not be that... When it's 3 bytes read (24 bit) it's required to get correct sign from the value or in general to avoid garbage in one byte. But here are two bytes to read to the 16 bit variable. No initialization required.
diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c index 6c2e47d92a11..5db41b1df7eb 100644 --- a/drivers/iio/pressure/bmp280-core.c +++ b/drivers/iio/pressure/bmp280-core.c @@ -337,8 +337,7 @@ static int bmp280_read_temp(struct bmp280_data *data, __be32 tmp = 0; s32 adc_temp, comp_temp; - ret = regmap_bulk_read(data->regmap, BMP280_REG_TEMP_MSB, - (u8 *) &tmp, 3); + ret = regmap_bulk_read(data->regmap, BMP280_REG_TEMP_MSB, &tmp, 3); if (ret < 0) { dev_err(data->dev, "failed to read temperature\n"); return ret; @@ -377,8 +376,7 @@ static int bmp280_read_press(struct bmp280_data *data, if (ret < 0) return ret; - ret = regmap_bulk_read(data->regmap, BMP280_REG_PRESS_MSB, - (u8 *) &tmp, 3); + ret = regmap_bulk_read(data->regmap, BMP280_REG_PRESS_MSB, &tmp, 3); if (ret < 0) { dev_err(data->dev, "failed to read pressure\n"); return ret; @@ -400,8 +398,8 @@ static int bmp280_read_press(struct bmp280_data *data, static int bmp280_read_humid(struct bmp280_data *data, int *val, int *val2) { + __be16 tmp; int ret; - __be16 tmp = 0; s32 adc_humidity; u32 comp_humidity; @@ -410,8 +408,7 @@ static int bmp280_read_humid(struct bmp280_data *data, int *val, int *val2) if (ret < 0) return ret; - ret = regmap_bulk_read(data->regmap, BMP280_REG_HUMIDITY_MSB, - (u8 *) &tmp, 2); + ret = regmap_bulk_read(data->regmap, BMP280_REG_HUMIDITY_MSB, &tmp, 2); if (ret < 0) { dev_err(data->dev, "failed to read humidity\n"); return ret; @@ -747,14 +744,14 @@ static int bmp180_measure(struct bmp280_data *data, u8 ctrl_meas) static int bmp180_read_adc_temp(struct bmp280_data *data, int *val) { + __be16 tmp; int ret; - __be16 tmp = 0; ret = bmp180_measure(data, BMP180_MEAS_TEMP); if (ret) return ret; - ret = regmap_bulk_read(data->regmap, BMP180_REG_OUT_MSB, (u8 *)&tmp, 2); + ret = regmap_bulk_read(data->regmap, BMP180_REG_OUT_MSB, &tmp, 2); if (ret) return ret; @@ -851,7 +848,7 @@ static int bmp180_read_adc_press(struct bmp280_data *data, int *val) if (ret) return ret; - ret = regmap_bulk_read(data->regmap, BMP180_REG_OUT_MSB, (u8 *)&tmp, 3); + ret = regmap_bulk_read(data->regmap, BMP180_REG_OUT_MSB, &tmp, 3); if (ret) return ret;
In few places the unnecessary explicit castings are being used. Drop them for good. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/iio/pressure/bmp280-core.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-)