diff options
Diffstat (limited to 'drivers/iio/light/vcnl4035.c')
| -rw-r--r-- | drivers/iio/light/vcnl4035.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c index 84148b944000..94f5d611e98c 100644 --- a/drivers/iio/light/vcnl4035.c +++ b/drivers/iio/light/vcnl4035.c @@ -8,6 +8,7 @@   * TODO: Proximity   */  #include <linux/bitops.h> +#include <linux/bitfield.h>  #include <linux/i2c.h>  #include <linux/module.h>  #include <linux/pm_runtime.h> @@ -42,6 +43,7 @@  #define VCNL4035_ALS_PERS_MASK		GENMASK(3, 2)  #define VCNL4035_INT_ALS_IF_H_MASK	BIT(12)  #define VCNL4035_INT_ALS_IF_L_MASK	BIT(13) +#define VCNL4035_DEV_ID_MASK		GENMASK(7, 0)  /* Default values */  #define VCNL4035_MODE_ALS_ENABLE	BIT(0) @@ -89,7 +91,7 @@ static irqreturn_t vcnl4035_drdy_irq_thread(int irq, void *private)  							IIO_EV_TYPE_THRESH,  							IIO_EV_DIR_EITHER),  				iio_get_time_ns(indio_dev)); -		iio_trigger_poll_chained(data->drdy_trigger0); +		iio_trigger_poll_nested(data->drdy_trigger0);  		return IRQ_HANDLED;  	} @@ -413,6 +415,7 @@ static int vcnl4035_init(struct vcnl4035_data *data)  		return ret;  	} +	id = FIELD_GET(VCNL4035_DEV_ID_MASK, id);  	if (id != VCNL4035_DEV_ID_VAL) {  		dev_err(&data->client->dev, "Wrong id, got %x, expected %x\n",  			id, VCNL4035_DEV_ID_VAL);  |