Message ID | 20200210001058.7515-2-matt.ranostay@konsulko.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: chemical: atlas-sensor: add DO support | expand |
On Sun, 9 Feb 2020 16:10:56 -0800 Matt Ranostay <matt.ranostay@konsulko.com> wrote: > Sensors don't actually need a interrupt line to give valid readings, > and can triggered with CONFIG_IIO_HRTIMER_TRIGGER as well. Remove > the required check for interrupt, and continue along in the probe > function. > > Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com> Hi Matt, I'm going to hold this for conclusion of the discussion about whether the interrupt enable / disable should be related to the buffer or the trigger. (v4 I think...) Thanks, Jonathan > --- > drivers/iio/chemical/atlas-sensor.c | 27 ++++++++++++--------------- > 1 file changed, 12 insertions(+), 15 deletions(-) > > diff --git a/drivers/iio/chemical/atlas-sensor.c b/drivers/iio/chemical/atlas-sensor.c > index 2f0a6fed2589..9a1ab9f8fcc5 100644 > --- a/drivers/iio/chemical/atlas-sensor.c > +++ b/drivers/iio/chemical/atlas-sensor.c > @@ -572,11 +572,6 @@ static int atlas_probe(struct i2c_client *client, > if (ret) > return ret; > > - if (client->irq <= 0) { > - dev_err(&client->dev, "no valid irq defined\n"); > - return -EINVAL; > - } > - > ret = chip->calibration(data); > if (ret) > return ret; > @@ -596,16 +591,18 @@ static int atlas_probe(struct i2c_client *client, > > init_irq_work(&data->work, atlas_work_handler); > > - /* interrupt pin toggles on new conversion */ > - ret = devm_request_threaded_irq(&client->dev, client->irq, > - NULL, atlas_interrupt_handler, > - IRQF_TRIGGER_RISING | > - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, > - "atlas_irq", > - indio_dev); > - if (ret) { > - dev_err(&client->dev, "request irq (%d) failed\n", client->irq); > - goto unregister_buffer; > + if (client->irq > 0) { > + /* interrupt pin toggles on new conversion */ > + ret = devm_request_threaded_irq(&client->dev, client->irq, > + NULL, atlas_interrupt_handler, > + IRQF_TRIGGER_RISING | > + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, > + "atlas_irq", > + indio_dev); > + > + if (ret) > + dev_warn(&client->dev, > + "request irq (%d) failed\n", client->irq); > } > > ret = atlas_set_powermode(data, 1);
On Fri, Feb 14, 2020 at 6:24 AM Jonathan Cameron <jic23@kernel.org> wrote: > > On Sun, 9 Feb 2020 16:10:56 -0800 > Matt Ranostay <matt.ranostay@konsulko.com> wrote: > > > Sensors don't actually need a interrupt line to give valid readings, > > and can triggered with CONFIG_IIO_HRTIMER_TRIGGER as well. Remove > > the required check for interrupt, and continue along in the probe > > function. > > > > Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com> > > Hi Matt, > > I'm going to hold this for conclusion of the discussion about whether > the interrupt enable / disable should be related to the buffer or the trigger. > (v4 I think...) > Ah yes reading that thread now and think I understand what needs to be changed. However the rest of the series can be merged on its own without any issues. - Matt > Thanks, > > Jonathan > > > --- > > drivers/iio/chemical/atlas-sensor.c | 27 ++++++++++++--------------- > > 1 file changed, 12 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/iio/chemical/atlas-sensor.c b/drivers/iio/chemical/atlas-sensor.c > > index 2f0a6fed2589..9a1ab9f8fcc5 100644 > > --- a/drivers/iio/chemical/atlas-sensor.c > > +++ b/drivers/iio/chemical/atlas-sensor.c > > @@ -572,11 +572,6 @@ static int atlas_probe(struct i2c_client *client, > > if (ret) > > return ret; > > > > - if (client->irq <= 0) { > > - dev_err(&client->dev, "no valid irq defined\n"); > > - return -EINVAL; > > - } > > - > > ret = chip->calibration(data); > > if (ret) > > return ret; > > @@ -596,16 +591,18 @@ static int atlas_probe(struct i2c_client *client, > > > > init_irq_work(&data->work, atlas_work_handler); > > > > - /* interrupt pin toggles on new conversion */ > > - ret = devm_request_threaded_irq(&client->dev, client->irq, > > - NULL, atlas_interrupt_handler, > > - IRQF_TRIGGER_RISING | > > - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, > > - "atlas_irq", > > - indio_dev); > > - if (ret) { > > - dev_err(&client->dev, "request irq (%d) failed\n", client->irq); > > - goto unregister_buffer; > > + if (client->irq > 0) { > > + /* interrupt pin toggles on new conversion */ > > + ret = devm_request_threaded_irq(&client->dev, client->irq, > > + NULL, atlas_interrupt_handler, > > + IRQF_TRIGGER_RISING | > > + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, > > + "atlas_irq", > > + indio_dev); > > + > > + if (ret) > > + dev_warn(&client->dev, > > + "request irq (%d) failed\n", client->irq); > > } > > > > ret = atlas_set_powermode(data, 1); >
diff --git a/drivers/iio/chemical/atlas-sensor.c b/drivers/iio/chemical/atlas-sensor.c index 2f0a6fed2589..9a1ab9f8fcc5 100644 --- a/drivers/iio/chemical/atlas-sensor.c +++ b/drivers/iio/chemical/atlas-sensor.c @@ -572,11 +572,6 @@ static int atlas_probe(struct i2c_client *client, if (ret) return ret; - if (client->irq <= 0) { - dev_err(&client->dev, "no valid irq defined\n"); - return -EINVAL; - } - ret = chip->calibration(data); if (ret) return ret; @@ -596,16 +591,18 @@ static int atlas_probe(struct i2c_client *client, init_irq_work(&data->work, atlas_work_handler); - /* interrupt pin toggles on new conversion */ - ret = devm_request_threaded_irq(&client->dev, client->irq, - NULL, atlas_interrupt_handler, - IRQF_TRIGGER_RISING | - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, - "atlas_irq", - indio_dev); - if (ret) { - dev_err(&client->dev, "request irq (%d) failed\n", client->irq); - goto unregister_buffer; + if (client->irq > 0) { + /* interrupt pin toggles on new conversion */ + ret = devm_request_threaded_irq(&client->dev, client->irq, + NULL, atlas_interrupt_handler, + IRQF_TRIGGER_RISING | + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "atlas_irq", + indio_dev); + + if (ret) + dev_warn(&client->dev, + "request irq (%d) failed\n", client->irq); } ret = atlas_set_powermode(data, 1);
Sensors don't actually need a interrupt line to give valid readings, and can triggered with CONFIG_IIO_HRTIMER_TRIGGER as well. Remove the required check for interrupt, and continue along in the probe function. Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com> --- drivers/iio/chemical/atlas-sensor.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-)