Skip to content

Commit

Permalink
Merge tag 'iio-fixes-for-4.4b' of git://git.kernel.org/pub/scm/linux/…
Browse files Browse the repository at this point in the history
…kernel/git/jic23/iio into staging-linus

Jonathan writes:

Second set of IIO fixes for the 4.4 cycle.

Some of these were waiting for various code to hit during the merge
window - others have simply shown up recently.

* Dummy - fix a bug introduced recently that stops events actually
  reaching userspace.
* Lidar - return -EINVAL on getting a report of an invalid reading from
  the device.  This could mean that nothing is in range, or something
  else has gone wrong.  Basically it tells us nothing useful beyond the
  reading is bogus and should be ignored.
* apds9660 - make sure to call pm_runtime_mark_last_busy when reading
  from the device to avoid a premature disabling of the power.
* core - fix up a few missues of the WARN macro.
* spmi-vadc - fix a missing of_node_put when breaking out of
  a for_each_available_child_of_node loop.

The dummy driver is going to result in a slightly interesting
merge when this meets the togreg branch as that driver has graduated
from staging in the meantime.  I'll send an email in reply to that
pull request highlighting this as well.
  • Loading branch information
Greg Kroah-Hartman committed Dec 1, 2015
2 parents 1ec2183 + d4c65fe commit cc4c60c
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 7 deletions.
4 changes: 3 additions & 1 deletion drivers/iio/adc/qcom-spmi-vadc.c
Original file line number Diff line number Diff line change
Expand Up @@ -839,8 +839,10 @@ static int vadc_get_dt_data(struct vadc_priv *vadc, struct device_node *node)

for_each_available_child_of_node(node, child) {
ret = vadc_get_dt_channel_data(vadc->dev, &prop, child);
if (ret)
if (ret) {
of_node_put(child);
return ret;
}

vadc->chan_props[index] = prop;

Expand Down
2 changes: 1 addition & 1 deletion drivers/iio/industrialio-buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ static int iio_scan_mask_set(struct iio_dev *indio_dev,
if (trialmask == NULL)
return -ENOMEM;
if (!indio_dev->masklength) {
WARN_ON("Trying to set scanmask prior to registering buffer\n");
WARN(1, "Trying to set scanmask prior to registering buffer\n");
goto err_invalid_mask;
}
bitmap_copy(trialmask, buffer->scan_mask, indio_dev->masklength);
Expand Down
2 changes: 1 addition & 1 deletion drivers/iio/industrialio-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -655,7 +655,7 @@ int __iio_device_attr_init(struct device_attribute *dev_attr,
break;
case IIO_SEPARATE:
if (!chan->indexed) {
WARN_ON("Differential channels must be indexed\n");
WARN(1, "Differential channels must be indexed\n");
ret = -EINVAL;
goto error_free_full_postfix;
}
Expand Down
1 change: 1 addition & 0 deletions drivers/iio/light/apds9960.c
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@ static int apds9960_set_power_state(struct apds9960_data *data, bool on)
usleep_range(data->als_adc_int_us,
APDS9960_MAX_INT_TIME_IN_US);
} else {
pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
}

Expand Down
6 changes: 3 additions & 3 deletions drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,10 @@ static int lidar_get_measurement(struct lidar_data *data, u16 *reg)
if (ret < 0)
break;

/* return 0 since laser is likely pointed out of range */
/* return -EINVAL since laser is likely pointed out of range */
if (ret & LIDAR_REG_STATUS_INVALID) {
*reg = 0;
ret = 0;
ret = -EINVAL;
break;
}

Expand Down Expand Up @@ -197,7 +197,7 @@ static irqreturn_t lidar_trigger_handler(int irq, void *private)
if (!ret) {
iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
iio_get_time_ns());
} else {
} else if (ret != -EINVAL) {
dev_err(&data->client->dev, "cannot read LIDAR measurement");
}

Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/iio/iio_simple_dummy_events.c
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ static irqreturn_t iio_simple_dummy_get_timestamp(int irq, void *private)
struct iio_dummy_state *st = iio_priv(indio_dev);

st->event_timestamp = iio_get_time_ns();
return IRQ_HANDLED;
return IRQ_WAKE_THREAD;
}

/**
Expand Down

0 comments on commit cc4c60c

Please sign in to comment.