Actually the INVALID status happens even it isn't out of range sometimes roughly once every second or two. This can be from an invalid second signal return path and etc.. So there are spurious zero readings from the triggered buffer, and warning messages in the kernel log. Thanks, Matt On Sat, Oct 31, 2015 at 2:29 AM, Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > On 25/10/15 23:07, Matt Ranostay wrote: >> Returning zero from the measurment function has the side effect of >> corrupting the triggered buffer readings, better to use -EIO than a >> zero measurement reading. > When you say 'corrupting' what do you mean? As far as I can quickly see > it will give a spurious 0 distance when it really means a long distance. > Is that what you are referring to? > > Jonathan >> >> Signed-off-by: Matt Ranostay <mranostay@xxxxxxxxx> >> --- >> drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c >> index 961f9f99..359beac 100644 >> --- a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c >> +++ b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c >> @@ -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 -EIO since laser is likely pointed out of range */ >> if (ret & LIDAR_REG_STATUS_INVALID) { >> *reg = 0; >> - ret = 0; >> + ret = -EIO; >> break; >> } >> >> > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html