Commit eca743dc authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Merge tag 'iio-fixes-4.19a' of...

Merge tag 'iio-fixes-4.19a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus

Jonathan writes:

First set of IIO fixes for the 4.19 cycle.

* ad9523
  - sysfs write should return the number of characters used or an error, not
    0 which could result in an infinite loop in userspace.
* lsm6dsx
  - Fix computation of length when updating the watermark to include
    timestamps avoiding the watermark being set earlier than intended.
* maxim_thermocouple
  - Revert a patch adding the max31856 as it's not actually compatible with
    the register set that this driver supports.
* si1133
  - Fix an impossible value check so we don't always error out whether the
    passed in value is good or bad.
parents f86cf25a a13bf65f
...@@ -187,12 +187,15 @@ static int st_lsm6dsx_set_fifo_odr(struct st_lsm6dsx_sensor *sensor, ...@@ -187,12 +187,15 @@ static int st_lsm6dsx_set_fifo_odr(struct st_lsm6dsx_sensor *sensor,
int st_lsm6dsx_update_watermark(struct st_lsm6dsx_sensor *sensor, u16 watermark) int st_lsm6dsx_update_watermark(struct st_lsm6dsx_sensor *sensor, u16 watermark)
{ {
u16 fifo_watermark = ~0, cur_watermark, sip = 0, fifo_th_mask; u16 fifo_watermark = ~0, cur_watermark, fifo_th_mask;
struct st_lsm6dsx_hw *hw = sensor->hw; struct st_lsm6dsx_hw *hw = sensor->hw;
struct st_lsm6dsx_sensor *cur_sensor; struct st_lsm6dsx_sensor *cur_sensor;
int i, err, data; int i, err, data;
__le16 wdata; __le16 wdata;
if (!hw->sip)
return 0;
for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) { for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
cur_sensor = iio_priv(hw->iio_devs[i]); cur_sensor = iio_priv(hw->iio_devs[i]);
...@@ -203,14 +206,10 @@ int st_lsm6dsx_update_watermark(struct st_lsm6dsx_sensor *sensor, u16 watermark) ...@@ -203,14 +206,10 @@ int st_lsm6dsx_update_watermark(struct st_lsm6dsx_sensor *sensor, u16 watermark)
: cur_sensor->watermark; : cur_sensor->watermark;
fifo_watermark = min_t(u16, fifo_watermark, cur_watermark); fifo_watermark = min_t(u16, fifo_watermark, cur_watermark);
sip += cur_sensor->sip;
} }
if (!sip) fifo_watermark = max_t(u16, fifo_watermark, hw->sip);
return 0; fifo_watermark = (fifo_watermark / hw->sip) * hw->sip;
fifo_watermark = max_t(u16, fifo_watermark, sip);
fifo_watermark = (fifo_watermark / sip) * sip;
fifo_watermark = fifo_watermark * hw->settings->fifo_ops.th_wl; fifo_watermark = fifo_watermark * hw->settings->fifo_ops.th_wl;
err = regmap_read(hw->regmap, hw->settings->fifo_ops.fifo_th.addr + 1, err = regmap_read(hw->regmap, hw->settings->fifo_ops.fifo_th.addr + 1,
......
...@@ -258,7 +258,6 @@ static int maxim_thermocouple_remove(struct spi_device *spi) ...@@ -258,7 +258,6 @@ static int maxim_thermocouple_remove(struct spi_device *spi)
static const struct spi_device_id maxim_thermocouple_id[] = { static const struct spi_device_id maxim_thermocouple_id[] = {
{"max6675", MAX6675}, {"max6675", MAX6675},
{"max31855", MAX31855}, {"max31855", MAX31855},
{"max31856", MAX31855},
{}, {},
}; };
MODULE_DEVICE_TABLE(spi, maxim_thermocouple_id); MODULE_DEVICE_TABLE(spi, maxim_thermocouple_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment